Кормушку для кота я делал из того, что было: шнек из сантехнической трубы, банка из-под кофе и моторчик, который лежал в каждой посылке с Arduino за последние десять лет, — 28BYJ-48. Кот ел по расписанию, мотор отмерял порции четвертью оборота, и всё это стоило мне полторы сотни рублей вместе с платой драйвера. Через месяц я полез в интернет за более серьёзным мотором, чтобы заменить «игрушку», — и с удивлением прочитал, что именно эти моторчики миллионами стоят в кондиционерах: они двигают заслонки, которые направляют воздух по комнате.
Это главный факт об этом моторе: он не игрушка, а массовая деталь бытовой техники, на которую свалилась вторая жизнь в хобби-наборах. Дешёвый настолько, что его кладут в комплект даром, безопасный настолько, что сгорит раньше вашего пина, и медленный настолько, что новичок на нём не сломает ни пальца, ни механизм. У всего этого есть обратная сторона, и о ней честно — ниже.
Здесь вскроем корпус: что там за четыре шестерни, почему на оборот выходит не ровно 2048 шагов, сколько он тянет на валу и в каких проектах его хватит с головой, а в каких — нет. И заодно закроем вопрос, который мне задают чаще всего: чем пятивольтовая версия отличается от двенадцативольтовой и какую брать в набор.
Что внутри: моторчик и четыре шестерни
Мотор и вал в 28BYJ-48 связаны редуктором: ротор делает 64 оборота, пока вал делает один. Редуктор — четыре пластиковые шестерни в корпусе без смазки на подшипниках. Отсюда все его плюсы и минусы. Плюс — момент: вал тянет так, как маленькому моторчику не положено, порядка трёхсот грамм-сантиметров. Минус — люфт: зубья шестерёнок имеют зазор, и вал болтается туда-обратно на долю градуса. Для заслонки неважно, для точного столика — заметно, а для сервоприводов с их обратной связью эта тема выглядит иначе, мы её касались в уроке про SG90.
Теперь честная арифметика, которую я в первый раз пропустил. Редуктор здесь не ровно 64:1, а около 63,683:1 — так складываются четыре ступени с их отношениями зубьев. Умножаем 32 шага ротора на реальное отношение и получаем примерно 2038 шагов на полный оборот вала — именно это число встречается в даташитах. Но весь мир, все библиотеки и все рецепты используют 2048. Разница на полном обороте — десять шагов, чуть больше полутора градусов; на половине оборота — вдвое меньше. Мои кормушки и шторки этой ошибкой не задушились, поэтому моё мнение: пишите 2048, как пишет библиотека Stepper из первого урока раздела, а про десяток шагов помните, когда проект потребует честного круга — например, замок, который должен возвращаться в исходное положение точно.
Ещё внутри редуктора сидит шум. Пластик по пластику на 5-8 оборотах в минуту тарахтит вполне слышно, на высоких скоростях — трещит. Для ночного проекта (кормушка рядом со спальней) я ставил мотор на резиновые прокладки и снизил скорость до 4 RPM — стало почти тихо. Металлический корпус или металл в редукторе тут не спасут: шум идёт от самой передачи.
Про износ — отдельная песня. Пластиковые зубья при постоянной работе на пределе момента выкрашиваются первыми: мой шнек кормушки после зимы нёсся с заметным люфтом, хотя катушки были как новые. Лечится режимом с запасом — если механизму нужно триста грамм-сантиметров, берите мотор с запасом вдвое или уходите на металлический редуктор NEMA-класса. Со смазкой аккуратно: капля литола на шестерни снижает и шум, и износ, но добавляет вязкое сопротивление, которое на пяти вольтах мотор преодолевает неохотно. Я смазываю только редукторы, которые работают по несколько часов в день, — кормушке с двумя выдачами в сутки хватит и без неё.
| Параметр | Значение | Что это значит на практике |
|---|---|---|
| Питание | 5 В (бывает 12 В) | прямо от платы, но не с пина 5V под нагрузкой |
| Тип | униполярный, 4 фазы | общий красный провод, управление минусами |
| Шагов ротора | 32 × 11,25° | до редуктора |
| Шагов на валу | 2048 по рецепту, ~2038 честных | один шаг = 0,176° |
| Ток катушки | около 90 мА | в полношаговом режиме работают две — до 200 мА |
| Сопротивление обмотки | 50-60 Ом | между красным и цветным |
| Момент удержания | ~300 г·см на валу | держит рычаг 3 см с грузом 100 г |
| Скорость рабочая | 5-12 RPM | выше 15 — срыв шагов |
Электрика у него старой школы: униполярная схема с центральным отводом. Красный провод — общий плюс, четыре цветных (оранжевый, розовый, жёлтый, синий) — концы двух катушек. Каждую катушку включаем, сажая её конец на землю через канал драйвера. Сопротивление между красным и любым цветным — 50-60 Ом, между двумя цветными одной катушки — вдвое больше. Если шлейф отрезан и маркировки нет, эта разница на мультиметре восстанавливает распиновку за пять минут, и вот тут пригождается умение читать номиналы из урока про цветовой код резисторов — только тут резистор у вас с валом.
Ток каждой катушки получается законом Ома из этих же чисел: 5 вольт на 55 Ом — порядка 90 мА, и это не предел мечтаний, но вдвое-втрое выше, чем может выдать пин. Сложите удержание двух катушек, нагрев и просадки — и станет ясно, почему без драйвера ULN2003 этот мотор не подключают, и почему миллис-цикл вместо задержек для него не роскошь: мотор, который стоит и держит, ест ток постоянно. Мнение с границей: питать мотор от пина 5V можно, пока это демо на пару секунд; для дежурного удержания нужен отдельный источник — это не перестраховка, а опыт с самоперезагрузками платы.
Где он хорош и где бесполезен
Моё правило, оплаченное парой переделок: 28BYJ-48 берите, когда нужно медленно, точно и дёшево поворачивать что-то лёгкое. Заслонки и шторки, дозаторы крупы и корма, поворотный столик для фотосъёмки, стрелочные приборы, задвижки аквариумных кормушек — все эти задачи он закрывает на пять. Медленно — потому что выше 12-15 RPM начинается срыв шагов, и мы это число вымеряли в уроке про скорость и позиционирование. Точно — потому что 0,176° на шаг покрывает потребности любого хобби-механизма с запасом.
Где он плох: всё, что требует скорости или силы. Колёса тележки, вентиляторы, подъёмники, привод робота — нет. Момента хватит на лёгкую заслонку, но не на поднятый груз; на скорости он сдаётся сразу после 15 RPM. Для этого мира существуют NEMA 17 с микрошаговыми драйверами — им будет отдельный раздел, а пока позвольте себе не переплачивать: если задача влезает в пять оборотов в минуту и сто грамм на валу, моторчик за полторы сотни рублей сделает её не хуже.
Пара слов про версии. Маркировка 28BYJ-48-5V означает пять вольт и катушки по 50-60 Ом; существует ещё двенадцативольтовая, у которой катушки около 250 Ом — она питается от 12 вольт и ест примерно 50 мА на фазу. Схема подключения у них одинаковая, отличается только источник питания, а перепутать их при покупке легко: смотрите маркировку в конце наименования, а не на фото продавца. Для Arduino универсальнее пятивольтовая: общий плюс с логикой и отдельный источник нужен только при серьёзной нагрузке.
#include <Stepper.h> const int STEPS_PER_REV = 2048;const int PORTION = 512; // четверть оборота шнека Stepper stepper(STEPS_PER_REV, 8, 10, 9, 11); void coilOff() { // отпускаем обмотки между порциями digitalWrite(8, LOW); digitalWrite(10, LOW); digitalWrite(9, LOW); digitalWrite(11, LOW);} void setup() { stepper.setSpeed(6); Serial.begin(9600); Serial.println("Dispenser ready");} void loop() { stepper.step(PORTION); // отсыпали порцию coilOff(); // мотор остывает, ток почти ноль Serial.println("Portiya vydana"); delay(6000); // интервал кормления}- 28BYJ-48 — массовый мотор из заслонок кондиционеров: дёшев, безопасен, медленен
- Редуктор пластиковый, не ровно 1:64, а около 63,683:1 — честно на оборот выходит ~2038 шагов, но весь мир пишет 2048
- Катушка тянет ~90 мА при 50-60 Ом; между двумя цветными одной катушки — вдвое больше, так ищут распиновку
- Момент на валу ~300 г·см, люфт редуктора — доли градуса, шум — слышен
- Рабочая скорость 5-12 RPM; для скорости и силы нужен другой класс моторов
- Обмотки после остановки держат ток удержания — между порциями их обнуляют digitalWrite
- 1. Сколько честно шагов делает вал 28BYJ-48 за оборот, если считать реальное передаточное отношение редуктора?
- 2. Почему между порциями кормушки обмотки обнуляют через digitalWrite?
- 3. Какая задача точно не для 28BYJ-48?
- 4. Сопротивление между красным и жёлтым проводом — 55 Ом. Что это значит?
- 5. Вал болтается на долю градуса туда-обратно даже у стоящего мотора. Виноват?
Мотор вы теперь знаете до последней шестерни: от честного передаточного числа до люфта, шума и версий на пять и двенадцать вольт. Остался последний герой связки — плата ULN2003, через которую все эти обмотки вообще получают ток: на ней сидят четыре светодиода, по которым механизм видно не глядя в Serial. Ей и посвящён следующий урок.
Частые вопросы по теме урока
- Сколько честно шагов делает вал 28BYJ-48 за оборот, если считать реальное передаточное отношение редуктора?
- Четыре ступени дают около 63,683:1, отсюда ~2038 шагов. Рецепт 2048 — округление, на котором стоят все библиотеки. На практике разницу съедает люфт редуктора. Около 2038
- Почему между порциями кормушки обмотки обнуляют через digitalWrite?
- После step() обмотки остаются под напряжением для удержания. Дозатору удержание не нужно — вал заклинит трение шнека. Чтобы снять ток удержания — мотор не греется и не ест 200 мА впустую
- Какая задача точно не для 28BYJ-48?
- Потолок по скорости — 12-15 RPM, момент небольшой. Для езды нужны DC-моторы или NEMA 17. Колесо робота, которое должно ездить быстро
- Сопротивление между красным и жёлтым проводом — 55 Ом. Что это значит?
- Красный — центральная точка, каждая цветная жила — половина обмотки на 50-60 Ом. Две половины между собой дают около 100 Ом. Жёлтый — конец одной из половин катушки, красный — общий отвод
- Вал болтается на долю градуса туда-обратно даже у стоящего мотора. Виноват?
- Зазор в четырёх передачах редуктора даёт люфт. Для заслонок и дозаторов он незаметен, для точного позиционирования учитывается. Люфт зубьев пластикового редуктора — конструктивная особенность