Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/EsploraMusic

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Музыка на Esplora[1]

Этот пример показывает, как проигрывать ноты на зуммере, встроенном в Arduino Esplora. Зуммеры могут генерировать различные аудиосигналы в слышимых частотных диапазонах, и нота – это как раз аудиосигнал на определенной частоте. Если вы знаете частоты нот, которые хотите проиграть, то можете начинать составлять собственную мелодию.

В этом примере вы будете двигать слайдер линейного потенциометра, чтобы настроиться на ту или иную ноту, а затем нажимать на кнопку, чтобы эти ноты проигрывать.

Необходимое оборудование

  • Плата Arduino Esplora;

Цепь

Для этого примера нужна только Arduino Esplora, которую надо подключить к компьютеру через USB-кабель.

Esplora Music.png

Расположение зуммера, слайдера (для выбора ноты) и кнопки (для проигрывания ноты).

Код

Внутри массива имеется 13 нот. Вы можете выбрать необходимую ноту, меняя позицию слайдера на линейном потенциометре.

Представьте, что длина потенциометра разбита на 13 секций, а каждая секция соответствует тому или иному значению в массиве note[]. Эти значения, в свою очередь, соответствуют 13 нотам, и вы, перемещая слайдер, выбираете определенное значение в массиве, соответствующее частоте той или иной ноты.

Чтобы проиграть ноту, нажмите на нижнюю кнопку Esplora. Звук будет звучать, пока вы будете нажимать на кнопку.

  1. /*
  2.  
  3. Музыка на Esplora
  4.  
  5. Этот скетч превращает Esplora в простой музыкальный инструмент.
  6. Чтобы увидеть его в работе, двигайте слайдер потенциометра и нажимайте на кнопку «Вниз».
  7.  
  8. Создан 22 ноября 2012 Энрико Гуэли (Enrico Gueli, enrico.gueli@gmail.com),
  9. модифицирован 22 декабря 2012 Томом Иго (Tom Igoe).
  10.  
  11. */
  12.  
  13. #include <Esplora.h>
  14.  
  15. // Это частоты нот от среднего «до» до среднего «до» октавой выше:
  16. const int note[] = {
  17.   262, // до
  18.   277, // до-диез
  19.   294, // ре
  20.   311, // ре-диез
  21.   330, // ми
  22.   349, // фа
  23.   370, // фа-диез
  24.   392, // соль
  25.   415, // соль-диез
  26.   440, // ля
  27.   466, // ля-диез
  28.   494, // си
  29.   523  // до в следующей октаве
  30. };
  31.  
  32. void setup() {
  33. }
  34.  
  35. void loop() {
  36.   // Считываем значение кнопки SWITCH_DOWN (т.е. кнопки, отвечающей за перемещение вниз).
  37.   // Если значение равно LOW, то проигрываем ноту:
  38.   if (Esplora.readButton(SWITCH_DOWN) == LOW) {
  39.     int slider = Esplora.readSlider();
  40.  
  41.     // Используем функцию map() для того, чтобы подогнать диапазон линейного потенциометра
  42.     // под имеющийся у нас нотный диапазон:
  43.     byte thisNote = map(slider, 0, 1023, 0, 13);
  44.     // Проигрываем ноту, соответствующую позиции потенциометра:
  45.     Esplora.tone(note[thisNote]);
  46.   }
  47.   else {
  48.     // Если кнопка не нажата, выключаем проигрывание ноты:
  49.     Esplora.noTone();
  50.   }
  51. }

См.также

  1. Esplora.readSlider()
  2. Esplora.readButton()
  3. Esplora.tone()
  4. Esplora.noTone()

Внешние ссылки

  1. Arduino - Music