本帖最后由 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
BELL0的网络标号是直接接到TIM14_CH1,经三极管放大输出给喇叭;
我在网上下载了“叮咚”门铃的WAV,我觉得如果要达到那样的音效PWM输出的频率应该是要变化的;
然后,又看到这个回答
https://zm10.sm-tc.cn/?src=l4uLj ... rgibijbprsvdsdichei
这里是利用电容放电,但我的电路上是没有电容的,所以我在想,应该是利用查表的方式来改变PWM输出频率得到一个比较立体的“叮咚”音效
这个就算了,这个电路肯定能做出来
慢慢调其他频率,不同蜂鸣器参数可能不一样
但是,我感觉如果要达到WAV文件播放的那种效果,频率肯定是在不停的变化的(余音效果);但是现在也只能慢慢试了
一周热门 更多>