用Arduino做音乐盒,蜂鸣器,三个LED,三个按钮,实现自动点歌
时间: 2024-05-12 17:18:59 浏览: 191
通过arduino操控蜂鸣器演奏音乐.zip
以下是一个简单的Arduino程序,可以用来控制音乐盒:
```
const int button1 = 2;
const int button2 = 3;
const int button3 = 4;
const int led1 = 5;
const int led2 = 6;
const int led3 = 7;
const int buzzer = 8;
int song1[] = {262, 294, 330, 349, 392, 440, 494, 523};
int song2[] = {523, 494, 440, 392, 349, 330, 294, 262};
int song3[] = {262, 330, 392, 262, 330, 392, 262, 330};
int song1_length = 8;
int song2_length = 8;
int song3_length = 8;
void setup() {
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
if (digitalRead(button1) == LOW) {
playSong(song1, song1_length);
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
if (digitalRead(button2) == LOW) {
playSong(song2, song2_length);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
if (digitalRead(button3) == LOW) {
playSong(song3, song3_length);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
}
}
void playSong(int song[], int length) {
for (int i = 0; i < length; i++) {
tone(buzzer, song[i]);
delay(500);
noTone(buzzer);
delay(100);
}
}
```
这个程序使用了三个按钮来选择三首不同的歌曲。每当一个按钮被按下时,程序会播放相应的歌曲,并点亮对应的LED灯。播放歌曲的函数是`playSong`,它接受一个包含音符频率的数组和数组长度作为参数。在循环中,程序将每个音符的频率传递给蜂鸣器,并使用`tone`函数播放它。然后程序会暂停一段时间,然后用`noTone`函数停止播放。这个程序可以轻松地扩展,以添加更多的歌曲或功能。
阅读全文