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

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条回答
xueshawu
1楼-- · 2019-08-14 00:26
做法跟播放WAV文件一样的,利用PWM把WAV数据输出就行了;
wmh19910511
2楼-- · 2019-08-14 04:17
 精彩回答 2  元偷偷看……
xueshawu
3楼-- · 2019-08-14 07:38
wmh19910511 发表于 2017-9-15 08:54
有门铃芯片  要什么声音有什么声音

这个就算了,这个电路肯定能做出来
xueshawu
4楼-- · 2019-08-14 11:58
我的帖子要沉了么
正点原子
5楼-- · 2019-08-14 16:28
xueshawu 发表于 2017-9-15 09:00
这个就算了,这个电路肯定能做出来

慢慢调其他频率,不同蜂鸣器参数可能不一样
xueshawu
6楼-- · 2019-08-14 21:28
正点原子 发表于 2017-9-16 01:20
慢慢调其他频率,不同蜂鸣器参数可能不一样

但是,我感觉如果要达到WAV文件播放的那种效果,频率肯定是在不停的变化的(余音效果);但是现在也只能慢慢试了

一周热门 更多>