下面是一个简单的使用Arduino编写的蜂鸣器演奏“夜空中最亮的星”的代码:
```
int speakerPin = 8; // 蜂鸣器引脚
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(speakerPin, OUTPUT); // 将蜂鸣器引脚设置为输出
}
void loop() {
for (int i = 0; i < sizeof(melody) / sizeof(melody[0]); i++) {
int duration = 1000 / noteDurations[i]; // 计算音符持续时间
tone(speakerPin, melody[i], duration); // 播放音符
delay(duration * 1.3); // 等待一段时间后停止播放
noTone(speakerPin); // 停止播放
}
}
```
在这个代码中,我们定义了一个蜂鸣器引脚和一个包含所有演奏音符的数组和一个包含每个音符持续时间的数组。在`setup()`函数中,我们将蜂鸣器引脚设置为输出。在`loop()`函数中,我们使用`for`循环逐个演奏音符。我们使用`tone()`函数播放每个音符,并使用`delay()`函数等待一段时间后停止播放。最后,我们使用`noTone()`函数停止播放。
请注意,这只是一个简单的示例代码,您可以根据自己的需要进行修改和扩展。