🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


📢 Проект: тональная сирена на транзисторе TIP120, управляющем динамиком

В этом проекте нет готового модуля-зуммера — вместо него Arduino напрямую формирует звуковой сигнал через обычный динамик, а переключает его питание дискретный биполярный транзистор TIP120, рассчитанный на заметно больший ток, чем способен выдать пин Arduino напрямую.

Как это работает

Пины Arduino способны отдавать лишь небольшой ток (десятки миллиампер) — этого достаточно для маленького пьезо-зуммера, но маловато для полноценного динамика, который звучит громче и приятнее. TIP120 — составной транзистор Дарлингтона: это по сути два транзистора в одном корпусе, усиливающие маленький ток базы в гораздо больший ток коллектора, что позволяет управлять нагрузками в несколько ампер, подавая на базу транзистора через резистор обычный слабый сигнал с пина Arduino.

Функция `tone()` в Arduino обычно работает с пином, формируя на нём прямоугольный сигнал нужной частоты — именно этот сигнал, пропущенный через TIP120, заставляет динамик быстро щёлкать туда-сюда с той же частотой, что воспринимается ухом как тон нужной высоты, только заметно громче, чем позволил бы маленький пьезо-излучатель напрямую от пина.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. TIP120 (корпус TO-220, три вывода: база, коллектор, эмиттер — обычно слева-направо, уточните по маркировке на корпусе конкретной детали): база → резистор 1 кОм → D9 Arduino.
  2. Эмиттер TIP120 → GND Arduino (общий с GND питания динамика).
  3. Один вывод динамика → отдельный источник питания (например, 9-12V, в зависимости от желаемой громкости — не превышайте характеристики конкретного динамика), второй вывод динамика → коллектор TIP120.
  4. Если динамик питается от отдельного источника напряжения, GND этого источника также нужно соединить с GND Arduino (общая земля) — иначе транзистор не будет правильно переключаться.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

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 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA