弘毅 发表于 2014-4-25 16:09:34

OCROBOT入门教程011--蜂鸣器

本帖最后由 董董soul 于 2016-10-27 10:59 编辑

蜂鸣器分电磁式和压电式,每种里面还会分有源与无源。这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。

这节课我们驱动一个阻抗为16Ω的无源蜂鸣器,让他发出声音。

我们看一下硬件连接图





程序部分我们试用数字引脚输出,然后通过delay控制延时来输出一个振荡源。

int buzzer=7;//设置控制蜂鸣器的数字IO脚
void setup()
{
pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为输出
}
void loop()
{
unsigned char i,j;//定义变量
while(1)
{
    for(i=0;i<80;i++)//输出一个频率的声音
    {
      digitalWrite(buzzer,HIGH);//发声音
      delay(1);//延时1ms
      digitalWrite(buzzer,LOW);//不发声音
      delay(1);//延时ms
    }
    for(j=0;j<100;j++)//输出另一个频率的声音
    {
      digitalWrite(buzzer,HIGH);//发声音
      delay(2);//延时2ms
      digitalWrite(buzzer,LOW);//不发声音
      delay(2);//延时2ms
    }
}
}


http://player.youku.com/player.php/sid/XNzEzMTAzODky/v.swf

熊娃子 发表于 2015-6-18 09:28:08

while里面的第二个for应该是j变量吧

弘毅 发表于 2015-6-19 21:31:11

熊娃子 发表于 2015-6-18 09:28 static/image/common/back.gif
while里面的第二个for应该是j变量吧

确实。。。马上去修改。。。

萧芸凤 发表于 2015-8-6 23:53:11

同一个蜂鸣器模块,原先可以接高电平一直响的,现在居然不行了

mlyl 发表于 2017-2-13 14:07:13

:):):):):):):):)
页: [1]
查看完整版本: OCROBOT入门教程011--蜂鸣器