要在Arduino上使用蜂鸣器播放简单的音乐或音调,你可以使用tone()
函数。tone()
函数允许你为连接到Arduino的数字引脚输出指定频率(以赫兹为单位)的方波。下面是一个简单的例子,它使用蜂鸣器播放一个基本的音符序列(C, D, E, F, G, A, B, C)。
首先,你需要知道每个音符对应的频率。以下是一些常见音符的频率(以赫兹为单位):
- C: 262
- D: 294
- E: 330
- F: 349
- G: 392
- A: 440
- B: 494
- C (高八度): 523
以下是Arduino代码示例:
// 定义蜂鸣器连接的引脚
#define BUZZER_PIN 8
// 音符频率(赫兹)
int noteFrequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};
// 每个音符的持续时间(毫秒)
int noteDurations[] = {500, 500, 500, 500, 500, 500, 500, 500};
void setup() {
// 初始化蜂鸣器引脚为输出
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
// 播放音符序列
for (int thisNote = 0; thisNote < 8; thisNote++) {
int noteDuration = 1000 / noteDurations[thisNote];
tone(BUZZER_PIN, noteFrequencies[thisNote], noteDuration);
// 在音符之间添加一点延迟,以便可以听到音符的结束
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// 停止蜂鸣器,准备播放下一个音符
noTone(BUZZER_PIN);
}
// 在整个音符序列之间添加更长的延迟
delay(5000);
}
这个代码示例会循环播放C到C(高八度)的音符序列,每个音符持续500毫秒,并在音符之间添加短暂的延迟以便可以听到音符的结束。整个音符序列之间会有5秒的延迟。你可以根据需要调整音符频率、持续时间和延迟时间。