Arduino ULN2003
тел. +7(499)347-04-82
Описание Arduino ULN2003
Arduino + ULN2003: Драйвер шагового двигателя 28BYJ-48
📋 Описание
ULN2003 — это модуль-драйвер на основе микросхемы ULN2003A (7-канальный массив составных транзисторов Дарлингтона). Чаще всего используется совместно с шаговым двигателем 28BYJ-48 (униполярным, 4-фазным). Модуль позволяет управлять обмотками двигателя от логических выходов Arduino (5V) и получать достаточный ток для вращения.
Модуль также может использоваться как самостоятельный драйвер для реле, соленоидов, лампочек, светодиодных лент и т.п. — это по сути «распаковщик» логических сигналов в мощные выходные ключи.
Применение
- Проекты на Arduino для управления шаговыми двигателями 28BYJ-48
- Робототехника, 3D-принтеры (редко), CNC-поделки
- Управление реле, соленоидами, светодиодами
- Позиционирование в камерах (CCTV-поворотки)
- Дозаторы, задвижки, механические замки
⚙️ Технические характеристики (по микросхеме ULN2003A)
| Параметр | Значение | |---|---| | Тип | 7-канальный Darlington Array (NPN) | | Напряжение питания (VCC модуля, обычно на двигатель) | 5 – 30 В | | Входной логический уровень | 5 В (совместим с Arduino/TTL) | | Макс. постоянный ток на канал | 500 мА | | Пиковый ток на канал | 600 мА | | Напряжение насыщения (Vce sat) | ~0.9 В @ 100 мА | | Встроенные защитные диоды | Да (для индуктивной нагрузки) | | Входные резисторы базы | ~2.7 кОм | | Рабочая температура | –40 … +85 °C | | Корпус микросхемы | DIP-16 или SOIC-16 | | Размеры типичного модуля | ~29 × 16 × 15 мм |
Характеристики двигателя 28BYJ-48 (с которым модуль обычно идёт в комплекте)
| Параметр | Значение | |---|---| | Тип | Униполярный шаговый (4 фазы) | | Рабочее напряжение | 5 В DC | | Сопротивление обмоток | ~50 Ом / фаза | | Число шагов | 32 (рабочих), но обычно 64 шага/вит. редуктора с передачей 1:64 | | Шагов на оборот (полный) | 2048 (half-step: 4096) | | Угловой размер шага | 5.625°/64 = 11.25°/шаг (ред.) | | Крутящий момент | ~34 мН·м (слаботочный) | | Ток | ~92 мА на фазу (по обмотке) | | Частота вращения | 0 – 15 об/мин (реалистично) | | Вес | ~30 г |
⚠️ Реальный max ток через один канал ULN2003 — не более ~350 мА с радиатором и до 500 мА кратковременно. Так как все 4 обмотки модуля работают поочерёдно, микросхема почти всегда питает только 2 катушки — 184 мА, что близко к пределу для одного корпуса без радиатора.
🔧 Распиновка модуля
| Пин модуля | Назначение | |---|---| | IN1–IN4 | Логические входы (к Arduino: D8–D11 в примере) | | VCC (+) | Питание обмоток 5 В (не 3.3!) | | GND (–) | Общий минус | | Разъём белый (5 pin) | К двигателю 28BYJ-48 | | Перемычка | Можно переключать (в редко встречающихся вариантах) |
Схема подключения к Arduino:
IN1 → D8
IN2 → D9
IN3 → D10
IN4 → D11
VCC → +5V
GND → GND
📦 Парт-номера (Part Numbers)
Микросхемы ULN2003
| Парт-номер | Производитель | Корпус | |---|---|---| | ULN2003A | Texas Instruments | DIP-16 | | ULN2003AD | Texas Instruments | SOIC-16 | | ULN2003ADR | Texas Instruments | SOIC-16 (TR) | | ULN2003AN | Texas Instruments | DIP-16 | | [TEX] ULN2003APG | Toshiba | DIP-16 | | ULN2003D1013TR | ST Microelectronics | SOIC-16 | | ULN2003V12 | TI (улучшенная логика 3.3V) | 16-SOIC | | ULN2803A | 8-канальный аналог | DIP-18 |
Готовые модули на маркетплейсах
| Модуль | Артикул / SKU |
|---|---|
| 5V Stepper ULN2003 driver (модуль + 28BYJ-48) | Keyes CL-B-1, KY-028 — неверно, чаще без KY-кода |
| Оптический: модуль ULN2003 blue PCB 27×16 мм | SKU: HW-241, UF-15, ULN2003-MOD5V |
| AliExpress/AliTalking общие SKU | KF-1101, AI01548 |
Замечу прямо: единого парт-номера у китайского красного/синего модуля нет — это «Open Source / безымянная» плата. Ключевые источники поиска — SKU типа HW-241, HW-130 или поисковый запрос "28BYJ-48 5V with ULN2003 driver module".
🤖 Совместимые контроллеры / модели
Микроконтроллеры (любые с GPIO 5V или 3.3V через транзисторы)
- Arduino Uno / Nano / Megа / Micro / Leonardo / Nano
- Arduino IDE-совместимые
- ESP8266 / ESP32 (можно, но питания обмоток надо 5V, а логика часто 3.3V — работать будет, т.к. входной порог низкий)
- STM32 BluePill / STM32 Nucleo (с 5V питанием для VCC)
- RPi Pico / Pico W (только как «HIGH» — не выше 3.3, драйвер справится)
- Raspberry Pi 3 / 4 / 5 (GPIO 3.3 В, часто через резистор)
- Orange Pi, Banana Pi, Odroid
Совместимые двигатели (потребители на выходах модуля)
- шаговый 28BYJ-48 (5V, 4-фазный) — основной,
- 28BYJ-48 12V вариант,
- небольшие униполярные двигатели на 5–12 В, до 500 мА
- up to 12 В CD-attracting solenoid, relay, LED стрип,
- Никогда: биполярные большие NEMA17 (NEMA 17 1.5A / 2A) — не справится, слаб. По одному каналу большие токи тоже запрещены.
Совместимые библиотеки для Arduino
- Stepper.h — должна быть. (Stepper(2048, 8,9,10,11))
- SevSeg не подходит :-)
- AccelStepper — лучший результат, чем Stepper, по скорости/плавности
- PowerStep01, шаговые для больших моторов — не для этого
💻 Мини-пример Arduino (полушаг с Stepper.h)
#include <Stepper.h}
constexpr int stepsPerRevPerSinModule = 2048;
Stepper myStepper(stepsPerRevPerSinModule, 8, 10, 9, 11); // важно последовательность для направления
void setup() { myStepper.setSpeed(10); }
void loop() { myStepper.step(stepsPerRev/…); }
(i.e. провод AD in «8, 10, 9, 11») — популярен порядок 8,10,9,11 а не 8,9,10,11 (иначе вибрирует).
VS обычный, пробегу текста нормальный. Что ещё по описательной линии — по пину замены/резисторов?