Шторку теплицы я вешал на 28BYJ-48: метр на метр плёнки на леске через ролик. Через полвитка мотор сорвался — счёт шагов продолжил врать молча, рама уехала набок и порвала плёнку. Пересчитал на бумажке: рычаг ролика полтора сантиметра, на плёнку с каркасом уходит килограмма два — момент около 30 Н·см, а мелкий моторчик держит три. Десятикратная разница не лечится ни скетчем, ни скоростью: это граница железа, за ней начинается другой мотор.
NEMA 17 — не бренд и не модель, а размер фланца по американскому стандарту: 17 означает 1,7 дюйма, это около 43 миллиметров. На рынке мотор ходит как сорок второй — фланец 42×42 мм, крепёжные отверстия с межосевым шагом 31 мм, вал 5 мм. Стандартизация — половина ценности: кронштейны, кэм-клампы, шкивы GT2 и ремни продаются под этот размер в любом магазине, и всё встаёт друг на друга без напильника.
Внутри — две биполярные обмотки и четыре провода без общего плюс-провода, как у 28BYJ-48: пара A+, A- и пара B+, B-, различаются звонком мультиметра — между собой провода пары свистят, между парами тишина. Разберём число шагов, ток паспорта, выбор драйвера под ток и границы, за которыми мелкий моторчик сдаётся окончательно.
200 шагов и 1,8 градуса: чем он устроен
Стандартный NEMA 17 делает 1,8 градуса на шаг — двести шагов на оборот, без всякого редуктора. Бывают версии на 0,9 градуса и четыреста шагов: точнее, дороже и медленнее на том же напряжении. Вал идёт напрямую: люфт меньше, чем через пластиковый редуктор, скорость выше — и момент не умножается, потому что умножать нечем. Против двух тысяч сорока восьми позиций 28BYJ-48 двести выглядят бедно, но у мелкого моторчика эти 2048 куплены ценой редуктора с его люфтом и потолком в пятнадцать об/мин, вымеренным в первом уроке раздела.
Ток фазы — вот где разница паспортов. Мелкий моторчик ест около 0,1 А на катушку, NEMA 17 — от 0,4 до 1,7 А в зависимости от модели, то есть в четыре-семнадцать раз больше. Ни пин Arduino, ни плата ULN2003 с её пятьюстами миллиамперами на канал такое не протащат: нужен драйвер с чоппером, который держит ток винтом независимо от напряжения питания. Момент удержания у ходовых моделей — 0,2-0,6 Н·м: в десять-двадцать раз выше мелкого моторчика, и это уже тяга для шторок, роликов и поворотных головок.
Драйвер подбирается под паспортный ток с запасом около тридцати процентов. Мотор на 1,2 А: A4988 без радиатора (до 1 А) — впритык-мимо, с радиатором до 2 А — можно, но лучше с обдувом; DRV8825 на 2,2 А — спокойный выбор; TB6600 на 4 А — для тяжёлых версий по 1,5-1,7 А. Ток винтом настраивается по Vref, формула и порядок действий — в уроке про подключение A4988. Тот же A4988 умеет микрошаг до 1/16, что для гладкого хода нужно не меньше, чем запас по току.
| Параметр | 28BYJ-48 + ULN2003 | NEMA 17 + A4988 |
|---|---|---|
| Ток фазы | Около 0,1 А | 0,4-1,7 А по шильдику |
| Момент удержания | Около 3 Н·см | 20-60 Н·см у ходовых моделей |
| Шагов на оборот | 2048 — через редуктор 1:64 | 200 — вал напрямую, 1,8° |
| Скорость | До 15 об/мин, дальше срыв | Сотни об/мин при 12 В и с разгоном |
| Питание | 5 В, можно от платы | VMOT 8-35 В, ток ограничен винтом драйвера |
Границу я для себя провёл так: требуемый момент считайте как груз в килограммах, умноженный на плечо в сантиметрах и на десять — получите ньютон-сантиметры с приличным запасом. Два килограмма на полутора сантиметрах — 30 Н·см; у 28BYJ-48 — три, у ходового NEMA 17 — от двадцати до шестидесяти. Расчётный момент выше 2 Н·см или нужная скорость выше тридцати об/мин — я сразу беру NEMA 17 с драйвером: пересадка на середине проекта стоит дороже, чем сразу правильный мотор.
Где мелкий моторчик по-прежнему король: заслонки, кормушки, счётчики, шторки камер — всё, где момент в пределах пары Н·см и скорость не выше пятнадцати об/мин. Он дешевле в несколько раз, питается пятью вольтами и не поджигает чип. Пересаживать на NEMA 17 автокормушку — стрелять из пушки по воробьям: ток фазы вырастает в десять раз, питание приходится городить отдельное, а выигрыша по задаче — ноль.
Питание и монтаж — то, о чём забывают при переезде с 5 В на 12. VMOT просит свой адаптер: 12 В на 2 А с запасом, земля общая с платой, иначе STEP и DIR висят в воздухе. Не пытайтесь питать мотор от пина 5V — плата будет перезагружаться на первом же шаге, лимит USB-порта вы уже проходили. Правила общей земли и отдельного источника я разбирал на примере серво — они те же, только ток побольше.
// A4988: STEP - импульс, DIR - направление; pot на A0 - паузаconst int PIN_STEP = 3;const int PIN_DIR = 4;const int PIN_POT = A0; const int STEPS_PER_REV = 200; void impuls() { digitalWrite(PIN_STEP, HIGH); delayMicroseconds(10); digitalWrite(PIN_STEP, LOW);} void setup() { pinMode(PIN_STEP, OUTPUT); pinMode(PIN_DIR, OUTPUT); Serial.begin(9600);} void loop() { int raw = analogRead(PIN_POT); // 2-12 мс между шагами: от 25 до 150 об/мин у 200-шагового мотора int pauza = map(raw, 0, 1023, 12, 2); pauza = constrain(pauza, 2, 12); digitalWrite(PIN_DIR, HIGH); unsigned long t0 = millis(); for (int i = 0; i < STEPS_PER_REV; i++) { impuls(); delay(pauza); } Serial.print("oborot_ms="); Serial.println(millis() - t0); delay(1000); digitalWrite(PIN_DIR, LOW); for (int i = 0; i < STEPS_PER_REV; i++) { impuls(); delay(pauza); } delay(1000);}Пауза между импульсами берётся с потенциометра: map пересчитывает 0-1023 в 2-12 миллисекунд, constrain страхует края шкалы. Двести шагов с паузой 12 мс — оборот за 2,4 секунды, это 25 об/мин; с паузой 2 мс — оборот за 0,4 секунды и около 150 об/мин. Вторая цифра для многих экземпляров на 12 В уже на грани срыва без разгона: мотор гудит, вал стоит — растите паузу или ставьте AccelStepper с разгоном; граница срыва вымеряется тем же способом, что мы применяли в уроке про скорость.
Замер millis вокруг серии импульсов — привычка, которую стоит утащить в свои скетчи: скетч сам отчитывается, сколько занял оборот, и врать не умеет. Сравните с расчётом на бумажке: 200 шагов, умноженные на паузу, плюс мелочь на накладные расходы. Расходится в разы — ищите, кто тормозит: длинные провода, слабое питание или срыв, который выглядит как медленная езда, но звучит гулом.
ENABLE здесь по-прежнему свободен: между ходами драйвер держит позицию полным током, и за полчаса простоя чип и вал становятся неприятными на ощупь. Для подъёмных механизмов это плюс — шторка не сползёт. Для всего остального подавайте HIGH на ENABLE после хода и LOW перед следующим: обмотки отпустит, нагрев уйдёт в ноль. Сон через SLEEP работает так же, но дешевле по току — ценой миллисекунды на пробуждение; я держу оба способа в одной функции уставки и включаю нужный строкой.
Симулятор: модель NEMA 17 с ручкой скорости
Честно: ни A4988, ни токов фаз движок не эмулирует — в симуляторе живёт модель на библиотечном Stepper с двумястами шагами на оборот, как у настоящего NEMA 17. Потенциометр A0 задаёт скорость от 3 до 15 об/мин, светодиод D12 горит на пол-оборота, зуммер D8 пикнет на каждом обороте, Serial печатает номер оборота и скорость. На настоящей плате этой модели соответствуют импульсы на STEP с установленным DIR — тот же скетч из code-блока выше.
Что смотреть: пропорцию скорости и времени. Крутите ручку — темп меняется, обороты считаются, зуммер отчитывается каждый круг. Диапазон 3-15 об/мин — безопасная зона для шторки без разгона; когда механизму понадобится быстрее, придётся добавлять разгон через AccelStepper, но это уже отдельная история с собственным уроком — сначала пусть мотор хотя бы тянет вашу нагрузку на малых оборотах.
- NEMA 17 — размер: фланец 42×42 мм (1,7 дюйма), крепёж 31×31 мм, вал 5 мм; вся периферия продаётся под него
- 1,8° на шаг — 200 позиций на оборот без редуктора; бывают версии 0,9° и 400 шагов
- Биполярные обмотки, четыре провода, ток фазы 0,4-1,7 А против 0,1 А у 28BYJ-48 — пин и ULN2003 такое не тянут
- Драйвер — под паспортный ток с запасом 30%: A4988 до 1 А без радиатора, DRV8825 2,2 А, TB6600 4 А
- Граница смены мотора: момент выше 2 Н·см (груз × плечо × 10) или скорость выше 30 об/мин — берите NEMA 17
- 1. Сколько полных шагов на оборот делает стандартный NEMA 17?
- 2. Какой ток фазы у ходовых моделей NEMA 17?
- 3. Почему ULN2003 не подходит для NEMA 17?
- 4. Груз 2 кг на плече ролика 1,5 см — какой нужен момент?
- 5. Что происходит с A4988 без радиатора при токе выше 1 А?
Три урока сложились в маршрут: драйвер с Step и Dir, деление шага до 1/16 и мотор, который тянет по-настоящему. Дальше маршрут расходится: кому — разгон через AccelStepper и неблокирующие ходы на millis, кому — счёт позиции между включениями в EEPROM, кому — реперы для длинных серий оборотов. Свой маршрут я начал со шторки: она теперь поднимается за двенадцать секунд, ровно и без срывов, а счёт шагов с той ночи я перепроверяю плечом ролика — честный счёт начинается с честной механики.
Частые вопросы по теме урока
- Сколько полных шагов на оборот делает стандартный NEMA 17?
- Шаг 1,8 градуса даёт 360 / 1,8 = 200 шагов на оборот. Две тысячи сорок восемь — это 28BYJ-48 с её редуктором. 200
- Какой ток фазы у ходовых моделей NEMA 17?
- Паспортный ток фазы — от 0,4 до 1,7 А. Против 0,1 А у 28BYJ-48 это в четыре-семнадцать раз больше — потому и нужен чоппер-драйвер. 0,4-1,7 А
- Почему ULN2003 не подходит для NEMA 17?
- Защитные диоды и реверс у ULN2003 есть, но канал ограничен половиной ампера — фазный ток NEMA 17 его превышает в разы. Канал держит 500 мА — меньше фазного тока мотора
- Груз 2 кг на плече ролика 1,5 см — какой нужен момент?
- Груз × плечо × 10 = 2 × 1,5 × 10 = 30 Н·см с запасом. У 28BYJ-48 только 3 Н·см — она на такой роли срывается. 30 Н·см
- Что происходит с A4988 без радиатора при токе выше 1 А?
- Чип греется и сбрасывает ток термозащитой: вращения нет, гул есть. Радиатор обязателен, при токах выше ампера — ещё и обдув. Уходит в термозащиту: мотор гудит и стоит, остынет — оживает