Управление щёточными моторами
Как вы знаете, никакую нагрузку мощнее светодиода нельзя подключать к Ардуино напрямую, особенно моторчики. Ардуино, да и вообще любой микроконтроллер – логическое устройство, которое может давать только логические сигналы другим железкам, а те уже могут управлять нагрузкой. Кстати, урок по управлению мощной нагрузкой постоянного и переменного тока у меня тоже есть. “Драйвером” мотора могут быть разные железки, рассмотрим некоторые из них.
При помощи обычного реле можно просто включать и выключать мотор по команде digitalWrite(пин, состояние) , прямо как светодиод: 

Мосфет
Полевой транзистор, он же мосфет, позволяет управлять скорость вращения мотора при помощи ШИМ сигнала. При использовании мосфета обязательно нужно ставить диод, иначе индуктивный выброс с мотора очень быстро убьёт транзистор. Скорость мотора можно задавать при помощи ардуиновской analogWrite(пин, скорость) . 

Реле и мосфет
Если объединить реле и мосфет – получим весьма колхозную, но рабочую схему управления скоростью и направлением мотора:
Специальный драйвер
Лучше всего управлять мотором при помощи специального драйвера, они бывают разных форм и размеров и рассчитаны на разное напряжение и ток, но управляются практически одинаково. Рассмотрим основные драйверы с китайского рынка:
Остальные драйверы смотри у меня вот тут. Схемы подключения и таблицы управления:
Пины направления управляются при помощи digitalWrite(pin, value) , а PWM – analogWrite(pin, value) . Управление драйвером по двум пинам может быть двух вариантов:
Моторы переменного тока
Мотором переменного тока (220V от розетки) можно управлять при помощи диммера на симисторе, как в уроке про управление нагрузкой.
Библиотеки
У меня есть удобная библиотека для управления мотором – GyverMotor, документацию можно почитать вот здесь. Особенности библиотеки:
- Контроль скорости и направления вращения
- Работа с ШИМ любого разрешения
- Программный deadtime
- Отрицательные скорости
- Поддержка всех типов драйверов
- Плавный пуск и изменение скорости
- Режим “минимальная скважность”
Помехи и защита от них
Индуктивный выброс напряжения
Мотор – это индуктивная нагрузка, которая в момент отключения создаёт индуктивные выбросы. У мотора есть щетки, которые являются источником искр и помех за счёт той же самой индуктивности катушки. Сам мотор потребляет энергию не очень равномерно, что может стать причиной помех по линии питания, а пусковой ток мотора так вообще сильно больше рабочего тока, что гарантированно просадит слабое питание при запуске. Все четыре источника помех могут приводить к различным глюкам в работе устройства вплоть до срабатывания кнопок на цифровых пинах, наведения помех на аналоговых пинах, внезапного зависания и даже перезагрузки микроконтроллера или других железок в сборе устройства. Отсечь индуктивный выброс с мотора можно при помощи самого обычного диода, чем мощнее мотор, тем мощнее нужен диод, то есть на более высокое напряжение и ток. Диод ставится встречно параллельно мотору, и чем ближе к корпусу, тем лучше. Точно таким же образом рекомендуется поступать с электромагнитными клапанами, соленоидами, электромагнитами и вообще любыми другими катушками. Логично, что диод нужно ставить только в том случае, если мотор или катушка управляется в одну сторону. Важные моменты:
- При работе с драйвером и управлением в обе стороны диод ставить не нужно и даже нельзя!
- При управлении ШИМ сигналом рекомендуется ставить быстродействующие диоды (например серии 1N49xx ) или диоды Шоттки (например серии 1N58xx).
- Максимальный ток диода должен быть больше или равен максимальному току мотора.
- Защитный диод, принимающий на себя обратный выброс ЭДС самоиндукции, также называется шунтирующим диодом, снаббером, flyback диодом.
- В природе существуют мосфеты со встроенным защитным диодом. Этот диод является отдельным элементом и такой мосфет обычно имеет нестандартный корпус, читайте документацию на конкретный транзистор.
- Диод, который показан на схематическом изображении мосфета, не является защитным диодом: это слабый и медленный “паразитный” диод, образованный при производстве транзистора. Он не защитит мосфет от выброса, нужно обязательно ставить внешний!
Помехи от щёток
Искрящиеся щетки мотора, особенно старого и разбитого, являются сильным источником электромагнитных помех, и здесь проблема решается установкой керамических конденсаторов с ёмкостью 0.1-1 мкФ на выводы мотора. Такие же конденсаторы можно поставить между каждым выводом и металлическим корпусом, это ещё сильнее погасит помехи. Для пайки к корпусу нужно использовать мощный паяльник и активный флюс, чтобы залудиться и припаяться как можно быстрее, не перегревая мотор.
Помехи по питанию, просадка
Мотор потребляет ток не очень равномерно, особенно во время разгона или в условиях переменной нагрузки на вал, что проявляется в виде просадок напряжения по питанию всей схемы. Беды с питанием решаются установкой ёмких электролитических конденсаторов по питанию, логично что ставить их нужно максимально близко к драйверу, то есть до драйвера. Напряжение должно быть выше чем напряжение питания, а ёмкость уже подбирается по факту. Начать можно с 470 мкф и повышать, пока не станет хорошо.
Разделение питания
Если описанные выше способы не помогают – остаётся только одно: разделение питания. Отдельный малошумящий хороший источник на МК и сенсоры/модули, и отдельный – для силовой части, в том числе мотора. Иногда ради стабильности работы приходится вводить отдельный БП или отдельный аккумулятор для надёжности функционирования устройства.
Экранирование
В отдельных случаях критичными являются даже наводки от питающих проводов моторов, особенно при управлении ШИМ мощными моторами и управлении мощными шаговиками в станках. Такие наводки могут создавать сильные помехи для работающих рядом чувствительных электронных компонентов, на аналоговые цепи, наводить помехи на линии измерения АЦП и конечно же на радиосвязь. Защититься от таких помех можно при помощи экранирования силовых проводов: экранированные силовые провода не всегда удаётся купить, поэтому достаточно обмотать обычные провода фольгой и подключить экран на GND питания силовой части. Этот трюк часто используют RC моделисты, летающие по FPV.
Управление электромотором
Электродвигатель (электромотор) постоянного тока является наиболее распространенным типом двигателя в проектах с Arduino Uno. Двигатели постоянного тока обычно имеют только два провода. Если подключить эти провода напрямую к источнику питания (красный — к плюсу, черный — к минусу), двигатель будет вращаться в одну сторону. Если переключить провода, двигатель будет вращаться в противоположном направлении.
Предупреждение. Запрещается приводить двигатель в движение непосредственно от выводов платы Arduino. Это может повредить плату Arduino. Используйте специальные драйвера.

Для включения и выключения электродвигателя постоянного тока с помощью Arduino Uno можно использовать схему представленную на рис. 2. Транзистор действует как переключатель, управляющий питанием двигателя. Контакт D3 Arduino используется для включения и выключения транзистора. Электромотор будет вращаться на полной скорости, когда на вывод D3 Arduino будет подан сигнал высокого уровня (логическая “1”). При подаче сигнала низкого уровня (логический “0”) вращение вала электромотора прекратиться.

При подключении соблюдайте меры предосторожности:
- убедитесь, что выводы транзистора PN2222 (1N2222) подключены правильно;
- катод диода должен быть подключен к + 5 В питания.
Скетч №1
Для управления скоростью вращения электромотора можно использовать широтно-импульсную модуляцию (ШИМ). Чем больше будет коэффициент заполнения ШИМ, тем выше будет скорость вращения двигателя.
Скетч №2
Для управления направлением вращения двигателя постоянного тока используются схемы, называемые H-мостом. H-мост — это электронная схема, которая может управлять двигателем в обоих направлениях. Они называются H-мостом, потому что он использует четыре транзистора, соединенных таким образом, что принципиальная схема выглядит как «H».
Рассмотрим пример управления направлением и скоростью вращения вала электромотора постоянного тока с использованием Arduino Uno и микросхемы для драйвера двигателя L293D. Для этого необходимо подключить Arduino Uno, электромотор, микросхему L293D, переключатель и переменный резистор как показано на рис. 3.

Переменный резистор используется для управления скоростью вращения мотора. Кнопка используется для изменения направления вращения вала мотора: если кнопка нажата, мотор будет вращаться вперед, если не нажата – в противоположном направлении. Микроконтроллер Arduino Uno будет управлять контактами Enable2, In3 и In4 микросхемы для драйвера двигателя L293D.
Скетч №3
В функции setup инициализируются и выставляются режимы работы выводов.
С помощью функции map выполняется масштабирование аналоговых данных потенциометра (0–1023) в значения диапазона 0 — 255 скорости вала электромотора.
Переменной revers присваивается значение, которое считывается с вывода Pin_Sw с кнопкой. Если кнопка нажата, значение равно False , в другом случае значение равно True .
Скорость вращения вала устанавливается с использованием analogWrite на выводе Enable2 микросхемы L293. Контакт Enable2 включает-выключает мотор в зависимости от настроек контактов INPUT3 и INPUT4.
Для управления направлением вращения мотора, INPUT3 и INPUT4 должны иметь противоположные значения.
Если INPUT3 имеет значение HIGH , а INPUT4 — LOW , мотор будет двигаться в одном направлении, если INPUT3 принимает значение LOW , а INPUT4 – HIGH , мотор начнет вращаться в противоположном направлении.
Символ ” ! ” является управляющей командой, которая соответствует “НЕ”. Первая функция digitalWrite для INPUT3 устанавливает значение в противоположное относительно значения revers . Если revers принимает значение HIGH , устанавливается LOW и наоборот.
Следующая функция digitalWrite для INPUT4 присваивает пину значение revers . Это значит, что оно всегда будет противоположно значению, которое генерируется на Arduino для INPUT3.
Управление двигателями постоянного тока. Часть 1
В статье дается краткий обзор и анализ популярных схем, предназначенных для управления коллекторными двигателями постоянного тока, а также предлагаются оригинальные и малоизвестные схемотехнические решения
Электродвигатели являются, наверное, одним из самых массовых изделий электротехники. Как говорит нам всезнающая Википедия, электрический двигатель – электрическая машина (электромеханический преобразователь), в которой электрическая энергия преобразуется в механическую. Началом его истории можно считать открытие, которое сделал Майкл Фарадей в далеком 1821 году, установив возможность вращения проводника в магнитном поле. Но первый более-менее практический электродвигатель с вращающимся ротором ждал своего изобретения до 1834 года. Его во время работы в Кёнигсберге изобрел Мориц Герман фон Якоби, более известный у нас как Борис Семенович. Электродвигатели характеризуют два основных параметра – это скорость вращения вала (ротора) и момент вращения, развиваемый на валу. В общем плане оба этих параметра зависят от напряжения, подаваемого на двигатель и тока в его обмотках. В настоящее время имеется достаточно много разновидностей электродвигателей, и поскольку, как заметил наш известный литературный персонаж Козьма Прутков, нельзя объять необъятное, остановимся на рассмотрении особенностей управления двигателями постоянного тока (далее электродвигателями).
К двигателям постоянного тока относятся два типа – это привычные для нас коллекторные двигатели и бесколлекторные (шаговые) двигатели. В первых переменное магнитное поле, обеспечивающее вращение вала двигателя, образуется обмотками ротора, которые запитываются через щеточный коммутатор – коллектор. Оно и взаимодействует с постоянным магнитным полем статора, вращая ротор. Для работы таких двигателей внешние коммутаторы не требуются, их роль выполняет коллектор. Статор может быть изготовлен как из системы постоянных магнитов, так и из электромагнитов. Во втором типе электродвигателей обмотки образуют неподвижную часть двигателя (статор), а ротор сделан из постоянных магнитов. Здесь переменное магнитное поле образуется путем коммутации обмоток статора, которая выполняется внешней управляющей схемой. Шаговые двигатели («stepper motor» в английском написании) значительно дороже коллекторных. Это достаточно сложные устройства со своими специфическими особенностями. Их полное описание требует отдельной публикации и выходит за рамки данной статьи. Для получения более полной информации по двигателям этого типа и их схемам управления можно обратиться, например, к [1].
Коллекторные двигатели (Рисунок 1) более дешевы и, как правило, не требуют сложных систем управления. Для их функционирования достаточно подачи напряжения питания (выпрямленного, постоянного!). Проблемы начинают возникать, когда появляется необходимость в регулировке скорости вращения вала такого двигателя или в специальном режиме управления моментом вращения. Основных недостатков таких двигателей три – это малый момент на низких скоростях вращения (поэтому часто требуется редуктор, а это отражается на стоимости конструкции в целом), генерация высокого уровня электромагнитных и радиопомех (из-за скользящего контакта в коллекторе) и низкая надежность (точнее малый ресурс; причина в том же коллекторе). При использовании коллекторных двигателей необходимо учитывать, что ток потребления и скорость вращения их ротора зависят от нагрузки на валу. Коллекторные двигатели более универсальны и имеют более широкое распространение, особенно в недорогих устройствах, где определяющим фактором является цена.
Поскольку скорость вращения ротора коллекторного двигателя зависит, в первую очередь, от подаваемого на двигатель напряжения, то естественным является использование для его управления схем, имеющих возможность установки или регулировки выходного напряжения. Такими решениями, которые можно найти в Интернете, являются схемы на основе регулируемых стабилизаторов напряжения и, поскольку век дискретных стабилизаторов давно прошел, для этого целесообразно использовать недорогие интегральные компенсационные стабилизаторы, например, LM317 [2]. Возможные варианты такой схемы представлены на Рисунке 2.
Схема примитивная, но кажется очень удачной и, главное, недорогой. Посмотрим на нее с точки зрения инженера. Во-первых, можно ли ограничить момент вращения или ток двигателя? Это решается установкой дополнительного резистора. На Рисунке 2 он обозначен как RLIM. Его расчет имеется в спецификации, но он ухудшает характеристику схемы как стабилизатора напряжения (об этом будет ниже). Во-вторых, какой из вариантов управления скоростью лучше? Вариант на Рисунке 2а дает удобную линейную характеристику регулирования, поэтому он и более популярен. Вариант на Рисунке 2б имеет нелинейную характеристику. Но в первом случае при нарушении контакта в переменном резисторе мы получаем максимальную скорость, а во втором – минимальную. Что выбрать – зависит от конкретного применения. Теперь рассмотрим один пример для двигателя с типовыми параметрами: рабочее напряжение 12 В; максимальный рабочий ток 1 А. ИМС LM317, в зависимости от суффиксов, имеет максимальный выходной ток от 0.5 А до 1.5 А (см. спецификацию [2]; имеются аналогичные ИМС и с бóльшим током) и развитую защиту (от перегрузки и перегрева). С этой точки зрения для нашей задачи она подходит идеально. Проблемы скрываются, как всегда, в мелочах. Если двигатель будет выведен на максимальную мощность, что для нашего применения весьма реально, то на ИМС, даже при минимально допустимой разнице между входным напряжением VIN и выходным VOUT, равной 3 В, будет рассеиваться мощность не менее
Таким образом, нужен радиатор. Опять вопрос – на какую рассеиваемую мощность? На 3 Вт? А вот и нет. Если не полениться и рассчитать график нагрузки ИМС в зависимости от выходного напряжения (это легко выполнить в Excel), то мы получаем, что при наших условиях максимальная мощность на ИМС будет рассеиваться не при максимальном выходном напряжении регулятора, а при выходном напряжении равном 7.5 В (см. Рисунок 3), и она составит почти 5.0 Вт!
| Рисунок 3. | График зависимости мощности, рассеиваемой на ИМС регулятора, от выходного напряжения. |
Как видим, получается что-то уже не дешевое, но очень громоздкое. Так что такой подход годится только для маломощных двигателей с рабочим током не более 0.25 А. В этом случае мощность на регулирующей ИМС будет на уровне 1.2 Вт, что уже будет приемлемо.
Выход из положения – использовать для управления метод широтно-импульсной модуляции (ШИМ). Он, действительно, самый распространенный. Его суть – подача на двигатель промодулированных по длительности однополярных прямоугольных импульсов. Согласно теории сигналов, в структуре такой последовательности имеется постоянная составляющая, пропорциональная отношению τ/T, где: τ – длительность импульса, а T – период последовательности. Вот она-то и управляет скоростью двигателя, который выделяет ее как интегратор в этой системе. Поскольку выходной каскад регулятора на основе ШИМ работает в ключевом режиме он, как правило, не нуждается в больших радиаторах для отвода тепла, даже при относительно больших мощностях двигателя, и КПД такого регулятора несравненно выше предыдущего. В ряде случаев можно использовать понижающие или повышающие DC/DC-преобразователи, но они имеют ряд ограничений, например, по глубине регулировки выходного напряжения и минимальной нагрузке. Поэтому, как правило, чаще встречаются иные решения. «Классическое» схемное решение такого регулятора представлено на Рисунке 4 [3]. Оно использовано в качестве дросселя (регулятора) в профессиональной модели железной дороги.
| Рисунок 4. | «Классическая» схема управления коллекторным двигателем на основе ШИМ (согласно оригиналу [3]). |
На первом операционном усилителе собран генератор, на втором компаратор. На вход компаратора подается сигнал с конденсатора C1, а путем регулирования порога срабатывания формируется уже сигнал прямоугольной формы с нужным отношением τ/T (Рисунок 5).
| Рисунок 5. | Диаграмма управления коллекторным двигателем на основе ШИМ. Верхняя трасса – напряжение на конденсаторе С1; средняя (пересекает верхнюю) – сигнал управления (напряжение на движке резистора RV2); нижняя – напряжение на двигателе. |
Диапазон регулировки устанавливается подстроечными резисторами RV1 (быстрее) и RV3 (медленнее), а сама регулировка скорости осуществляется резистором RV2 (скорость). Обращаю внимание читателей, что в Интернете на русскоязычных форумах гуляет похожая схема с ошибками в номиналах делителя, задающего порог компаратора. Управление непосредственно двигателем осуществляется через ключ на мощном полевом транзисторе типа BUZ11 [4]. Особенности этого транзистора типа MOSFET – большой рабочий ток (30 А постоянного, и до 120 А импульсного), сверхмалое сопротивление открытого канала (40 мОм) и, следовательно, минимальная мощность потерь в открытом состоянии.
На что нужно в первую очередь обращать внимание при использовании таких схем? Во-первых, это исполнение цепи управления. Здесь в схеме (Рисунок 4) есть небольшая недоработка. Если со временем возникнут проблемы с подвижным контактом переменного резистора, мы получим полный почти мгновенный разгон двигателя. Это может вывести из строя наше устройство. Какое противоядие? Установить добавочный достаточно высокоомный резистор, например, 300 кОм с вывода 5 ИМС на общий провод. В этом случае при отказе регулятора двигатель будет остановлен.
Еще одна проблема таких регуляторов – это выходной каскад или драйвер двигателя. В подобных схемах он может быть выполнен как на полевых транзисторах, так и на биполярных; последние несравненно дешевле. Но и в первом и во втором варианте необходимо учитывать некоторые важные моменты. Для управления полевым транзистором типа MOSFET нужно обеспечить заряд и разряд его входной емкости, а она может составлять тысячи пикофарад. Если не использовать последовательный с затвором резистор (R6 на Рисунке 4) или его номинал будет слишком мал, то на относительно высоких частотах управления операционный усилитель может выйти из строя. Если же использовать R6 большого номинала, то транзистор будет дольше находиться в активной зоне своей передаточной характеристики и, следовательно, имеем рост потерь и нагрев ключа.
Еще одно замечание к схеме на Рисунке 4. Использование дополнительного диода D2 лишено смысла, так как в структуре транзистора BUZ11 уже имеется свой внутренний защитный быстродействующий диод с лучшими характеристиками, чем предлагаемый. Диод D1 также явно лишний, транзистор BUZ11 допускает подачу напряжения затвор-исток ± 20 В, да и переполюсовка в цепи управления при однополярном питании, как и напряжение выше 12 В, невозможны.
Если использовать биполярный транзистор, то возникает проблема формирования достаточного по величине базового тока. Как известно, для насыщения ключа на биполярном транзисторе ток его базы должен быть, по крайней мере, не менее 0.06 от тока нагрузки. Понятно, что операционный усилитель такой ток может не обеспечить. С этой целью в аналогичном, по сути, регуляторе, который используется, например, в популярном мини-гравере PT-5201 компании Pro’sKit, применен транзистор TIP125, представляющий собой схему Дарлингтона. Тут интересный момент. Эти мини-граверы иногда выходят из строя, но не из-за перегрева транзистора, как можно было бы предположить, а из-за перегрева ИМС LM358 (максимальная рабочая температура +70 °С) выходным транзистором (максимально допустимая температура +150 °С). В изделиях, которыми пользовался автор статьи, он был вплотную прижат к корпусу ИМС и посажен на клей, что недопустимо нагревало ИМС и почти блокировало теплоотвод. Если вам попалась такое исполнение, то лучше «отклеить» транзистор от ИМС и максимально отогнуть. За это know-how автор статьи был премирован компанией Pro’sKit набором инструментов. Как видите все нужно решать в комплексе – смотреть не только на схемотехнику, но и внимательно относится к конструкции регулятора в целом.
Есть еще несколько интересных схем более простых ШИМ-регуляторов. Например, две схемы на одиночном операционном усилителе с драйвером опубликованы в [5] (Одна из них приведена на Рисунке 6а). Есть схемы и на базе популярного таймера серии 555 [6] (Рисунок 6б). Эти дешевые решения не должны вводить вас в заблуждение своей кажущейся простотой. Вспомним А.С. Пушкина: «Не гонялся бы ты, поп, за дешевизной». Или французов: «За каждое удовольствие нужно платить». Обе эти схемы формируют суррогатный сигнал ШИМ с изменением опорной частоты. Так схемы на ОУ из [5] меняют частоту управления во время регулирования от 170 Гц до 500 Гц, а схема на таймере – от 150 Гц до 1000 Гц, и ее диапазон регулировки (верхний диапазон) ограничен скважностью 9.5. Для некоторых применений это может быть недопустимо, так как на больших частотах двигатель может и не заработать, или не дать нужный момент вращения. Это происходит из-за того, что ток в обмотке двигателя, которая представляет собой индуктивность, устанавливается не мгновенно, а нарастает и спадает по экспоненте. Более корректные схемы на базе таймера и одиночного ОУ приведены на Рисунке 7.
Аналогичные по структуре регуляторы можно построить и на цифровых логических элементах, но они имеют малую нагрузочную способность и требуют отдельного источника питания, поэтому в данной статье не рассматриваются. Применение же таймера 555 интересно тем, что частота генератора, выполненного на его базе, практически не зависит от напряжения питания. Кроме того, большинство ныне выпускаемых зарубежных аналогов, выполненных по биполярной технологии, допускает выходной ток до 200 мА и более. То есть, они могут легко справиться и с емкостью затвора MOSFET и с мощными ключами на биполярных транзисторах. Близкий к таймеру 555 советско-российский аналог – это ИМС (КР)1006ВИ1. Максимальный выходной ток для КР1006ВИ1 и КМОП-версий таймера составляет 100 мА.
Нюансы ШИМ управления микроконтроллером двигателем постоянного тока
  Схемы подачи ШИМ на двигатель.    Существует 2 схемы включения переключающего транзистора. Он может быть включен между землей и двигателем, а другой вывод двигателя к плюсу питания, либо, наоборот, транзистор включен между плюсом питания и двигателем, а 2-й вывод двигателя к земле. Это указано на рисунке 1.    Первая схема проще и годится для простого регулирования скорости вращения вала. Однако в этой схеме трудно измерить ток и напряжение на двигателе. Даже если пытаться измерить ток в ней, то к току двигателя будет добавлен ток через транзистор от МК и пусть он маленький, но он будет накапливаться. Во второй схеме и ток, и напряжение измеряются достаточно просто, так как один провод двигателя соединен с землей.   Логика автоматического управления двигателя микродрели.    Все эти вопросы возникли при реализации на практике системы управления микродрелью на основе двигателя ДПМ-30-Н1-03 для сверления печатных плат.    Логика работы в автоматическом режиме предполагает несколько этапов работы двигателя:   1. Старт двигателя после включения питания;   2. Работа на минимальной скорости вращения и попытка обнаружения нагрузки на валу. Необходимо для нацеливания на точку сверления и создания начального углубления при минимальной силе вращения;   3. Разгон двигателя с некоторой скоростью до максимального вращения;   4. Работа на максимальной скорости для сверления отверстия и попытка обнаружения снятия нагрузки;   5. После снятия нагрузки постепенное торможение двигателя до минимальной скорости вращения;   6. Пауза для нейтрализации инерционных свойств двигателя. В это время измерения могут содержать недостоверную информацию об инерции якоря двигателя.   7. Возвращаемся ко 2 этапу работы.    Анализ тока на двигателе.    Попытки обнаружить нагрузку на валу двигателя по току не приводили к стабильному результату, так как при измерении тока на интегрирующем конденсаторе не удавалось четко обнаружить разницу между холостым ходом и нагрузкой. Пришлось разбираться и оказалось, что для этого есть 2 причины.    Прежде всего, надо учитывать, что диаметры якоря двигателя и сверла имеют соотношение примерно от 25:1 до 40:1. Например, если диаметр якоря двигателя ДПМ-30 примерно 25мм, а сверла 0,7мм, то по правилу рычага некая нагрузка для сверла для якоря окажется более чем в 35 раз меньше.    Вторая причина связана с особенностью взаимодействия ШИМ управления и переключением обмоток двигателя щеточным механизмом. На рисунке 2 представлен пример якоря двигателя и распределение магнитного поля в двигателе. Задача щеточного механизма постоянно переключать обмотки так, чтобы, несмотря на их вращение, магнитное поле якоря и постоянных магнитов стабильно создавало движущую силу на валу двигателя.    Скорость вращения определяет частоту переключения обмоток якоря и, следовательно, длительность подачи напряжения на обмотку до переключения на другую часть обмотки. Ток обмотки будет зависеть от ее индуктивности и омического сопротивления, а также от времени ее включения и скорости вращения якоря с обмотками.    На рисунке 3 указаны длительность импульса ШИМ и ток двигателя в режиме Холостого Хода.    На рисунке 3а указаны токи в обмотках с Нагрузкой на валу при разной длительности импульса ШИМ.    На рисунке 3 видно, что пик амплитуды импульса тока на Холостом ходу при минимальном ШИМ достигает более 2,5 делений. Кроме того, видно, что обмотки при переключении имеют различные параметры и разную амплитуду тока. При среднем ШИМ амплитуда тока теперь колеблется около 1 деления и хорошо видно переключение щеток на другую часть обмоток якоря. При почти максимальном импульсе ШИМ амплитуда тока выравнивается и колеблется около 0,5 деления.    На рисунке 3а видно, что попытка остановить сверло рукой при малом ШИМ увеличивает пик амплитуды тока незначительно, все те же 2,5 деления. При среднем ШИМ нагрузка увеличивает пик амплитуды тока уже заметнее на 1 деление, но интегрирование его на RC-цепи не дает четкой разницы между холостым и нагруженным режимом работы.    При почти максимальном ШИМ разница между этими режимами уже сильно заметна. Форма тока уже не носит импульсный характер и близка к интегрированному на RC-цепи значению. Разница между холостым и нагруженным режимом более 1 деления, то есть 0,5 вольта и четко может быть обнаружена.    Большой пик амплитуды тока при минимальном импульсе ШИМ объясняется, тем, что скорость вращения маленькая, поэтому и противоЭДС тоже малое, а время включения обмоток выходит за пределы расчетных значений, индуктивность все меньше влияет на ток, который стремится к максимальному значению Iobm = Upit / R obm. Эта ситуация чем-то похожа на старт двигателя. При увеличении ШИМ скорость вращения и противоЭДС растут, а ток падает.    Сбор подобной информации на интегрирующем конденсаторе с большим RC, чтобы максимально сгладить импульсы от ШИМ не дает толковой информации о нагрузке. Получается так, что при минимальном импульсе ШИМ и малых оборотах вращения невозможно по току определить нагрузку на валу. В некоторых схемах, например в статье А.Савченко «Микроконтроллерное устройство управления микродрелью» в журнале Радио №9 2015 года, пытаются решить эту задачу через контроль пикового тока, но их трудно назвать стабильными и их спасает быстрая подстройка при помощи подстроечного резистора и кнопок. В статье А.Дымова «Блок управления микродрелью» в журнале Радио №4 2013 года для решения этих проблем автор предлагает ШИМ сигнал выпрямить и питать двигатель постоянным напряжением, зависящим от параметров ШИМ.    Анализ напряжения на двигателе.    Теперь пришло время рассмотреть поведение напряжения на двигателе при разных значениях ШИМ на холостом ходу Рис.4 и при нагрузке на сверле Рис.5.    После окончания действия импульса ШИМ система управления оставляет двигатель наедине с собой и он через некоторое время начинает работать как генератор напряжения, так как вращение якоря продолжается. Величина этого напряжения прямо пропорциональна скорости вращения, то есть скорости пересечения обмотками якоря магнитного поля постоянных магнитов. Этот факт отражает формула: Е = Се * Ф * n, где Ce — одна из конструктивных констант. Они зависят от конструкции двигателя, числа полюсов, количества витков, толщин зазоров между якорем и статором; Ф — поток возбуждения. Т.е. сила магнитного поля статора. В мелких моторчиках, где оно задается постоянным магнитом это тоже константа; n — обороты якоря.    На холостом ходу, при минимальном импульсе ШИМ напряжение генерации составляет чуть более 5 вольт, а при нагрузке — примерно 2,5 вольта. Это отражает тот факт, что двигатель в этом случае имеет малую мощность и любая нагрузка влияет на скорость его вращения, то есть это параметр чувствителен к нагрузке.    Средняя длительность импульса ШИМ показывает аналогичную картину. При нагрузке напряжение генерации падает примерно на 5 вольт. Кроме того на этом рисунке хорошо видны выбросы напряжения при переключении обмоток.    Обратите внимание, что при почти максимальном импульсе ШИМ разница между холостым ходом и нагрузкой уже трудно различить, так как двигатель работает почти на максимальной мощности и скорости его вращения, поэтому его уже трудно остановить, тем более нагрузкой на сверле малого диаметра.    Частота и период ШИМ.    Очень непростой вопрос связан с частотой или, точнее, с периодом ШИМ. Некоторые стараются устанавливать эту частоту повыше, но сталкиваются с проблемой запуска двигателя. Давайте посчитаем.    Максимальное количество оборотов в минуту для ДПМ-30-Н1-03 указанное производителем 4500. 4500 / 60 = 75 об./сек, один оборот за 0,0133 секунды.    По некоторым данным из форумов в Интернете, я этого точно не знаю, у двигателя 21 ламель и две щетки организуют 10 переключений обмоток за 1 оборот. Это значит, что между переключением одной группы обмоток к другой пройдет 0,0133/10=1330 микроСекунд.    При минимальном ШИМ можно ожидать скорость вращения примерно 300 оборотов в минуту. 300 / 60 = 5 об./сек, один оборот за 0,2 секунды и переключение обмоток через 20 000 микроСекунд.     Помимо этого, надо учитывать инерционную массу двигателя, которую надо сдвинуть с места. Слишком высокая частота управления на минимальном ШИМ приводит к заряду и разряду индуктивностей обмоток, но на механику двигателя они не успевают повлиять. Поэтому длительность минимального импульса ШИМ должна быть такая, чтобы сдвинуть якорь с места.    В моем случае период ШИМ был 4096 (64*64) микросекунд и частотой 244 Гц, так как измерения тока и напряжения на простом выводе МК у меня занимали более 1000 микросекунд, которые проводились либо под импульсом, либо под паузой в зависимости от того что больше. Длительность минимального ШИМ у меня составила 320 микросекунд и, иногда, даже менее, но двигатель стабильно стартовал и обладал еще приличной силой, так как его непросто было остановить при нагрузке на сверле. Не могу назвать эти параметры оптимальными, но они меня устраивали. Двигатель при этом не издавал каких-то неприятных звуков. На рисунках указана минимальная длительность в 500 микросекунд, но это связано с особенностями пересчета ШИМ по результатам измерения переменного резистора.    Особенности измерения тока и напряжения на двигателе.    Следует отметить еще одну особенность, связанную с измерением тока и напряжения на двигателе. Дело в том, что эти значения «плывут» со временем. После включения питания и ток, и напряжение имеют относительное малые показания, а в течение 10-15 минут растут и затем стабилизируются. Точной причины этого я не знаю, могу только предполагать несколько версий. Так как у интегрирующих цепей измерения большая RC (
100милиСек), то короткие выбросы при переключении обмоток начинают свое влияние через приличное время. Двигатель в процессе работы смазывается и начинает вращаться быстрее. Щетки двигателя начинают лучше прилегать к ламелям коллектора. Какая бы ни была причина, но печальный факт состоит в том, что эти показания «плывут» и невозможно создать четкие по времени цифровые ориентиры для работы микроконтроллера.    Выводы и рекомендации.    Из всего выше сказанного можно сделать выводы:  1. Более четко обнаружить нагрузку при минимальном импульсе ШИМ можно анализируя напряжение на двигателе. На интегрирующем конденсаторе собирается напряжение импульса ШИМ и напряжение генерации двигателем. На рисунке видно, что площадь импульса ШИМ меньше площади напряжения генерации при холостом ходе, то есть его больше в общем измеряемом напряжении. Нагрузка достаточно быстро изменяет это положение, так как площадь генерации сравняется с площадью ШИМ. Анализ тока не даст такой четкой информации.  2. Снятие нагрузки с вала, наоборот, невозможно обнаружить по анализу напряжения, так как мы будем работать на максимальном ШИМ, то есть на полном напряжении питания, транзистор включен постоянно. Снятие нагрузки можно обнаружить по анализу тока. При полном включении двигателя нагрузка на вал увеличивает ток двигателя, а ее снятие, соответственно, уменьшает этот ток.   Правило. Если двигатель работает при минимальном и среднем ШИМ, то информацию о нагрузке и его состоянии получают из анализа напряжения на нем. Если двигатель работает на максимальном ШИМ, то такую информацию получают из анализа, проходящего через него тока.  3. Невозможно задать абсолютные пороги обнаружения появления нагрузки и ее снятия, так как показания измерений тока и напряжения «плывут». Следовательно, надо анализировать скорость изменения этих параметров, скажем, сравнивая какое-нибудь предыдущее измерение его с текущим. Время между предыдущим и текущим измерением следует подобрать так, чтобы оно учитывало инерционность двигателя, то есть не очень быстро. Другими словами, порог устанавливается не на сам параметр, а на скорость его изменения. Это будет полезно и при смене инструмента, то есть сверла на другой диаметр.  4. Частота и период ШИМ должны быть такими, чтобы минимальный ШИМ мог сдвинуть якорь двигателя с места.  5. Очень часто встречаются жалобы на невозможность отцентрировать маленькие сверла, то патрон бьет, то сверло кривое и потому эти биения разбивают края отверстия. Решить эту проблему позволяет организация реверсивного движения вала двигателя, то есть в обратную сторону. Легче всего это сделать при помощи переключателя. Это поможет решить проблему центрирования и заточки сверла, если в процессе работы оно притупилось, а доработать надо. При вращении сверла в обратную сторону к концу его подводится точильный камень либо наждак, так чтобы угол заточки был примерно 120 градусов. Такая заточка сверла не может быть идеальной, но даст доработать, после чего его можно заменить. В случае отсутствия центрирования сверла, такая заточка отцентрирует самый конец сверла, и оно не будет «вспахивать» место отверстия. Однако грани его могут стать несимметричными, то есть одна больше другой, но при этом сверлит более или менее прилично.    Для анализа состояния двигателя при 100% ШИМ периодически вставляют один период с импульсом в 60% и после снятия его ожидают начало генерации им напряжения. Анализ этого напряжения позволяет оценить скорость вращения и нагрузки на валу. Однако с таким вариантом придется повозиться для достижения стабильных измерений.    В практической реализации схема показала себя вполне достойно. При минимальной скорости вращения сверло, отцентрированное при помощи реверсивного движения точно устанавливается на место, при малом давлении на него насверливает лунку, при увеличении давления схемой обнаруживается нагрузка и за пять шагов по 0,13 секунд достигает максимального значения, происходит сверление, после выведения сверла из отверстия обнаруживается снятие нагрузки и двигатель через паузу для преодоления его инерции переходит на минимальное вращение. Иногда бывает так, что не обнаруживается снятие нагрузки и двигатель продолжает работать на максимальном вращении. Но это не слишком напрягает, так как кратковременное торможение патрона пальцами заставляет схему обнаружить эту нагрузку и ее снятие. Видимо, слишком часто происходит измерение тока, каждые 0,13 секунд и разница между предыдущим и текущим измерением за это время не достигает порога срабатывания, но менять не стал.    Практическую схему не привожу, так как она сделана на допотопном микроконтроллере и много раз перерабатывалась и даже на нем ее можно было бы сделать лучше, но уже была сделана печатная плата. В схеме реализовано 2 режима: Ручной – с установкой длительности ШИМ переменным резистором, Автоматический – с обнаружением нагрузки и ее снятия. Реверс вращения обеспечивает переключатель.    Хотя большая часть статьи посвящена микродрели, но подобные вопросы могут возникать при реализации других устройств с двигателями постоянного тока и управлением ими микроконтроллерами.
Спасибо за внимание. Если кому-то все это было интересно, значит, я не зря этим занимался.











