Menu
CoddyTech

数组中的音符

本课属于 Coddy Arduino 学习旅程的“输出”单元。第 13 课,共 24 课。

旋律是一列音符。数组可以用一个名称保存一列值:

int notes[] = {262, 294, 330, 349};  // C, D, E, F

每个值都有一个称为索引的位置,计数从 0 开始:notes[0] 是 262,notes[1] 是 294,最后一个 notes[3] 是 349。不存在 notes[4]:读取它会得到数组之后内存中的任意内容。

索引可以是变量。保存一个索引,播放它指向的音符,然后将索引向后移动:

int i = 0;

void loop() {
  tone(8, notes[i]);
  delay(400);
  i = i + 1;
  if (i == 4) {
    i = 0;
  }
}

每次运行 loop() 时,都会播放下一个音符。播放完最后一个音符后,索引会回到 0,旋律就会重新开始。

challenge icon

挑战

简单

依次在引脚 8 上播放音符 C、D、E 和 F,每个音符播放 400 ms,然后不断重复:

  • 将四个频率存放在数组中:262、294、330、349
  • 使用索引变量,在每次运行 loop() 时播放下一个音符
  • 播放完最后一个音符后,回到第一个

按“运行”,然后按“检查”。

亲手试试

const int buzzerPin = 8;
// 在这里创建 notes 数组和索引变量

void setup() {
}

void loop() {
  // 播放索引指向的音符,等待 400 ms,再移到下一个音符
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输出中的所有课

自己练习: Arduino 在线编辑器