Arduino平台软硬件原理及使用——无源蜂鸣器模块的使用

文章目录
一、蜂鸣器发声原理
二、无源蜂鸣器与有源蜂鸣器的区分
三、无源蜂鸣器模块在Arduino中的使用

一、蜂鸣器发声原理

在这里插入图片描述
上图为常见的不同封装及规格的蜂鸣器。

在这里插入图片描述
同蜜蜂、知了等昆虫发声原理一样,蜂鸣器同样靠振动来发出声音;
如上图为无源蜂鸣器的内部结构,振动片一般为压电陶瓷,当电源导通后,电能会通过压电陶瓷转化机械能,从而通过振动来发出声音。
在这里插入图片描述
上图为不同物种对于发声频率和听觉频率的不同,后文在使用无源蜂鸣器进行发声时,可参考人的听觉频率进行测试。

二、无源蜂鸣器与有源蜂鸣器的区分

有源及无源蜂鸣器
关于有源蜂鸣器无源蜂鸣器外观上的区别,其正面都是一样的,唯独底面一个由黑胶包裹,一个为裸露的电路板 ,正如以下实物图所示:
在这里插入图片描述
另外关于两者的使用区别也容易理解:

有源蜂鸣器只要通电即可连续发出声音,但音色无法改变;
无源蜂鸣器需要接在音频输出电路中才能使用,可以通过改变频率来改变音色

三、无源蜂鸣器模块在Arduino中的使用

蜂鸣器模块
如上无源蜂鸣器模块共有三个引脚:

VCC 接电源正极
GND 接电源负极
IO 接数字输出端口

无源蜂鸣器与Arduino
按照上图将无源蜂鸣器模块与Arduino进行连接,并完成以下程序:

//此程序用于测试无源蜂鸣器的使用
void setup() 
{
	pinMode(7,OUTPUT);  //设置蜂鸣器连接的7号端口为输出
}

void loop() 
{
	tone(7,555);  //tone函数的作用为使蜂鸣器以指定频率发声
	              //tone(端口号 ,发声频率);
}

程序中的“tone(7, 555)”作用为使得7号端口的蜂鸣器以555的频率发声;上传后,会发现蜂鸣器会持续发声,不妨改变一下程序,使得蜂鸣器可以像警报一样断断续续的发声:

//此程序可以使蜂鸣器间断性的发声
void setup() 
{
	pinMode(7,OUTPUT);  //设置蜂鸣器连接的7号端口为输出
}

void loop() 
{
	tone(7,555);  //tone函数用于发声
	delay(300);  //延时300毫秒
	noTone(7);  //使7号端口的蜂鸣器停止发声
	delay(300);  //延时300毫秒
}

此程序又引入了“noTone(7)”,其作用为使7号端口的蜂鸣器停止发声,可以尝试改变发声的频率,并上传测试。

关于无源蜂鸣器模块的具体实例可参考文章——Arduino项目式编程教学第五章——激光报警装置

很好,我可以为您解答这个问题。首先,无源蜂鸣器是一种不需要外部电源的电子元件,它可以通过改变输入电压的频率和占空比来产生不同的声音。在使用Arduino控制无源蜂鸣器时,我们需要使用数字输出引脚来输出PWM信号,从而控制无源蜂鸣器的声音。 下面是一个简单的例子,演示如何使用Arduino控制无源蜂鸣器播放简单的音乐: ```C++ int speakerPin = 9; //定义数字输出引脚 int notes[] = {261, 294, 329, 349, 391, 440, 494, 523}; //定义音符频率 int beats[] = {4, 4, 4, 4, 4, 4, 4, 4}; //定义每个音符的拍数 void setup() { pinMode(speakerPin, OUTPUT); //设置数字输出引脚为输出模式 } void loop() { for (int i = 0; i < 8; i++) { //循环播放每个音符 int duration = 1000 / beats[i]; //计算每个音符的持续时间 tone(speakerPin, notes[i], duration); //输出PWM信号控制无源蜂鸣器播放音符 delay(duration * 1.30); //等待一段时间,让音符之间有间隔 noTone(speakerPin); //停止输出PWM信号 } } ``` 在这个例子中,我们定义了一个speakerPin变量,它表示数字输出引脚的编号。然后,我们定义了两个数组notes和beats,分别表示每个音符的频率和拍数。在setup()函数中,我们将speakerPin设置为输出模式。在loop()函数中,我们使用for循环来依次播放每个音符。在每次循环中,我们使用tone()函数输出PWM信号控制无源蜂鸣器播放音符,并使用delay()函数等待一段时间,让音符之间有间隔。最后,我们使用noTone()函数停止输出PWM信号。 希望这个例子可以帮助您理解如何使用Arduino控制无源蜂鸣器播放音乐。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洪博hopes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值