Высота тона с помощью регулятора
Часть раздела Выходные сигналы путешествия по 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) не даёт скетчу запускать тон тысячи раз в секунду.
Задание
ЛегкоПотенциометр подключён к 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 и воспроизведи звук
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Выходные сигналы
3Звук
Воспроизведение тона на зуммереЗвуковые сигналы и тишинаВысота тона с помощью регулятораНоты в массивеМелодия из двух массивовПотренируйтесь самостоятельно: Песочница Arduino