Зуммер для Arduino: активный или пассивный, чем отличаются и какой выбрать
Звук в проекте нужен чаще, чем кажется: подтвердить нажатие, предупредить о перегреве, разбудить будильником. Способов издать его всего три, и они сильно отличаются по возможностям и цене.
Самый простой — пьезоизлучатель. Внутри тонкая пластинка из керамики, приклеенная к металлической мембране. Подаёте напряжение — пластинка деформируется и толкает воздух. Он громкий, дешёвый, потребляет копейки и не боится, что его подключат напрямую к выводу платы.
Разборы конкретных моделей
Три вида излучателей
Внутри собственный генератор. Подали питание — сразу пищит, обычно около двух килогерц. Менять высоту звука нельзя. Берите, если нужен просто сигнал: кнопка нажата, дверь открыта, температура превышена. Управляется одним digitalWrite.
Генератора нет, частоту задаёт плата функцией tone. Умеет играть мелодии и менять высоту звука. Именно его берут, когда нужен не писк, а музыка. Внешне отличается тем, что снизу видна зелёная плата, а не сплошная наклейка.
Обычный маленький громкоговоритель. Звучит несравнимо приятнее пьезо и умеет воспроизводить речь, но напрямую к выводу платы его подключать нельзя: он потянет слишком большой ток. Нужен резистор на сто ом последовательно, а лучше транзистор или готовый усилитель.
Как отличить активный от пассивного, если наклейки нет
Переверните излучатель. У активного донышко закрыто наклейкой или залито чёрным компаундом; у пассивного видна зелёная печатная плата с дорожками. Второй способ — подать на выводы напряжение от батарейки на три вольта: активный запищит, пассивный лишь щёлкнет один раз.
Если под рукой уже есть плата, проще всего загрузить скетч с функцией tone и последовательно перебрать несколько частот. Активный зуммер будет пищать одинаково на любой из них, пассивный честно изменит высоту.
Что учесть при выборе
Громкость пьезоизлучателя зависит не только от него самого, но и от корпуса. Прижатый к столу или зажатый в руке он звучит вдвое тише, чем закреплённый над отверстием в корпусе прибора: пластинке нужен резонансный объём.
Потребление у пьезо небольшое, около тридцати миллиампер, и вывод платы это спокойно выдерживает. А вот функция tone занимает аппаратный таймер, который на Arduino UNO отвечает ещё и за широтно-импульсную модуляцию на третьем и одиннадцатом выводах. Пока звучит нота, плавно управлять яркостью на этих двух выводах не получится — это стоит учитывать при разводке проекта заранее.