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

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输出频率得到一个比较立体的“叮咚”音效






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
l6931639
1楼-- · 2019-08-15 03:26
 精彩回答 2  元偷偷看……
l6931639
2楼-- · 2019-08-15 04:40
也许用电脑频谱分析一下对你有帮助
xueshawu
3楼-- · 2019-08-15 06:52
l6931639 发表于 2017-9-16 10:27
也许用电脑频谱分析一下对你有帮助

要达到 那么好的效果还真是不好做啊
闪电之舞
4楼-- · 2019-08-15 08:48
应该用压电蜂鸣器    电路改改

一周热门 更多>