Arduino入门教程--第八课--用蜂鸣器模拟警报器
玩了好久的LED了,今天开始,我们玩点新鲜的东西,今天我们来玩蜂鸣器,当然我光用蜂鸣器听个响大家肯定不答应,所以玩个比较简单,但稍微高端一点的,做一个防控警报类似的报警器。实验用元器件列表
ocrobot mango控制板(Arduino兼容) 一块
面包板一块
面包板专用跳线一盒
无源蜂鸣器一个
USB数据线一根
我们来看电路图,电路图非常简单,就是一个蜂鸣器和arduino兼容板还有就是两根跳线,请注意,蜂鸣器一定要是无源蜂鸣器,市面上还有一种有源的蜂鸣器,这种用来做我们的实验是不行的。这点请大家注意。
然后我们根据所绘制的电路连接图搭建我们的电路
大家有没有发现,这个蜂鸣器标明了极性,无源蜂鸣器其实是无极性的,有源蜂鸣器才有极性,但是为了生产的节约成本统一采用了有源蜂鸣器的封装,所以上图我们接反了无需惊讶。
具体的关于成本节约有关的内容可以参考《魔鬼经济学》,一本非常不错的经济学的简单轻松的读本。
然后,我们来下载程序
/*
作者:极客工坊-迷你强
时间:2012年6月13日
IDE版本号:1.0.1
发布地址:www.geek-workshop.com
作用:使用tone()函数产生声音,模拟防控警报的响声
*/
void setup()
{
}
void loop()
{
for(int i=200;i<=800;i++) //用循环的方式将频率从200HZ 增加到800HZ
{
pinMode(4,OUTPUT);
tone(4,i); //在四号端口输出频率
delay(5); //该频率维持5毫秒
}
delay(4000); //最高频率下维持4秒钟
for(int i=800;i>=200;i--)
{
pinMode(4,OUTPUT);
tone(4,i);
delay(10);
}
}
今天我们使用了一个新的函数 tone(),他的具体使用方法请参阅arduino语法手册的tone()
以下是演示视频:
http://player.youku.com/player.php/sid/XNDEzMTQ4NzM2/v.swf
==========分割线 下面为扩展阅读==========
本次实验所用到的语法请点击关键字进入极客工坊WIKI查看,词条内容在WIKI中不定期更新。
void
setup()
loop()
pinMode()
int
<=
>=
++
--
delay()
tone()
用arduino+蜂鸣器(喇叭)可以播放这种简单的声响,也是可以播放音乐的,如果您想了解如何播放音乐,请参考这篇文章:
http://www.geek-workshop.com/thread-288-1-1.html
函数 tone() 我还没用过这个函数,呵呵! 为什么初始化时用的 pinMode 需要放进 loop的主函数里?
和直接放在setup里有区别么? Uduse 发表于 2012-7-26 16:54 static/image/common/back.gif
为什么初始化时用的 pinMode 需要放进 loop的主函数里?
和直接放在setup里有区别么?
没区别,当时我写程序时准备要关闭OUTPUT状态的,后来将那个去掉了。程序就没修改了。。。 迷你强 发表于 2012-7-26 17:07 static/image/common/back.gif
没区别,当时我写程序时准备要关闭OUTPUT状态的,后来将那个去掉了。程序就没修改了。。。
嗯...多谢~ 我被偷的掉前轮和车坐的自行车在刚修好的一周内,终于离开了我。小偷呀。。。这个报警器也许能震慑下。 小强哥,关于pinMode (4,OUTPUT)这条程序,是否可以放在setup()下的大括号内呢? 乐_乐(顺) 发表于 2012-7-27 16:47 static/image/common/back.gif
小强哥,关于pinMode (4,OUTPUT)这条程序,是否可以放在setup()下的大括号内呢?
可以,最好自己尝试 迷你强 发表于 2012-7-27 16:58 static/image/common/back.gif
可以,最好自己尝试
这个实验搞不了了,蜂鸣器不牢,坏了。。。分尸了呵呵! 乐_乐(顺) 发表于 2012-7-27 17:08 static/image/common/back.gif
这个实验搞不了了,蜂鸣器不牢,坏了。。。分尸了呵呵!
{:3_50:}...........额,囧。。。。进过重新检查,可能遇到次品了,胶水牢靠度不行。。。。如果下次购买东西,给您补发,到时候说一下。。。。
暂时找个小喇叭代替也可以 没事,下载买其他东西你给寄吧,哈哈~~给你省点邮费 不知道是不是蜂鸣器有区别,我从家里翻出来的,反接是不响的。 星夜幻 发表于 2012-9-8 19:35 static/image/common/back.gif
不知道是不是蜂鸣器有区别,我从家里翻出来的,反接是不响的。
有源蜂鸣器是有极性的 好东西,顶! 这个例程 Leonardo @ 1.01 不能正常执行, 1.01 换装 1.5 的Core库后能正常执行,推测tone函数的问题。