Наверное, каждый пацан в своём детстве разбирал игрушки и нередко находил в них небольшие моторчики. Кто их подключал напрямую к батарейке помнит, что они начинали вращаться, а направление вращения зависело от того какую подать полярность на его клеммы. В простоте регулировки и реверсирования и состоит прелесть электродвигателей постоянного тока (ДПТ).
Вообще, правильное название миниатюрных двигателей — это коллекторный двигатель постоянного тока с постоянными магнитами или модельный электродвигатель. Магниты в них располагаются на статоре и играют роль обмотки возбуждения. Модельными они называются из-за того, что их часто используют в радиоуправляемых моделях.
Регулировка оборотов
Известно, что при подключении такого двигателя к источнику питания он сразу начинает вращаться, а направление его вращения зависит от полярности подключенного напряжения.
При изменении питающего напряжения изменяется ток в обмотках, следовательно изменяется и подводимая мощность и его обороты. Есть два основных способа изменения напряжения на клеммах таких электродвигателей — использовать балластные резисторы для ограничения тока или использовать ШИМ-регулирование.
Балластные резисторы греются, выделяют энергию в виде тепла в воздух – это не эффективно и бесполезно.
Смысл ШИМ-регулирования состоит в подаче импульсов с фиксированной частотой, но изменяющейся шириной. От ширины импульса зависит действующее напряжение на подключенной нагрузке и вычисляется по формуле:
Uнагр=Uпит×k,
где Uнагр – напряжение на нагрузке, Uпит – напряжение источника питания, k – коэффициент заполнения.
Коэффицент заполнения – то отношение ширины импульса (tимп) к периоду (T), то есть:
k=tимп/T.
На рисунке ниже вы видите, как выглядит питание нагрузки через ШИМ-регулятор при разных коэффициентах заполнения.
Короче говоря,при ШИМ-регулировании питание очень быстро включается и отключается, то есть подаётся импульсами. И чем уже эти импульсы – тем меньшее напряжение доходит до нагрузки.
Для ШИМ-регулирования можно собрать схему на таймере NE555 и других микросхемах либо использовать микроконтроллер.
Семейство плат с микроконтроллером ардуино также способно выдавать ШИМ сигнал, стандартная частота ШИМ у них 500Гц, а если быть точным, то 488,28 Гц. Если вам не принципиальная частота – то можно использовать как есть без сторонних библиотек. Отмечу, что для большинства применений этого достаточно. Не очень хорошо это подходит для регулирования яркости осветительных приборов из-за повышения коэффициента пульсаций светильника и вреда для зрения в итоге.
Обратите внимание на иллюстрацию, приведенную выше. Из неё мы видим микроконтроллер Atmega328, который лежит в основе этих плат выдаёт ШИМ-сигнал только на выходах 3, 5, 6, 9, 10, 11, которые обычно помечены знаком «~» плате, а на картинках с распиновками сокращением «PWM».
Подключение к Arduino
Напрямую к порту ардуино подключать нагрузку для диммирования нельзя, так как он может выдать всего 20 мА. То есть напрямую к порту можно подключать отдельные маломощные 5-мм светодиоды, во всех остальных случаях – используйте транзистор. В последнем случае максимальная нагрузка зависит от типа транзистора.
Как мы уже определились ШИМ у нас выдают только пины с номерами 3, 5, 6, 9, 10, 11. Значит, к ним и будем подключать нагрузку. В качестве транзистора предлагаю использовать полевой транзистор (MOSFET) IRF840 – он N-канальный со встроенным обратным диодом для защиты от всплесков противо-ЭДС, его характеристики:
- Предельно допустимое напряжение сток-исток (Uds): 500 V
- Предельно допустимое напряжение затвор-исток (Ugs): 20 V
- Пороговое напряжение включения Ugs(th): 4 V
- Максимально допустимый постоянный ток стока (Id): 8 A
Можно использовать и другие транзисторы с логическим уровнем включения затвора ( Ugs(th) до 5В), в противном случае придется использовать драйвер или промежуточный транзистор для его открытия.
Кроме транзистора нам нужно 2 резистора — первый между выходом платы и затвором на 240 Ом (если его у вас нет – возьмите соседние номиналы) для ограничения тока заряда затворной ёмкости, так мы снизим вероятность выхода из строя порта и просадок по питанию. Второй резистор на 10-12 кОм подключим между затвором и землёй. Он нужен для того, чтобы затвор не висел в воздухе, а также разряда затворной ёмкости и ускорения закрытия полевика. Схему подключения вы видите ниже.
Чтобы задавать обороты, добавим в схему потенциометр, его подключим к аналоговому входу так, как мы делали это в прошлых статьях о сервоприводах и шаговых двигателях.одключение по
Соберем эту схему.
Для ШИМ в родной библиотеке Arduino IDE есть специальная функция — analogWrite (pin, value), в ней pin – номер порта, на который нужно выдавать сигнал, а value – его величина от 0 до 255. То есть при значении value равном 255 коэффициент заполнения на выходе будет равен 1, т.е. будет непрерывный сигнал на входе, а при 127 — почти 50%.
Для нашего эксперимента достаточно простенького кода, который вы видите далее.
int pot = A1; // назначаем вход А1 для чтения сигнала с потенциометра
int motor = 5; // к этому выходу подключаем затвор полевого тразнистора
void setup() {
pinMode(motor, OUTPUT);
}
void loop() {
analogWrite(motor, map (analogRead(pot), 0, 1023, 0, 255));
}
Функция map, которая используется в качестве второго аргумента функции analogWrite позволяет сократить код на несколько строчек. Её назначение преобразовать одни размерности в другие. Чтобы понять, как она работает рассмотрим её синтаксис:
map(value, fromLow, fromHigh, toLow, toHigh),
где: value – откуда брать величину, в приведенном выше примере мы её считываем функцией analogRead с пина, объявленного в переменной pot (это А1), fromLow – минимальное значение, которое будет участвовать в преобразовании (у нас это 0), fromHigh – максимальное значение для преобразования (у нас это 1023, потому что это максимальное значение, которое «видит» ардуина при чтении аналогового сигнала), toLow – в какое значение преобразовывать минимальное значение со входа, toHigh – в какое значение преобразовывать максимальное значение со входа (у нас это 255, потому что это максимальное число, которое можно записать в analogWrite).
То есть мы получаем любое число от 0 до 1023, а функция возвращает число от 0 до 255. Таким образом, у нас происходит преобразование, в общем-то, с сохранением величины в процентах (комментаторов прошу подсказать, как правильно назвать такое преобразование).
Заключение
ШИМ-регуирование с помощью ардуино реализуется достаточно просто. Оно с лёгкостью может использовать в самодельных радиоуправляемых моделях или роботах, а также для регулировки яркости каких-либо индикаторов и создания световых эффектов. Повторюсь, что для диммирования светильников и светодиодных лент он не очень хорошо подходит из-за низкой частоты.
Также отмечу, что при питании платы от одного источника питания, а нагрузки от другого, например, с большим напряжением, следует соединить их «минусы», иначе транзистор включаться не будет.
Ну и прилагаем видео, в котором иллюстрируется работа схемы рассмотренной в статье