
Интернет-магазин «Неглупый Дом»
В этом проекте нет готового модуля-зуммера — вместо него Arduino напрямую формирует звуковой сигнал через обычный динамик, а переключает его питание дискретный биполярный транзистор TIP120, рассчитанный на заметно больший ток, чем способен выдать пин Arduino напрямую.
Пины Arduino способны отдавать лишь небольшой ток (десятки миллиампер) — этого достаточно для маленького пьезо-зуммера, но маловато для полноценного динамика, который звучит громче и приятнее. TIP120 — составной транзистор Дарлингтона: это по сути два транзистора в одном корпусе, усиливающие маленький ток базы в гораздо больший ток коллектора, что позволяет управлять нагрузками в несколько ампер, подавая на базу транзистора через резистор обычный слабый сигнал с пина Arduino.
Функция `tone()` в Arduino обычно работает с пином, формируя на нём прямоугольный сигнал нужной частоты — именно этот сигнал, пропущенный через TIP120, заставляет динамик быстро щёлкать туда-сюда с той же частотой, что воспринимается ухом как тон нужной высоты, только заметно громче, чем позволил бы маленький пьезо-излучатель напрямую от пина.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
const int SPEAKER_PIN = 9; // через резистор 1 кОм на базу TIP120
void setup() {
Serial.begin(9600);
}
void loop() {
// восходящая "сирена": плавно поднимаем частоту от 400 до 1200 Гц
for (int freq = 400; freq <= 1200; freq += 20) {
tone(SPEAKER_PIN, freq);
delay(15);
}
// и обратно вниз
for (int freq = 1200; freq >= 400; freq -= 20) {
tone(SPEAKER_PIN, freq);
delay(15);
}
}
Дополнительных библиотек не требуется — только встроенная `tone()`. Резистор между пином Arduino и базой TIP120 обязателен (ограничивает ток базы) — без него транзистор может выйти из строя или работать нестабильно.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 130 ₽ 117 ₽ (экономия 13 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.