智能硬件•创客天地

 找回密码
 立即注册
查看: 365|回复: 7

有没有人用过开发板上的无源蜂鸣器 [复制链接]

Rank: 2

发表于 2017-9-19 09:41:43 |显示全部楼层
有没有人用过开发板上的无源蜂鸣器? 我修改例程让蜂鸣器一直鸣叫,但是量出来的波形却不是正规的PWM波形?如下图。
如果用标准的2.5KHz  PWM波驱动反而有颤音,这是为什么?
PWM.jpg

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2017-9-19 17:26:04 |显示全部楼层
先别输出到蜂鸣器,试试用GPIO输出标准的2.5KHz  PWM波到示波器测试看波形正常不正常。
1.波形不正常,就调试代码。
2.波形正常,再输出到蜂鸣器上,还发现颤音就用示波器捕抓此时的波形,检查蜂鸣器电路,可以把蜂鸣器原理图发上来。

使用道具 举报

Rank: 2

发表于 2017-9-19 17:36:52 |显示全部楼层
李志鸿 发表于 2017-9-19 17:26
先别输出到蜂鸣器,试试用GPIO输出标准的2.5KHz  PWM波到示波器测试看波形正常不正常。
1.波形不正常,就调 ...

这个就是用的开发板,就仅仅是把开发板例程里的 am_buzzer_off  屏蔽掉后,GPIO输出的波形了。不明白为什么是波形是这样,不应该是标准的2.5KHz PWM波么?

使用道具 举报

Rank: 2

发表于 2017-9-19 17:52:21 |显示全部楼层
李志鸿 发表于 2017-9-19 17:26
先别输出到蜂鸣器,试试用GPIO输出标准的2.5KHz  PWM波到示波器测试看波形正常不正常。
1.波形不正常,就调 ...

对了,开发板用的 AM824-Core, 蜂鸣器原理图如下。
蜂鸣器.png

使用道具 举报

Rank: 2

发表于 2017-9-20 14:23:36 |显示全部楼层
李志鸿 发表于 2017-9-19 17:26
先别输出到蜂鸣器,试试用GPIO输出标准的2.5KHz  PWM波到示波器测试看波形正常不正常。
1.波形不正常,就调 ...

再追问个问题吧,软件驱动包例程demo_std_buzzer里,图片箭头所指的延时  有什么意义?为什么要加这个延时?不加可以么?
PWM程序.png

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2017-9-21 15:08:45 |显示全部楼层
xiaotong212 发表于 2017-9-20 14:23
再追问个问题吧,软件驱动包例程demo_std_buzzer里,图片箭头所指的延时  有什么意义?为什么要加这个延 ...

这个是写好的蜂鸣器鸣响一段时间的控制函数,实现过程如下:
1.控制蜂鸣器响先是要用 am_buzzer_on() 启动PWM输出;
2.经过一段时间之后,这段时间可以使进行其它操作。例如去用串口输出完消息,例程里只是为了简单演示下操作用延时函数代替。这就是为什么要这里添加 am_mdelay(ms) 呢?
3.关闭蜂鸣器,调用 am_buzzer_off()
使用例程前最好先浏览例程说明,在对应例程的 *.c 文件头
例程说明.png


am_buzzer_beep(500);//蜂鸣器持续鸣响0.5秒了
am_mdelay(500);//蜂鸣器并没有启动,所以只是MCU单纯地延时,啥也没做。。。 例程源码.png


例程修改如下:蜂鸣器持续鸣响,也再没去关闭了,此时再用示波器捕抓到就是没有停顿的持续的2.5KHz  PWM波,记得查看占空比和波形周期确定一下。
例程修改.png


最后,再解释下以下这个波形,不输出PWM波的高电平的部分都是蜂鸣器关闭的状态。
0937371inxxztt4tetjtjx.jpg


使用道具 举报

Rank: 2

发表于 2017-9-25 15:48:35 |显示全部楼层
李志鸿 发表于 2017-9-21 15:08
这个是写好的蜂鸣器鸣响一段时间的控制函数,实现过程如下:
1.控制蜂鸣器响先是要用 am_buzzer_on() 启 ...

谢谢您的回复。
1.关于延时,您的例程修改,while里面的延时,是必须的么?加延时会不会对PWM周期造成影响?
2.示波器抓的图片,您可能没有注意,这个是去掉了am_buzzer_off()之后的波形,按理应该是正规的2.5KHz的PWM波。可是这个波形虽然周期是对的,但是不理解为什么会出现那些小杂波?(波形放大了看是一些周期不一的小杂波)

PWM注释.png

使用道具 举报

Rank: 9Rank: 9Rank: 9

发表于 2017-10-12 14:32:09 |显示全部楼层
xiaotong212 发表于 2017-9-25 15:48
谢谢您的回复。
1.关于延时,您的例程修改,while里面的延时,是必须的么?加延时会不会对PWM周期造成影 ...

延时不会影响PWM产生,我先测试一遍再放图上来对比

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|智能硬件•创客天地     

GMT+8, 2017-12-11 17:32 , Processed in 0.110356 second(s), 18 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部