当前位置:首页Arduino > 正文

arduino蜂鸣器音乐代码

作者:野牛程序员:2023-06-21 11:00:24Arduino阅读 5720

当使用Arduino控制蜂鸣器播放音乐时,可以使用以下代码示例:

// 定义蜂鸣器引脚
#define BUZZER_PIN 9

// 定义音符频率
#define NOTE_C4  262
#define NOTE_D4  294
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_G4  392
#define NOTE_A4  440
#define NOTE_B4  494
#define NOTE_C5  523

// 定义音符时长
#define NOTE_QUARTER  250
#define NOTE_HALF    500
#define NOTE_WHOLE   1000

void setup() {
  pinMode(BUZZER_PIN, OUTPUT);
}

void loop() {
  // 将音符序列以数组形式定义
  int melody[] = {
    NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, 0, NOTE_B4, NOTE_C5
  };

  // 将音符时长序列以数组形式定义
  int noteDurations[] = {
    NOTE_QUARTER, NOTE_QUARTER, NOTE_QUARTER, NOTE_HALF, NOTE_QUARTER, NOTE_QUARTER, NOTE_HALF, NOTE_WHOLE
  };

  // 计算音符序列的长度
  int melodyLength = sizeof(melody) / sizeof(melody[0]);

  // 播放音符序列
  for (int i = 0; i < melodyLength; i++) {
    int noteDuration = 1000 / noteDurations[i];
    tone(BUZZER_PIN, melody[i], noteDuration);
    delay(noteDuration * 1.3); // 添加延迟,使音符之间有间隔
    noTone(BUZZER_PIN);
  }

  // 延迟一段时间后再次播放
  delay(2000);
}

在上面的示例代码中,我们使用了一个简单的音乐序列来演示如何使用Arduino控制蜂鸣器播放音乐。你可以根据需要自定义自己的音乐序列,修改melodynoteDurations数组来定义不同的音符和时长。

setup()函数中,我们将蜂鸣器引脚(在示例中为引脚9)设置为输出模式。在loop()函数中,我们使用tone()函数播放音符,并使用delay()函数添加延迟以控制音符之间的间隔。最后,我们使用noTone()函数停止蜂鸣器的振荡。

请注意,以上代码只是一个示例,你可以根据需要进行修改和扩展,以实现更复杂的音乐播放功能。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击