利用蜂鸣器buzzer写一个能在arduino上面执行的小情歌编程
时间: 2024-03-16 07:44:44 浏览: 155
好的,以下是一个简单的小情歌程序,使用Arduino的蜂鸣器播放:
```c
int buzzerPin = 8;
int length = 15; // 歌曲长度
// 歌曲的音符和持续时间(毫秒)
int melody[] = {
262, 262, 294, 262, 349, 330, 262, 262, 294, 262, 392, 349, 262, 262, 523
};
int noteDurations[] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8
};
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
for (int i = 0; i < length; i++) {
int duration = noteDurations[i];
tone(buzzerPin, melody[i], duration * 10);
delay(duration * 10 * 1.3);
}
}
```
这个程序使用了Arduino的tone()函数,它需要两个参数:蜂鸣器引脚和要播放的频率。在这个例子中,我们使用了一个数组来存储音符和持续时间,循环播放这个数组中的每个音符。
相关问题
利用蜂鸣器buzzer写一个能在arduino上面执行的小星星编程
好的,以下是一个简单的小星星程序,使用Arduino的蜂鸣器播放:
```c
int buzzerPin = 8;
int length = 18; // 歌曲长度
// 歌曲的音符和持续时间(毫秒)
int melody[] = {
262, 262, 392, 392, 440, 440, 392,
349, 349, 330, 330, 294, 294, 262,
392, 392, 349, 349, 330, 330, 294,
392, 392, 349, 349, 330, 330, 294,
262, 262, 392, 392, 440, 440, 392,
349, 349, 330, 330, 294, 294, 262
};
int noteDurations[] = {
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2
};
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
for (int i = 0; i < length; i++) {
int duration = noteDurations[i];
tone(buzzerPin, melody[i], duration * 10);
delay(duration * 10 * 1.3);
}
}
```
这个程序使用了Arduino的tone()函数,它需要两个参数:蜂鸣器引脚和要播放的频率。在这个例子中,我们使用了一个数组来存储音符和持续时间,循环播放这个数组中的每个音符。整个程序就是播放了一遍《小星星》的旋律。
利用蜂鸣器buzzer写一个能在arduino上面执行的生日快乐歌编程
好的,下面是能在Arduino上执行的生日快乐歌的编程:
```
int buzzerPin = 8; //连接蜂鸣器的引脚
// 生日快乐歌的音符和节奏
int melody[] = { // 音符
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4,
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
NOTE_C4, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_B4, NOTE_B4, NOTE_A4, NOTE_F4,
NOTE_G4, NOTE_F4, NOTE_END};
int beats[] = { // 节奏
4, 4, 2, 2, 2, 2,
4, 4, 2, 2, 2, 2,
4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 4};
void setup() {
pinMode(buzzerPin, OUTPUT); // 设置引脚为输出模式
}
void loop() {
for (int i = 0; i < sizeof(melody) / sizeof(int); i++) { // 遍历每个音符
if (melody[i] == NOTE_END) { // 如果到了结尾,停止播放
noTone(buzzerPin);
delay(1000);
continue;
}
tone(buzzerPin, melody[i]); // 播放音符
delay(beats[i] * 125); // 延迟一段时间,根据节奏来计算
noTone(buzzerPin); // 停止播放
delay(10); // 为了避免音符之间过于接近,加入一个小的延迟
}
}
```
这段代码将在连接到引脚8的蜂鸣器中播放生日快乐歌,每个音符的持续时间和时间间隔都根据节奏数组计算得出。
阅读全文