arduino 红外遥控蜂鸣器播放音乐代码
时间: 2023-09-09 17:07:17 浏览: 140
Arduino平台智能小车超声波避障红外遥控MATLAB联动源码+项目说明.zip
以下是一个使用红外遥控控制蜂鸣器播放音乐的Arduino代码示例:
```
#include <IRremote.h> //引入红外遥控库
int RECV_PIN = 11; //定义红外遥控接收引脚
IRrecv irrecv(RECV_PIN); //初始化红外遥控接收器
decode_results results; //定义红外遥控解码结果
int buzzerPin = 10; //定义蜂鸣器引脚
//定义播放的音符频率
int notes[] = {262, 294, 330, 349, 392, 440, 494, 523};
void setup()
{
irrecv.enableIRIn(); //开启红外遥控接收
pinMode(buzzerPin, OUTPUT); //设置蜂鸣器引脚为输出模式
}
void loop()
{
if (irrecv.decode(&results)) //如果有红外遥控信号被接收
{
switch (results.value) //根据红外遥控编码值做出相应操作
{
case 0xFF6897: //播放C大调音阶
playScale();
break;
case 0xFF9867: //播放Happy Birthday
playHappyBirthday();
break;
case 0xFFB04F: //播放小星星
playLittleStar();
break;
}
irrecv.resume(); //继续接收红外遥控信号
}
}
void playScale()
{
for (int i = 0; i < 8; i++) //循环播放8个音符
{
tone(buzzerPin, notes[i]); //使用tone函数播放音符
delay(500); //每个音符播放500毫秒
noTone(buzzerPin); //停止播放音符
}
}
void playHappyBirthday()
{
int melody[] = {262, 262, 294, 262, 349, 330, 262, 262, 294, 262, 392, 349, 262, 262, 523, 440, 349, 330, 294, 466, 466, 440, 349, 392, 349};
int noteDurations[] = {4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 2};
for (int i = 0; i < 24; i++) //循环播放24个音符
{
int duration = 1000 / noteDurations[i]; //计算每个音符的持续时间
tone(buzzerPin, melody[i], duration); //使用tone函数播放音符
int pauseBetweenNotes = duration * 1.30; //计算每个音符之间的暂停时间
delay(pauseBetweenNotes); //暂停
noTone(buzzerPin); //停止播放音符
}
}
void playLittleStar()
{
int melody[] = {262, 262, 294, 294, 330, 330, 294, 262, 262, 294, 294, 330, 330, 294, 262, 294, 262, 220, 220, 262, 262, 294, 294, 262, 220, 262, 262, 294, 294, 330, 330, 294, 262, 262, 294, 294, 330, 330, 294, 262};
int noteDurations[] = {4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 2, 4, 4};
for (int i = 0; i < 38; i++) //循环播放38个音符
{
int duration = 1000 / noteDurations[i]; //计算每个音符的持续时间
tone(buzzerPin, melody[i], duration); //使用tone函数播放音符
int pauseBetweenNotes = duration * 1.30; //计算每个音符之间的暂停时间
delay(pauseBetweenNotes); //暂停
noTone(buzzerPin); //停止播放音符
}
}
```
在上面的代码中,我们引入了IRremote库来实现红外遥控功能,使用了tone函数来播放音符,同时定义了三个播放不同音乐的函数playScale、playHappyBirthday和playLittleStar,通过红外遥控信号来控制不同的函数的执行。你可以根据自己的需要来修改这个代码,播放不同的音乐。
阅读全文