Menu
CoddyTech

Ноты в массиве

Часть раздела Выходные сигналы путешествия по 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, и мелодия начинается снова.

challenge icon

Задание

Легко

Воспроизводи ноты 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 мс, перейдите к следующей
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Выходные сигналы

Потренируйтесь самостоятельно: Песочница Arduino