极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 173957|回复: 59

Arduino入门教程--第八课--用蜂鸣器模拟警报器

[复制链接]
发表于 2012-6-14 11:42:04 | 显示全部楼层 |阅读模式
玩了好久的LED了,今天开始,我们玩点新鲜的东西,今天我们来玩蜂鸣器,当然我光用蜂鸣器听个响大家肯定不答应,所以玩个比较简单,但稍微高端一点的,做一个防控警报类似的报警器。

实验用元器件列表

ocrobot mango控制板(Arduino兼容) 一块  
面包板  一块  
面包板专用跳线  一盒  
无源蜂鸣器  一个  
USB数据线  一根  









我们来看电路图,电路图非常简单,就是一个蜂鸣器和arduino兼容板还有就是两根跳线,请注意,蜂鸣器一定要是无源蜂鸣器,市面上还有一种有源的蜂鸣器,这种用来做我们的实验是不行的。这点请大家注意。




然后我们根据所绘制的电路连接图搭建我们的电路



大家有没有发现,这个蜂鸣器标明了极性,无源蜂鸣器其实是无极性的,有源蜂鸣器才有极性,但是为了生产的节约成本统一采用了有源蜂鸣器的封装,所以上图我们接反了无需惊讶。

具体的关于成本节约有关的内容可以参考《魔鬼经济学》,一本非常不错的经济学的简单轻松的读本。


然后,我们来下载程序

  1. /*
  2. 作者:极客工坊-迷你强
  3. 时间:2012年6月13日
  4. IDE版本号:1.0.1
  5. 发布地址:www.geek-workshop.com
  6. 作用:使用tone()函数产生声音,模拟防控警报的响声

  7. */
  8. void setup()
  9. {
  10. }

  11. void loop()
  12. {
  13. for(int i=200;i<=800;i++)                    //用循环的方式将频率从200HZ 增加到800HZ
  14. {
  15.   pinMode(4,OUTPUT);
  16.   tone(4,i);                            //在四号端口输出频率
  17. delay(5);                              //该频率维持5毫秒   
  18. }
  19. delay(4000);                            //最高频率下维持4秒钟
  20. for(int i=800;i>=200;i--)
  21. {
  22.   pinMode(4,OUTPUT);
  23.   tone(4,i);
  24. delay(10);
  25. }
  26. }
复制代码

今天我们使用了一个新的函数 tone(),他的具体使用方法请参阅arduino语法手册tone()


以下是演示视频:




==========分割线 下面为扩展阅读==========

本次实验所用到的语法请点击关键字进入极客工坊WIKI查看,词条内容在WIKI中不定期更新。
void
setup()
loop()
pinMode()
int
<=
>=
++
--
delay()
tone()


用arduino+蜂鸣器(喇叭)可以播放这种简单的声响,也是可以播放音乐的,如果您想了解如何播放音乐,请参考这篇文章:
http://www.geek-workshop.com/thread-288-1-1.html

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2012-6-14 17:16:03 | 显示全部楼层
函数 tone() 我还没用过这个函数,呵呵!
回复 支持 反对

使用道具 举报

发表于 2012-7-26 16:54:13 | 显示全部楼层
为什么初始化时用的 pinMode 需要放进 loop的主函数里?
和直接放在setup里有区别么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-26 17:07:22 | 显示全部楼层
Uduse 发表于 2012-7-26 16:54
为什么初始化时用的 pinMode 需要放进 loop的主函数里?
和直接放在setup里有区别么?

没区别,当时我写程序时准备要关闭OUTPUT状态的,后来将那个去掉了。程序就没修改了。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-26 17:23:36 | 显示全部楼层
迷你强 发表于 2012-7-26 17:07
没区别,当时我写程序时准备要关闭OUTPUT状态的,后来将那个去掉了。程序就没修改了。。。

嗯...多谢~
回复 支持 反对

使用道具 举报

发表于 2012-7-27 11:09:58 | 显示全部楼层
我被偷的掉前轮和车坐的自行车在刚修好的一周内,终于离开了我。小偷呀。。。这个报警器也许能震慑下。
回复 支持 反对

使用道具 举报

发表于 2012-7-27 16:47:26 | 显示全部楼层
小强哥,关于pinMode (4,OUTPUT)这条程序,是否可以放在setup()下的大括号内呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-27 16:58:58 | 显示全部楼层
乐_乐(顺) 发表于 2012-7-27 16:47
小强哥,关于pinMode (4,OUTPUT)这条程序,是否可以放在setup()下的大括号内呢?

可以,最好自己尝试
回复 支持 反对

使用道具 举报

发表于 2012-7-27 17:08:33 | 显示全部楼层
迷你强 发表于 2012-7-27 16:58
可以,最好自己尝试

这个实验搞不了了,蜂鸣器不牢,坏了。。。分尸了呵呵!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-27 22:52:18 | 显示全部楼层
乐_乐(顺) 发表于 2012-7-27 17:08
这个实验搞不了了,蜂鸣器不牢,坏了。。。分尸了呵呵!


{:3_50:}...........额,囧。。。。进过重新检查,可能遇到次品了,胶水牢靠度不行。。。。如果下次购买东西,给您补发,到时候说一下。。。。


暂时找个小喇叭代替也可以
回复 支持 反对

使用道具 举报

发表于 2012-7-28 19:46:38 | 显示全部楼层
没事,下载买其他东西你给寄吧,哈哈~~给你省点邮费
回复 支持 反对

使用道具 举报

发表于 2012-9-8 19:35:17 | 显示全部楼层
不知道是不是蜂鸣器有区别,我从家里翻出来的,反接是不响的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-8 23:00:25 | 显示全部楼层
星夜幻 发表于 2012-9-8 19:35
不知道是不是蜂鸣器有区别,我从家里翻出来的,反接是不响的。

有源蜂鸣器是有极性的
回复 支持 反对

使用道具 举报

发表于 2012-9-19 19:28:57 | 显示全部楼层
好东西,顶!
回复 支持 反对

使用道具 举报

发表于 2012-10-30 22:58:30 | 显示全部楼层
这个例程 Leonardo @ 1.01 不能正常执行, 1.01 换装 1.5 的Core库后能正常执行,推测tone函数的问题。
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 13:01 , Processed in 0.046965 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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