搜索
bottom↓
回复: 56

求用一个IO口控制蜂鸣器怎么产生这么好听的提示音?

  [复制链接]

出0入0汤圆

发表于 2015-12-27 13:20:09 | 显示全部楼层 |阅读模式
如附件中录音所示,这种蜂鸣器的声音很好听,用单个IO口怎么控制出这种声音呢?大神请帮帮忙,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入42汤圆

发表于 2015-12-27 13:39:18 | 显示全部楼层
用无源的,变频PWM输出

出0入0汤圆

发表于 2015-12-27 13:53:51 | 显示全部楼层
确实很好听。

出0入0汤圆

发表于 2015-12-27 14:00:46 | 显示全部楼层
没有细节,如果是DAC输出脚,那就相对简单了。

出0入0汤圆

发表于 2015-12-27 18:58:06 | 显示全部楼层
绝对是用的无源Beep,然后用pwm波形驱动

出4375入62汤圆

发表于 2015-12-27 19:00:34 | 显示全部楼层
你应该说,一个嘴怎么可以唱那么好听

出0入0汤圆

发表于 2015-12-27 19:23:35 | 显示全部楼层
1.找一个转换软件,把MP3转成PCM编码的音乐文件,比如WAV
2.找出PCM的振幅-时间序列,转换成对应的PWM信号。你这个音乐听起来像双声道的,会有两路PCM信号
3.找两个IO,分别输出两路PWM波就好了;也可以合成,导出一路PWM信号,看你选择了

出0入0汤圆

发表于 2015-12-27 21:13:53 | 显示全部楼层
renjun_EMbest 发表于 2015-12-27 19:23
1.找一个转换软件,把MP3转成PCM编码的音乐文件,比如WAV
2.找出PCM的振幅-时间序列,转换成对应的PWM信号 ...

有具体的软件名字,或教程吗,以前在热水器和小家电上看到过,不过用的都是2个端口的

出0入0汤圆

 楼主| 发表于 2015-12-28 15:58:22 | 显示全部楼层
ccstc 发表于 2015-12-27 13:39
用无源的,变频PWM输出

是无源的!试过变频,不知道是不是变频方式不对,声音很难听!

出0入0汤圆

 楼主| 发表于 2015-12-28 16:02:18 | 显示全部楼层
renjun_EMbest 发表于 2015-12-27 19:23
1.找一个转换软件,把MP3转成PCM编码的音乐文件,比如WAV
2.找出PCM的振幅-时间序列,转换成对应的PWM信号 ...

我用Goldwave看了声音的波形,频率大概在3K,振幅只能看个大概,一个IO控制声音始终没办法那么饱满,我看了人家板子上也是只用一个IO来控制!难搞~~

出0入42汤圆

发表于 2015-12-28 17:58:38 | 显示全部楼层
用逻辑分析仪,测量整个过程中IO的输出波形,然后分析,重现

出0入0汤圆

发表于 2015-12-29 12:18:49 | 显示全部楼层
本帖最后由 siyeb 于 2015-12-29 12:21 编辑
weare 发表于 2015-12-28 16:02
我用Goldwave看了声音的波形,频率大概在3K,振幅只能看个大概,一个IO控制声音始终没办法那么饱满,我看 ...


我用AA看来一下,这是三个单音,频率分别在2.6k,2.7k和3.1k附近,基本符合E7(2637.02)、 F7(2793.83)、 G7(3135.96)。是高音的 so la si。

因为是单音,所以用一个io输出就足够了。(我觉得是啊,没做实验)

以下是截图:





发出这种声音我想不仅仅和频率有关,还和持续的时间(节拍)和振幅有关。图前面频谱比较干净的波形是我模拟的这三个音,听上去挺饱满的啊,但是怪怪的很机械,因为振幅持平没有变化。


当然我这个是用电脑的喇叭放出来的,可能和蜂鸣器还有区别。手头没有无源的蜂鸣器,要不然可以试一试~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2015-12-29 20:12:48 | 显示全部楼层
siyeb 发表于 2015-12-29 12:18
我用AA看来一下,这是三个单音,频率分别在2.6k,2.7k和3.1k附近,基本符合E7(2637.02)、 F7(2793.83 ...

大神分析的很有道理呀!我试了也是很机械而且不饱满,好像除了节拍和振幅,不知道过程中有没有变频!

出0入0汤圆

发表于 2015-12-29 23:10:46 | 显示全部楼层
weare 发表于 2015-12-29 20:12
大神分析的很有道理呀!我试了也是很机械而且不饱满,好像除了节拍和振幅,不知道过程中有没有变频! ...

频谱上看好像是有,但怎么看都像是谐波啊。

出0入0汤圆

 楼主| 发表于 2015-12-30 08:40:34 | 显示全部楼层
siyeb 发表于 2015-12-29 23:10
频谱上看好像是有,但怎么看都像是谐波啊。

应该就是这些谐波让声音听起来比较悦耳吧!!难搞呀!这要是能弄出来以后用在产品上那效果就不一样了!

出0入0汤圆

发表于 2015-12-30 10:35:53 | 显示全部楼层
weare 发表于 2015-12-30 08:40
应该就是这些谐波让声音听起来比较悦耳吧!!难搞呀!这要是能弄出来以后用在产品上那效果就不一样了! ...

上示波器打一下就知道了~活着了逻辑分析仪。

出0入0汤圆

发表于 2015-12-30 15:37:16 | 显示全部楼层
这个相对单音来说,其实用了拖尾音,用两路io控制,一路放单音,然后一路控制电容放电时间控制拖尾音。三星空调就是这么做的。

出0入0汤圆

 楼主| 发表于 2015-12-30 16:38:51 | 显示全部楼层
colgatechen 发表于 2015-12-30 15:37
这个相对单音来说,其实用了拖尾音,用两路io控制,一路放单音,然后一路控制电容放电时间控制拖尾音。三星 ...

两路的好说,关键我拆下去看,人家只用了一路来控制呀!这才是值得研究的地方~~

出0入0汤圆

 楼主| 发表于 2016-1-5 09:28:01 | 显示全部楼层
siyeb 发表于 2015-12-29 12:18
我用AA看来一下,这是三个单音,频率分别在2.6k,2.7k和3.1k附近,基本符合E7(2637.02)、 F7(2793.83 ...

拿了个逻辑分析仪抓了波形,波形图片如下,看了好久才明白其中的道道,在此和大家分享,相当于将3.135K的波形调制在187.5K,在调制波形上还加入了占空比变化,只是这个软件上实现起来应该要费许多功夫吧~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-1-5 13:40:54 | 显示全部楼层
weare 发表于 2016-1-5 09:28
拿了个逻辑分析仪抓了波形,波形图片如下,看了好久才明白其中的道道,在此和大家分享,相当于将3.135K的 ...

用红框框起来的地方是尾音么?

占空比逐渐增大?哎,回头得试试~

出0入0汤圆

 楼主| 发表于 2016-1-6 11:09:24 | 显示全部楼层
siyeb 发表于 2016-1-5 13:40
用红框框起来的地方是尾音么?

占空比逐渐增大?哎,回头得试试~

红框框起来的就是占空比最大和最小的地方,相当于高低电平,没框的是占空比逐渐变大和变小,这应该才是尾音~~

出0入0汤圆

发表于 2016-1-6 11:19:04 | 显示全部楼层
这个应该不是蜂鸣器发出的吧,听声音感觉是PWM直接产生不同的频率,推动喇叭产生的声音
单纯的用单片机要做出这个效果,还是挺麻烦的,LZ可以考虑用个语音芯片做这个事情,当前成本要求不严格的情况下。

出0入0汤圆

发表于 2016-1-6 12:30:21 | 显示全部楼层
我觉的还是有些空调的开机声音好听

出0入0汤圆

发表于 2016-1-6 12:32:24 | 显示全部楼层
你那个波形可以RC滤一下,就可以看到低频的声音了。
估计人家就是一段音频调制出来的。

出0入0汤圆

发表于 2016-1-6 13:31:27 | 显示全部楼层
录制一段音频,用PWM播放应该可以实现吧!   
就是 WAV解码+PWM  DAC 的简化版,不需要什么调制那么麻烦!只要注意播放音频频率范围落在蜂鸣器频率特性范围内就行。

出0入0汤圆

 楼主| 发表于 2016-1-6 13:31:28 | 显示全部楼层
TCMCU 发表于 2016-1-6 11:19
这个应该不是蜂鸣器发出的吧,听声音感觉是PWM直接产生不同的频率,推动喇叭产生的声音
单纯的用单片机要做 ...

就是用蜂鸣器搞出来的,当然是有成本要求啦~~~

出0入0汤圆

 楼主| 发表于 2016-1-6 13:33:11 | 显示全部楼层
zhiwei 发表于 2016-1-6 12:32
你那个波形可以RC滤一下,就可以看到低频的声音了。
估计人家就是一段音频调制出来的。 ...

低频的频率好算,算下高频187.5K的变化周期就知道了,是软件上怎么说实现这样实时变化的波形比较麻烦~~

出0入0汤圆

 楼主| 发表于 2016-1-6 13:34:38 | 显示全部楼层
zuu0 发表于 2016-1-6 12:30
我觉的还是有些空调的开机声音好听

这个跟空调的开机声有点类似,只要能搞出来,用在产品上瞬间就高大上了有木有~~~

出0入0汤圆

 楼主| 发表于 2016-1-6 13:36:51 | 显示全部楼层
not_at_all 发表于 2016-1-6 13:31
录制一段音频,用PWM播放应该可以实现吧!   
就是 WAV解码+PWM  DAC 的简化版,不需要什么调制那么麻烦! ...

不太理解软件上要怎么实现~~~求详细解释

出10入10汤圆

发表于 2016-1-6 13:48:28 | 显示全部楼层
SPWM,频率变化对应音调变化,PWM变化对应音调的幅度变化。

出0入0汤圆

发表于 2016-1-6 15:03:15 | 显示全部楼层
weare 发表于 2016-1-6 13:36
不太理解软件上要怎么实现~~~求详细解释

把音频数据转换为 对应PWM占空比的数组。
就像在液晶屏显示图片那样:最简单的就是用算法不断描点(就像你用固定的PWM驱动蜂鸣器);复杂一点的就是把图像转换为数组,然后打点图片(就像把音频数据转换为PWM占空比,定时改变占空比,驱动蜂鸣器);最复杂的就是图片解码,显示图片(常规的音频解码,播放声音)

至于音频数据与占空比的关系,你可以找一下WAV音频解码(非压缩的)方面的内容。

出0入0汤圆

发表于 2016-1-6 16:53:21 | 显示全部楼层
之前曾经听到一个刷门禁的提示音,也是用BEEP做的,非常的好听

出0入0汤圆

发表于 2016-1-6 17:15:33 | 显示全部楼层
考验电工们脑汁的时候到了!!!

出0入0汤圆

发表于 2016-1-6 17:18:16 | 显示全部楼层
看波形图好像是SPWM调制波,但载波这么高频率软件得用DMA来调占空比了,楼主可以试试!

出0入0汤圆

发表于 2017-4-6 23:18:43 | 显示全部楼层
weare 发表于 2016-1-5 09:28
拿了个逻辑分析仪抓了波形,波形图片如下,看了好久才明白其中的道道,在此和大家分享,相当于将3.135K的 ...

楼主找到方法了吗?

出0入0汤圆

 楼主| 发表于 2017-4-7 08:06:04 | 显示全部楼层
whxiaowang 发表于 2017-4-6 23:18
楼主找到方法了吗?

虽然知道原理,但是代码实现起来有点难度,我实现不来~~

出0入0汤圆

发表于 2017-4-7 09:02:28 来自手机 | 显示全部楼层
STM32定时器支持DMA传输,以及DMA被定时器触发

出0入58汤圆

发表于 2017-4-7 09:04:05 | 显示全部楼层
LZ能否把完整的逻辑分析仪抓的波形导出文件发上来?这样更多的网友可以试试。

出0入0汤圆

发表于 2017-4-7 09:10:06 | 显示全部楼层
xivisi 发表于 2017-4-7 09:02
STM32定时器支持DMA传输,以及DMA被定时器触发

理论大概理解了,但是输出音不对。我是直接用matlab生成表,然后定时器IO输出的

出0入0汤圆

发表于 2017-4-7 09:17:09 | 显示全部楼层
无源的蜂鸣器吗?

出0入0汤圆

 楼主| 发表于 2017-4-7 09:19:17 | 显示全部楼层
频率和占空比都要变化,所以挺麻烦~~

出0入0汤圆

 楼主| 发表于 2017-4-7 09:20:00 | 显示全部楼层
whxiaowang 发表于 2017-4-7 09:10
理论大概理解了,但是输出音不对。我是直接用matlab生成表,然后定时器IO输出的 ...

频率和占空比都要变化,所以很麻烦~~

出0入0汤圆

发表于 2017-4-7 09:20:59 | 显示全部楼层
weare 发表于 2017-4-7 09:20
频率和占空比都要变化,所以很麻烦~~

是  所以我是用查表的方式,表里直接是0和1,定时器IO输出

出0入0汤圆

发表于 2017-4-7 09:21:42 | 显示全部楼层
bg6agf 发表于 2017-4-7 09:17
无源的蜂鸣器吗?

是无源的

出0入0汤圆

 楼主| 发表于 2017-4-7 09:25:48 | 显示全部楼层
bg6agf 发表于 2017-4-7 09:17
无源的蜂鸣器吗?

嗯,就是最普通的婺源蜂鸣器~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-4-7 09:27:21 | 显示全部楼层
我们的产品就是这么做的。一个IO脚出PWM波形,定时变频,在一定范围内变频。我们后接的是扬声器,不是蜂鸣器。可以出火警音等。

出0入0汤圆

发表于 2017-4-7 09:28:15 | 显示全部楼层
我们产品的第一版功能就是我实现的,timer+P.

出0入0汤圆

 楼主| 发表于 2017-4-7 09:36:53 | 显示全部楼层
whxiaowang 发表于 2017-4-7 09:20
是  所以我是用查表的方式,表里直接是0和1,定时器IO输出

应该直接用PWM输出吧!应该要有频率变化表和占空比变化表,两者还要配合起来~~

出0入0汤圆

发表于 2017-4-7 09:37:06 | 显示全部楼层
jiki119 发表于 2017-4-7 09:27
我们的产品就是这么做的。一个IO脚出PWM波形,定时变频,在一定范围内变频。我们后接的是扬声器,不是蜂鸣 ...

PWM频率多少?

出0入0汤圆

发表于 2019-3-22 10:55:19 | 显示全部楼层
weare 发表于 2016-1-5 09:28
拿了个逻辑分析仪抓了波形,波形图片如下,看了好久才明白其中的道道,在此和大家分享,相当于将3.135K的 ...

这个逻辑波形文件能分享一下吗?

出0入0汤圆

发表于 2019-8-27 17:06:05 | 显示全部楼层
不知楼主最后实现了吗,可否分享一下

出0入0汤圆

 楼主| 发表于 2019-8-28 08:16:24 | 显示全部楼层
xuwuhan 发表于 2019-8-27 17:06
不知楼主最后实现了吗,可否分享一下

这是之前抓的波形图,一直忘记上传,你可以自己看波形图研究下,思路大概是知道的,但是软件的实现还是不太行!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-8-28 08:36:41 | 显示全部楼层
weare 发表于 2019-8-28 08:16
这是之前抓的波形图,一直忘记上传,你可以自己看波形图研究下,思路大概是知道的,但是软件的实现还是不 ...

非常感谢。

出0入8汤圆

发表于 2019-8-28 08:41:49 | 显示全部楼层
weare 发表于 2019-8-28 08:16
这是之前抓的波形图,一直忘记上传,你可以自己看波形图研究下,思路大概是知道的,但是软件的实现还是不 ...

或许只是直接播放 PCM 数据?

出0入0汤圆

发表于 2019-8-28 09:59:52 | 显示全部楼层
挺厉害,还有余音

出0入0汤圆

发表于 2019-9-17 08:28:22 | 显示全部楼层
是187.5K的频率,占空比不同音调也不同,单片机实现187.5K的PWM 困难啊

出0入0汤圆

发表于 2019-9-17 09:09:38 | 显示全部楼层
真厉害,这帖已经快四年了都!...
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 13:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表