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

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


🔄 Проект: регулировка скорости DC-мотора потенциометром через один транзистор TIP120

В других проектах на сайте скоростью и направлением мотора управляют специализированные драйверы L298N или L9110S. Здесь — самый простой и дешёвый вариант для случая, когда смена направления вообще не нужна (например, обычный вентилятор): потенциометр через один транзистор TIP120 плавно задаёт только скорость.

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

Потенциометр подключён как обычный делитель напряжения, и Arduino читает его положение через `analogRead()`, получая число от 0 до 1023 — то же самое, что и в проекте с регулировкой скорости через L298N. Разница — в силовой части: вместо специализированного драйвера с двумя входами (для двух направлений) здесь используется один транзистор TIP120, который может либо пропускать ток через мотор, либо нет, причём с переменной скважностью через ШИМ — вращение возможно только в одну сторону, заданную самой схемой подключения мотора, без возможности программно развернуть его в другую.

Это осознанный компромисс: для задач, где направление вообще не нужно (вентилятор, помпа, работающая всегда в одну сторону), один транзистор — это заметно проще и дешевле собрать, чем полноценный H-мост драйвера, при той же плавной регулировке скорости через ШИМ.

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

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

  1. Потенциометр: средний вывод → A0 Arduino, крайние выводы → 5V и GND.
  2. TIP120 (TO-220): база → резистор 1 кОм → D9 Arduino (ШИМ-способный пин).
  3. Эмиттер TIP120 → GND (общий с GND источника питания мотора).
  4. Один вывод мотора → отдельный источник питания, второй вывод → коллектор TIP120.

Скетч

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

const int POT_PIN = A0;
const int TRANSISTOR_PIN = 9;

void setup() {
  Serial.begin(9600);
  pinMode(TRANSISTOR_PIN, OUTPUT);
}

void loop() {
  int potValue = analogRead(POT_PIN);
  int speed = map(potValue, 0, 1023, 0, 255);

  analogWrite(TRANSISTOR_PIN, speed);

  Serial.print("Скорость: ");
  Serial.println(speed);

  delay(100);
}

Дополнительных библиотек не требуется — только встроенные `analogRead()` и `analogWrite()`. Резистор между пином Arduino и базой TIP120 обязателен — без него транзистор может выйти из строя или работать нестабильно.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 📢 удалённый звуковой сигнал через усилитель …🔢 счётчик полных оборотов энкодера KY-040 со… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 116 ₽ 104 ₽ (экономия 12 ₽)

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

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

Корзина


Поиск



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