← Все вопросы
Как управлять моторчиком с Arduino, если напрямую с пина он не крутится?
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 — это «командир», а ток на мотор даёт драйвер от своих батареек.
Ваш ответ
, чтобы ответить на вопрос.