请教关于“叮咚”门铃的问题

2019-08-13 23:39发布

本帖最后由 xueshawu 于 2017-9-15 08:54 编辑

按照一般的说法,PWM分别输出700HZ "叮",500HZ“咚”;就能实现;
但是我做出来,感觉声音不够立体;没有余音,声音很生硬;
下面是我的程序和驱动电路部分
void Bell_Output(void)//叮咚  //700HZ叮   500HZ咚
{
TIM_TimeBaseInitTypeDef    TIM_TimeBaseInitStructure;
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period  = 999;
TIM_TimeBaseInitStructure.TIM_Prescaler = 95;//叮
TIM_TimeBaseInit(TIM14,&TIM_TimeBaseInitStructure);
TIM14->CNT =0;
TIM_Cmd(TIM14,ENABLE);
delay_ms(500);
TIM_Cmd(TIM14,DISABLE);
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period = 999;
TIM_TimeBaseInitStructure.TIM_Prescaler = 120;//咚
TIM_TimeBaseInit(TIM14,&TIM_TimeBaseInitStructure);
TIM14->CNT =0;
TIM_Cmd(TIM14,ENABLE);
delay_ms(500);
TIM_Cmd(TIM14,DISABLE);
}

//这里我的PSC系数是我修改过的,算出来不是700HZ  和500HZ;
//如果要算出来700HZ 和500HZ  PSC应该是67  95
bell.png
BELL0的网络标号是直接接到TIM14_CH1,经三极管放大输出给喇叭;
我在网上下载了“叮咚”门铃的WAV,我觉得如果要达到那样的音效PWM输出的频率应该是要变化的;
然后,又看到这个回答
https://zm10.sm-tc.cn/?src=l4uLj ... rgibijbprsvdsdichei
这里是利用电容放电,但我的电路上是没有电容的,所以我在想,应该是利用查表的方式来改变PWM输出频率得到一个比较立体的“叮咚”音效






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。