
Интернет-магазин «Неглупый Дом»
В других проектах на сайте скоростью и направлением мотора управляют специализированные драйверы L298N или L9110S. Здесь — самый простой и дешёвый вариант для случая, когда смена направления вообще не нужна (например, обычный вентилятор): потенциометр через один транзистор TIP120 плавно задаёт только скорость.
Потенциометр подключён как обычный делитель напряжения, и Arduino читает его положение через `analogRead()`, получая число от 0 до 1023 — то же самое, что и в проекте с регулировкой скорости через L298N. Разница — в силовой части: вместо специализированного драйвера с двумя входами (для двух направлений) здесь используется один транзистор TIP120, который может либо пропускать ток через мотор, либо нет, причём с переменной скважностью через ШИМ — вращение возможно только в одну сторону, заданную самой схемой подключения мотора, без возможности программно развернуть его в другую.
Это осознанный компромисс: для задач, где направление вообще не нужно (вентилятор, помпа, работающая всегда в одну сторону), один транзистор — это заметно проще и дешевле собрать, чем полноценный H-мост драйвера, при той же плавной регулировке скорости через ШИМ.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему. Небольшой 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: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 116 ₽ 104 ₽ (экономия 12 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.