arduino 蜂鸣器音乐代码
时间: 2024-06-16 07:05:52 浏览: 21
当使用Arduino控制蜂鸣器播放音乐时,可以通过控制蜂鸣器的频率和持续时间来实现。以下是一个简单的Arduino蜂鸣器音乐代码示例:
```cpp
// 定义蜂鸣器引脚
int buzzerPin = 9;
// 定义音符频率
int melody[] = {
262, 196, 196, 220, 196, 0, 247, 262
};
// 定义音符持续时间
int noteDurations[] = {
4, 8, 8, 4, 4, 4, 4, 4
};
void setup() {
// 设置蜂鸣器引脚为输出模式
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// 播放音乐
for (int i = 0; i < sizeof(melody) / sizeof(int); i++) {
int noteDuration = 1000 / noteDurations[i];
tone(buzzerPin, melody[i], noteDuration);
delay(noteDuration * 1.3);
noTone(buzzerPin);
delay(50);
}
}
```
这段代码使用了一个简单的音乐示例,通过定义`melody`数组来表示音符的频率,`noteDurations`数组表示音符的持续时间。在`loop()`函数中,通过循环遍历数组,使用`tone()`函数播放音符,并使用`delay()`函数控制音符之间的间隔时间。
相关问题
arduino蜂鸣器音乐代码 按键
Arduino蜂鸣器可以通过编程来控制发声。以下是一个简单的Arduino蜂鸣器音乐代码,它可以通过按键来控制不同的音符:
```
int buttonPin = 2; // 按键所接的引脚
int tonePin = 8; // 蜂鸣器所接的引脚
int notes[] = {262, 294, 330, 349, 392, 440, 494, 523}; // 音符频率
int duration = 200; // 音符持续时间
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // 设置按键引脚为上拉输入
}
void loop() {
if (digitalRead(buttonPin) == LOW) { // 如果按键被按下
for (int i = 0; i < 8; i++) {
tone(tonePin, notes[i], duration); // 发出音符
delay(50); // 等待一段时间
}
noTone(tonePin); // 停止发声
}
}
```
这个代码中,我们首先定义了一个按键引脚和一个蜂鸣器引脚。然后,我们定义了一个包含不同频率的音符数组,并设置了每个音符的持续时间。
在主循环中,我们检测按键是否被按下。如果按键被按下,我们使用for循环遍历音符数组,并使用`tone()`函数在蜂鸣器引脚上发出每个音符。我们使用`delay()`函数等待一段时间来让每个音符之间有一定的间隔。最后,我们使用`noTone()`函数停止发声。
arduino蜂鸣器音乐代码大全
以下是几个常见的Arduino蜂鸣器音乐代码示例:
1. 播放简单的音阶:
```
int buzzerPin = 9;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// 音阶数组
int melody[] = {262, 294, 330, 349, 392, 440, 494, 523};
// 音符持续时间
int noteDuration = 250;
// 播放音阶
for (int i = 0; i < 8; i++) {
tone(buzzerPin, melody[i], noteDuration);
delay(noteDuration);
noTone(buzzerPin);
delay(50);
}
}
```
2. 播放Happy Birthday歌曲:
```
int buzzerPin = 9;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
int melody[] = {NOTE_E4, NOTE_E4, NOTE_F4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_F4, NOTE_E4, NOTE_A4, NOTE_E4, NOTE_E4, NOTE_E5, NOTE_E4, NOTE_D5, NOTE_B4, NOTE_G4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_C5, NOTE_C5, NOTE_B4, NOTE_G4, NOTE_A4, 0, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_C5, NOTE_B4, 0};
int noteDuration[] = {4, 4, 8, 8, 4, 4, 4, 4, 4, 4, 2, 4, 4, 8, 8, 4, 4, 4, 4, 4, 4, 2, 4, 4, 8, 8, 4, 4, 4, 4, 4, 4, 2};
for (int i = 0; i < 31; i++) {
if (melody[i] == 0) {
delay(noteDuration[i]);
} else {
tone(buzzerPin, melody[i], noteDuration[i] * 100);
delay(noteDuration[i] * 110);
noTone(buzzerPin);
delay(20);
}
}
}
```
3. 播放Super Mario游戏主题曲:
```
int buzzerPin = 9;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
int melody[] = {NOTE_E7, NOTE_E7, 0, NOTE_E7, 0, NOTE_C7, NOTE_E7, 0, NOTE_G7, 0, 0, 0, NOTE_G6, 0, 0, 0, NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_C7, NOTE_D7, NOTE_B6, 0, 0, NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_C7, NOTE_D7, NOTE_B6, 0, 0};
int noteDuration[] = {12, 12, 12, 12, 12, 12, 6, 12, 12, 6, 12, 12, 12, 12, 12, 12, 12, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6, 6, 12, 12, 12, 12, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 6};
for (int i = 0; i < 90; i++)
{
if (melody[i] == 0) {
delay(noteDuration[i]);
} else {
tone(buzzerPin, melody[i], noteDuration[i] * 100);
delay(noteDuration[i] * 110);
noTone(buzzerPin);
delay(20);
}
}
}
```
这些代码提供了一些基本的Arduino蜂鸣器音乐代码示例,您可以根据自己的需求进行修改和扩展。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)