Общие сведения
Драйвер ULN2003 — небольшая плата для шагового мотора 28BYJ-48. У мотора разъём на пять проводов, на плате для него белое гнездо, и вставить его можно только одной стороной. Arduino подаёт на входы IN1–IN4 слабые сигналы, а микросхема ULN2003AN включает обмотки мотора. Четыре светодиода A–D показывают, какая обмотка сейчас под током: сразу видно, что скетч шагает.
Микросхема стоит в панельке. Если сгорит, её меняют без паяльника, ULN2003A есть отдельно.
Характеристики
- Микросхема: ULN2003AN, семь ключей Дарлингтона; для мотора нужны четыре, IN1–IN4, остальные три выведены на площадки;
- Ток ключа: до 500 мА по даташиту TI;
- Питание мотора: 5–12 В (подписано на плате);
- Управление: четыре цифровых вывода, подходят и 5 В, и 3,3 В сигналы;
- Разъём мотора: 5 контактов, под штекер 28BYJ-48.
Подключение
| Драйвер | Arduino Uno |
|---|---|
| IN1 | 8 |
| IN2 | 9 |
| IN3 | 10 |
| IN4 | 11 |
| − | GND |
| + | 5V (для 28BYJ-48 на 5 В) |
Мотору 28BYJ-48 5V хватает питания с вывода 5V Arduino. Для 28BYJ-48 12V нужен отдельный блок на 12 В: его плюс — на «+» драйвера, минус — на «−» и на GND Arduino.
Скетч использует стандартную библиотеку Stepper, она уже есть в Arduino IDE. Мотор делает оборот в одну сторону и оборот обратно.
#include <Stepper.h>
const int STEPS = 2048; // шагов на оборот выходного вала 28BYJ-48
Stepper motor(STEPS, 8, 10, 9, 11); // порядок именно такой: IN1, IN3, IN2, IN4
void setup() {
motor.setSpeed(10); // 10 оборотов в минуту
}
void loop() {
motor.step(STEPS); // оборот в одну сторону
delay(500);
motor.step(-STEPS); // и обратно
delay(500);
}Порядок выводов 8, 10, 9, 11 — не опечатка. Библиотека Stepper подаёт сигналы в своём порядке, и для 28BYJ-48 средние выводы приходится поменять местами. Если написать 8, 9, 10, 11, мотор будет только дрожать на месте.
Если что-то не так
- Светодиоды мигают, а мотор стоит или дёргается — проверьте порядок выводов в скетче и не завышайте скорость: 28BYJ-48 медленный мотор.
- Мотор греется, даже когда стоит: библиотека оставляет обмотки под током. Если удерживать вал не нужно, после поворота подайте LOW на выводы 8–11.
- Мотор не крутится совсем — проверьте питание на «+» и «−» драйвера и общий GND с Arduino.
Что пригодится вместе
- Шаговый двигатель 28BYJ-48 5V или 12V;
- Адаптер драйвера 28BYJ-48 (Trema-модуль) — подключение без проводов-перемычек;
- Микросхема ULN2003A — запасная.
Комплектация
- 1× драйвер шагового двигателя ULN2003 (DIP).
















