В инкубаторе лоток с яйцами должен поворачиваться четыре раза в сутки, и мотор между поворотами просто стоит. Через сутки дежурства я открыл ящик и отдёрнул руку: корпус 28BYJ-48 был горячий, как кружка с чаем, тёплый даже редуктор. Первая мысль — короткое замыкание, вторая — брак, третья — что яйца уже не спасти. Мультиметр в разрыве питания показал честные 200-240 миллиампер в паузе между поворотами: мотор ел ток, когда ничего не делал, и превращал этот ток в тепло час за часом.
Поломки не было, и понял я это, только когда сформулировал вопрос вслух: а чем, собственно, мотор держит лоток? У шаговика нет храповика и тормоза — позицию держит только магнитное поле в обмотках, а для поля нужен ток. Пока 28BYJ-48 стоит и держит, две его катушки заряжены, и закон Джоуля-Ленца неумолимо превращает этот ток в тепло. Шаговик, который стоит и греется, — не дефект, а режим работы, и пугаться его не стоит; стоит знать границы.
В этом уроке нащупаем границы: сколько ватт рассеивает корпус в 28 миллиметров, какая температура рабочая для пластикового редуктора, почему вместе с мотором греется ULN2003 и чего делать нельзя — накрывать, приклеивать на пластик, прятать в ящик без вентиляции. Если мотор ещё не подключён — вернитесь к первому подключению 28BYJ-48, а здесь мы будем считать тепло уже работающего мотора. И заодно посчитаем, во сколько обходится дежурное удержание батарейному проекту: эта арифметика напрямую подводит к следующему уроку, где мы научимся её обнулять.
Ток, который не выключается
Посчитаем тепло в цифрах. Обмотка 28BYJ-48 — это 55 Ом, мы её мерили в анатомии мотора, ток удержания — около 90 мА на катушку. Мощность считается как ток в квадрате на сопротивление: 0,09 умножить на 0,09 и на 55 — это 0,45 ватта на катушку, а в полношаговом режиме работают две, итого около 0,9 ватта в корпусе диаметром 28 миллиметров. Для масштаба: миниатюрный паяльник на 5 ватт лудит провода, а тут почти пятая часть его аппетита живёт в моторе размером со столовую ложку. При комнатных 22 градусах мой корпус выходил на 40-45 через час простоя и дальше держал эту планку — система вышла на равновесие, где тепло рассеивается ровно столько, сколько рождается.
Немного успокоительного из мира больших моторов: промышленные шаговики с металлическими фланцами живут и при 70-80 градусах на корпусе — рука такого не терпит, а изоляция обмоток в порядке, это их рабочая ситуация. Но у 28BYJ-48 за обмотками стоит пластиковый редуктор, шестерни которого жару не любят, да и электроника обычно сидит в том же ящике. Моя планка для этого мотора: до 50 градусов на корпусе — живём, выше — ищем причину или снимаем ток. Замер без термометра — пальцем, с условиями: тёплый и приятный — около 37-40; рука терпит секунд пять — около 50-55; отдёргивает сама — за 60, разбираемся немедленно. Для закрытых ящиков позже приклеил ленточный термодатчик прямо на корпус рядом с редуктором: честные цифры вместо гаданий по руке, и заодно видно, как обесточивание в следующем уроке опускает график.
Есть и третий этаж, про который редко думают: сопротивление меди растёт с температурой, примерно на четыре десятых процента на градус. Корпус на 50 градусов — это обмотка на 20-25 градусов горячее комнатной, сопротивление выросло примерно на десятую часть, ток удержания упал, а с ним чуть подсел и момент. Для заслонки это неважно, а для механизма на пределе тяги — ещё один аргумент не работать на грани срыва: горячий мотор тянет слабее холодного, и потолок скорости, найденный утром, вечером может подползти вниз. Кстати, не путайте источники тепла в одном ящике: у мотора греется центр корпуса, у ULN2003 — уголок с микросхемой, у Arduino — стабилизатор питания; находите виновника по месту, а не по общему тёплому ящику.
| Корпус мотора | Что чувствует рука | Что делать |
|---|---|---|
| До 35°C | Холодный или чуть тёплый | Ничего: это свежий простой без нагрузки |
| 40-50°C | Тёплый, рука терпит | Рабочая норма дежурства: воздух вокруг, не накрывать |
| 55-60°C | Рука терпит около пяти секунд | Проверить питание: не 12 ли вольт на 5-вольтовый мотор |
| Выше 65°C | Рука отдёргивает сама | Обесточить и разбираться: так 28BYJ-48 жить не должен |
Рядом с мотором греется и драйвер. Открытый канал Дарлингтона роняет на себе около вольта — при 90 мА это 0,09 ватта на канал, две заряженные фазы дают около 0,2 ватта на микросхеме. Копейки, но корпус ULN2003 живёт без радиатора, и его пластик в дежурстве всегда чуть тёплый — в уроке про плату ULN2003 мы уже договаривались не нагружать все каналы разом. Светодиоды на плате — тоже индикатор дежурства: две горят постоянно, пока обмотки заряжены, и это не поломка, а ток удержания в прямом эфире. И привычка из моего ящика: фотографируйте плату в сборе после удачной сборки — когда через месяц ловите нагрев, снимок помогает вспомнить, что ещё висит на свободных каналах. Тёплая микросхема — норма; горячая до того, что палец не терпит, — повод проверить, не висит ли на свободных каналах лишняя нагрузка, и не в 12 ли вольтах причина.
Теперь батарейная цена вопроса. Дежурные 200-240 миллиампер при питании от четырёх АА на 2000 миллиампер-часов — это восемь с небольшим часов жизни, одна ночь. За сутки дежурства мотор съест почти шесть ампер-часов — три комплекта батареек, чтобы повернуть лоток четыре раза. В сетевом проекте экономия тоже есть, но она прячется в тепле: меньше ватт — меньше нагрев — дольше живёт клей и пластик редуктора. В батарейном проекте та же цифра — вся жизнь устройства. Запомните её, потому что через урок мы научимся превращать её в ноль на время пауз, а сейчас посмотрим, как посчитать время под током в своём скетче.
#include <Stepper.h> const int STEPS_PER_REV = 2048; Stepper stepper(STEPS_PER_REV, 8, 10, 9, 11); unsigned long lastMove = 0;unsigned long lastPrint = 0;int hodov = 0; void setup() { stepper.setSpeed(6); Serial.begin(9600); Serial.println("Dnevnik prostoya: scitaem vremya pod tokom");} void loop() { if (millis() - lastMove >= 15000) { // ход раз в 15 секунд lastMove = millis(); stepper.step(512); hodov = hodov + 1; } if (millis() - lastPrint >= 5000) { lastPrint = millis(); Serial.print("sec_pod_tokom="); Serial.println(millis() / 1000); Serial.print("hodov="); Serial.println(hodov); }}Скетч считает время под током с точки зрения программы: миллис идут с начала работы, и за каждой секундой стоит заряженная пара обмоток. Счётчики живут на миллис-цикле вместо delay — если захотите добавить кнопку или датчик, loop() уже готов их опрашивать. Запустите на минуту и посмотрите пропорцию: при 6 RPM ход в 512 шагов занимает 2,5 секунды, значит, из пятнадцатисекундного цикла движения — две с половиной, а остальные двенадцать с половиной обмотки просто держат позицию под током. В моём инкубаторе пропорция была ещё жёстче: из каждых суток поворот занимал 16 секунд, и 23 часа 59 минут мотор нёс дежурство с горячим корпусом. Девяносто и больше процентов жизни любого шаговика — это простой под током, и именно поэтому приём следующего урока окупается мгновенно.
Проверяем тепло в симуляторе
Симуляторный мотор идеален: он не греется, не звенит и не стареет, поэтому тепло мы вынесли в модель — как и физику срыва в прошлом уроке. Скетч печатает model_temp_c=, расчётную температуру корпуса по упрощённой модели: дежурство с током тянет её к 46 градусам, обесточенный простой возвращает к комнатным 22. Тумблер на D3 переключает режим — держим позицию или отпускаем, кнопка на D2 делает ход. Смотрите на tok_idle_ma= рядом: 240 или 0 — та самая цена дежурства, только в цифрах прямо на экране, читать их удобно в Serial-мониторе. Время в модели ускоренное: рост с 22 до 40 занимает секунд десять, на настоящем моторе тот же путь занимает час. После симулятора вернитесь к настоящему мотору и потрогайте его в дежурстве: рука терпит пять секунд и больше — вы в норме. Приём снятия тока на полях уже мелькал в уроке про скорость и позиционирование — в следующем уроке сделаем его системой.
- Позицию шаговик держит током: в простое две катушки едят по 90 мА — это режим работы, а не поломка
- Тепло простоя считается по закону Джоуля-Ленца: 0,09 в квадрате на 55 Ом на две катушки — около 0,9 Вт в корпусе 28 мм
- Планка для 28BYJ-48 с пластиковым редуктором — до 50°C; большие моторы терпят 70-80, но рука их уже не терпит
- Горячая обмотка тянет слабее холодной: сопротивление меди растёт с температурой, потолок скорости подползает вниз
- Нельзя: накрывать, приклеивать на пластик, прятать без вентиляции; дежурные 240 мА съедают четыре АА за одну ночь
- 1. Почему шаговик греется, даже когда вал стоит?
- 2. Какая температура корпуса допустима для 28BYJ-48 в дежурстве?
- 3. Четыре батарейки АА на 2000 мА·ч питают дежурное удержание 240 мА. На сколько их хватит?
- 4. Сколько тепла рассеивают две заряженные катушки по 90 мА с сопротивлением 55 Ом?
- 5. Что категорически нельзя делать с работающим 28BYJ-48?
Частые вопросы по теме урока
- Почему шаговик греется, даже когда вал стоит?
- У мотора нет тормоза и храповика: держит только поле в заряженных катушках, а ток в 55-омных обмотках превращается в тепло. Обмотки под током удержания: позицию держит магнитное поле
- Какая температура корпуса допустима для 28BYJ-48 в дежурстве?
- Пластиковый редуктор ограничивает планку: до 50 на корпусе живём, выше ищем причину. Большие моторы терпят 70-80, но рука их уже не терпит. До 50°C
- Четыре батарейки АА на 2000 мА·ч питают дежурное удержание 240 мА. На сколько их хватит?
- 2000 разделить на 240 — около 8,3 часа. Дежурный ток съедает батарейный бюджет за одну ночь, без обесточивания батарейный проект невозможен. Меньше чем на сутки
- Сколько тепла рассеивают две заряженные катушки по 90 мА с сопротивлением 55 Ом?
- 0,09 умножить на 0,09 и на 55 — около 0,45 Вт на катушку, две — 0,9 Вт. В корпусе 28 мм это и даёт 40-45 градусов через час. Около 0,9 Вт
- Что категорически нельзя делать с работающим 28BYJ-48?
- Тепло должно уходить: клей оплывает и механизм уезжает с платформы, накрытый мотор копит градусы. Воздух вокруг корпуса обязателен. Приклеивать редуктор термоклеем к пластику и накрывать его