← Все вопросы

Как управлять моторчиком с Arduino, если напрямую с пина он не крутится?

Задан 15 месяцев назад895 просмотров1 ответ
7

Подключил маленький моторчик прямо к пину Arduino и GND — он либо не крутится, либо плата начинает странно себя вести и перезагружается. Почему нельзя так просто, и как тогда правильно крутить мотор?

1 ответ

12
✓ Принятый ответ — помог автору

Нельзя напрямую, потому что мотору нужен ток гораздо больше, чем может дать пин (~20 мА). Мотор тянет в разы больше, плата проседает по питанию и перезагружается. Плюс при работе мотор даёт скачки напряжения, которые могут повредить контроллер.

Правильно — управлять через драйвер или хотя бы транзистор. Для пары моторов самый ходовой вариант — модуль L298N или L293D:

  • Мотор подключается к драйверу, а драйвер — к отдельному питанию (батарейки).
  • Arduino даёт драйверу только слабые управляющие сигналы (вперёд/назад/скорость через ШИМ).
  • GND Arduino и GND драйвера обязательно соединены вместе.
// пример управления одним мотором через L298N
int in1 = 8, in2 = 9, enA = 10;
void setup() {
  pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(enA, OUTPUT);
}
void loop() {
  digitalWrite(in1, HIGH); digitalWrite(in2, LOW); // направление
  analogWrite(enA, 200);   // скорость 0..255 через ШИМ
}

Короче: Arduino — это «командир», а ток на мотор даёт драйвер от своих батареек.

Ваш ответ

, чтобы ответить на вопрос.