Menu
CoddyTech

Высота тона с помощью регулятора

Часть раздела Выходные сигналы путешествия по Arduino на Coddy. Урок 12 из 24.

Потенциометр может управлять зуммером, как музыкальным инструментом. Идея та же, что и с диммером: считываем значение потенциометра, преобразуем его и используем.

На этот раз целевой диапазон — частота. 200 Гц — это низкий гул, а 2000 Гц — высокий свист, поэтому:

int reading = analogRead(A0);
int pitch = map(reading, 0, 1023, 200, 2000);
tone(8, pitch);

map() не обязательно должен начинать новый диапазон с 0: значению 0 соответствует 200, значению 1023 — 2000, а среднее положение потенциометра соответствует значению около 1100.

Повторный вызов tone() с новой частотой сразу меняет ноту, поэтому высота звука меняется, когда ты поворачиваешь потенциометр. Короткая задержка delay(10) не даёт скетчу запускать тон тысячи раз в секунду.

challenge icon

Задание

Легко

Потенциометр подключён к A0, а зуммер — к выводу 8. Настройте потенциометр так, чтобы он задавал высоту звука:

  • считайте показания потенциометра
  • преобразуйте показания в частоту от 200 до 2000 Hz с помощью map()
  • воспроизведите её с помощью tone(), затем подождите 10 ms

Нажмите Run и поверните потенциометр, затем нажмите Check.

Попробуйте сами

const int knobPin = A0;
const int buzzerPin = 8;

void setup() {
}

void loop() {
  // считай значение с ручки, преобразуй его в диапазон 200..2000 Hz и воспроизведи звук
}
quiz iconПроверьте себя

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

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

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