使用arduino编写蜂鸣器演奏 卡农的代码
时间: 2023-06-14 20:08:33 浏览: 140
以下是使用Arduino编写蜂鸣器演奏《卡农》的示例代码:
```c++
#define buzzerPin 8 //定义蜂鸣器连接的引脚
#define TONE_C 1911 //定义C调的频率
#define TONE_G 1275 //定义G调的频率
#define TONE_A 1136 //定义A调的频率
#define TONE_B 1012 //定义B调的频率
void setup() {
pinMode(buzzerPin, OUTPUT); //设置蜂鸣器引脚为输出模式
}
void loop() {
playCanon(); //演奏卡农
}
void playCanon() {
//第一部分
tone(buzzerPin, TONE_A, 500);
delay(500);
tone(buzzerPin, TONE_B, 500);
delay(500);
tone(buzzerPin, TONE_C, 500);
delay(500);
tone(buzzerPin, TONE_B, 500);
delay(500);
tone(buzzerPin, TONE_A, 500);
delay(500);
tone(buzzerPin, TONE_B, 500);
delay(500);
tone(buzzerPin, TONE_C, 1000);
delay(1000);
//第二部分
tone(buzzerPin, TONE_G, 500);
delay(500);
tone(buzzerPin, TONE_A, 500);
delay(500);
tone(buzzerPin, TONE_B, 500);
delay(500);
tone(buzzerPin, TONE_C, 500);
delay(500);
tone(buzzerPin, TONE_B, 500);
delay(500);
tone(buzzerPin, TONE_A, 500);
delay(500);
tone(buzzerPin, TONE_G, 1000);
delay(1000);
//第三部分
tone(buzzerPin, TONE_A, 500);
delay(500);
tone(buzzerPin, TONE_B, 500);
delay(500);
tone(buzzerPin, TONE_C, 500);
delay(500);
tone(buzzerPin, TONE_D, 500);
delay(500);
tone(buzzerPin, TONE_E, 500);
delay(500);
tone(buzzerPin, TONE_D, 500);
delay(500);
tone(buzzerPin, TONE_C, 1000);
delay(1000);
//第四部分
tone(buzzerPin, TONE_B, 500);
delay(500);
tone(buzzerPin, TONE_C, 500);
delay(500);
tone(buzzerPin, TONE_D, 500);
delay(500);
tone(buzzerPin, TONE_E, 500);
delay(500);
tone(buzzerPin, TONE_F, 500);
delay(500);
tone(buzzerPin, TONE_E, 500);
delay(500);
tone(buzzerPin, TONE_D, 1000);
delay(1000);
}
```
说明:
- `buzzerPin` 定义蜂鸣器连接的引脚;
- `TONE_C`、`TONE_G`、`TONE_A`、`TONE_B` 定义不同调的频率;
- `setup()` 函数用于初始化程序,将 `buzzerPin` 设置为输出模式;
- `loop()` 函数用于循环执行程序;
- `playCanon()` 函数用于演奏《卡农》;
- 在 `playCanon()` 函数中,将蜂鸣器按照旋律演奏,并且在每个音符之后加上一定的延迟时间。
你可以将代码上传到Arduino板上,然后将蜂鸣器连接到 `buzzerPin` 引脚上,即可听到演奏出来的《卡农》。