本帖最后由 董董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
- }
- }
- }
复制代码
|