数组中的音符
本课属于 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,旋律就会重新开始。
挑战
简单依次在引脚 8 上播放音符 C、D、E 和 F,每个音符播放 400 ms,然后不断重复:
- 将四个频率存放在数组中:262、294、330、349
- 使用索引变量,在每次运行
loop()时播放下一个音符 - 播放完最后一个音符后,回到第一个
按“运行”,然后按“检查”。
亲手试试
const int buzzerPin = 8;
// 在这里创建 notes 数组和索引变量
void setup() {
}
void loop() {
// 播放索引指向的音符,等待 400 ms,再移到下一个音符
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输出中的所有课
自己练习: Arduino 在线编辑器