Спикер (динамик-пищалка) может быть выполнен в как в виде отдельного динамика, так и в виде модуля (KY-006, KY-012):
Схемы подключения отдельного спикера и модуля (все простой - в обоих случаях подключаемся к GND, в случае отдельного спикера, его "+" подключаем к любому цифровому пину, в случае моделя "s" - к любому цифровому пину, а оставшийся пин - к 5v):
Для работы спикера существует 2 функции: tone() и noTone().
Первая принимает 2 обязательных параметра - пин, к которому подключен спикер, и требуемую частоту звуковой волны. Если не задавать третий параметр, то спикер будет издавать звук до вызова функции noTone(), если же задать - то звук будет воспроизводится заданную продолжительность.
Работа как с отдельным спикером, так и с модулем - одинакова:
const beepPin = 7;
void setup()
{
// использование с передачей длительности
tone(beepPin, 440, 250);
}
void loop()
{
}
или
const beepPin = 7;
void setup()
{
// без передачи длительности с использованием noTone()
tone(7, 820);
delay(300);
noTone(beepPin);
}
void loop()
{
}
Спикер можно использовать например для того, чтобы устройство воспроизводило мелодию, как в проектах елочной игрушки или будильника.
Однако чаще я подключаю спикер для того, чтобы получать обратную связь от программы и понимать, в каком она сейчас состоянии. Например, вы разрабатываете устройство без экрана, и ваш код работает не так, как вы того ожидаете, и по каким-то причинам вы не можете использовать serial monitor. Тогда достаточно добавить в определенные места программы функции воспроизведения звука, чтобы отладить код.