Arduino:Примеры/EsploraMusic: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
 
Нет описания правки
Строка 29: Строка 29:
Чтобы проиграть ноту, нажмите на нижнюю кнопку '''Esplora'''. Звук будет звучать, пока вы будете нажимать на кнопку.
Чтобы проиграть ноту, нажмите на нижнюю кнопку '''Esplora'''. Звук будет звучать, пока вы будете нажимать на кнопку.


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
/*
/*



Версия от 12:32, 20 мая 2023

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


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

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

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

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

  • Плата Arduino Esplora;

Цепь

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

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

Код

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

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

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

/*

Музыка на Esplora

Этот скетч превращает Esplora в простой музыкальный инструмент. 
Чтобы увидеть его в работе, двигайте слайдер потенциометра и нажимайте на кнопку «Вниз».

Создан 22 ноября 2012 Энрико Гуэли (Enrico Gueli, enrico.gueli@gmail.com),
модифицирован 22 декабря 2012 Томом Иго (Tom Igoe).

*/

#include <Esplora.h>

// Это частоты нот от среднего «до» до среднего «до» октавой выше:
const int note[] = { 
  262, // до
  277, // до-диез
  294, // ре
  311, // ре-диез
  330, // ми
  349, // фа
  370, // фа-диез
  392, // соль
  415, // соль-диез
  440, // ля
  466, // ля-диез
  494, // си
  523  // до в следующей октаве
};

void setup() {
}

void loop() {
  // Считываем значение кнопки SWITCH_DOWN (т.е. кнопки, отвечающей за перемещение вниз). 
  // Если значение равно LOW, то проигрываем ноту:
  if (Esplora.readButton(SWITCH_DOWN) == LOW) {
    int slider = Esplora.readSlider();

    // Используем функцию map() для того, чтобы подогнать диапазон линейного потенциометра
    // под имеющийся у нас нотный диапазон:
    byte thisNote = map(slider, 0, 1023, 0, 13);
    // Проигрываем ноту, соответствующую позиции потенциометра:
    Esplora.tone(note[thisNote]);
  }
  else {
    // Если кнопка не нажата, выключаем проигрывание ноты:
    Esplora.noTone();
  }
}

См.также

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

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