Ноты в массиве
Часть раздела Выходные сигналы путешествия по Arduino на Coddy. Урок 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, и мелодия начинается снова.
Задание
ЛегкоВоспроизводи ноты C, D, E и F одну за другой на выводе 8, по 400 мс каждую, снова и снова:
- храни четыре частоты в массиве: 262, 294, 330, 349
- используй переменную-индекс, чтобы каждый раз при запуске
loop()воспроизводить следующую ноту - после последней ноты возвращайся к первой
Нажми Run, затем Check.
Попробуйте сами
const int buzzerPin = 8;
// создайте здесь массив notes и переменную index
void setup() {
}
void loop() {
// воспроизведите ноту с индексом index, подождите 400 мс, перейдите к следующей
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Выходные сигналы
Потренируйтесь самостоятельно: Песочница Arduino