Простейший код, в котором Arduino будет издавать (весьма противные) звуки каждую секунду, выглядит так:
const int buzzer = 8; // arduino pin 8
void setup(){
pinMode(buzzer, OUTPUT);
}
void loop() {
tone(buzzer, 1000); // 1000Гц = 1КГц
delay(1000); // 1с
noTone(buzzer); // стоп
delay(1000); // пауза 1с
}
Кстати, в продаже бывают и так называемые “активные пьезодинамики” (active buzzer). Они имеют 3 входа, один из которых +5В, а второй управляющий.
Использование такого динамика проще - частоту можно не задавать, достаточно просто установить в “1” соответствующий вывод. Для этого достаточно заменить функцию tone(buzzer, 1000); на digitalWrite(buzzer, HIGH); и функцию noTone(buzzer); на digitalWrite(buzzer, LOW). Такой динамик обычно громче, но отсутствие возможности смены частоты звука может быть недостатком.
Самостоятельная работа #1: С помощью пьезодинамика воспроизвести гамму или несложную мелодию, воспользовавшись таблицей частот нот в герцах.
До
262
Соль
392
Ре
294
Ля
440
Ми
330
Си
494
Фа
349
До
523
Самостоятельная работа #2: Дополнить таймер из предыдущей главы возможностью вывода звука при окончании интервала. Для этого заменить функцию delay функцией воспроизведения соответствующего тона.