Меню

Цифровое управление двигателем постоянного тока

Управление двигателем постоянного тока с помощью Arduino Uno

В этой статье мы будем подключать двигатель постоянного тока к Arduino Uno и управлять скоростью его вращения. Делать мы это будем с помощью ШИМ (широтно-импульсной модуляции, в англ. языке PWM — Pulse Width Modulation) – эта функция реализована в Arduino чтобы на основе постоянного напряжения иметь возможность получения изменяющегося напряжения.

Управление двигателем постоянного тока с помощью Arduino Uno: внешний вид конструкции

Общие принципы ШИМ

Метод осуществления ШИМ показан на следующем рисунке.

Если на представленном рисунке кнопка нажата, то двигатель начнет вращение и он будет вращаться до тех пор пока кнопка не будет отжата. Эта ситуация происходит если кнопка будет нажата постоянно – верхний график на представленном рисунке. Если же мы будем нажимать кнопку только в течение 8 мс из всего цикла в 10 мс, то в этом случае двигатель уже не будет в полной мере получать все напряжение батареи 9 В – в этом случае среднеквадратичная величина напряжения, получаемого двигателем, будет около 7 В. Соответственно, двигатель по сравнению с первым случаем (когда кнопка нажата постоянно) будет вращаться с меньшей скоростью. Поэтому цикл занятости (который еще называют коэффициентом заполнения ШИМ) в этом случае составит время включенного состояния/(время включенного состояния + время выключенного состояния) = 8/(8+2)=80%.

В следующих рассмотренных на рисунке случаях кнопка будет находиться в нажатом состоянии еще меньше чем в рассмотренном случае (80%). Соответственно, среднеквадратичная величина напряжения, получаемого двигателем, будет составлять еще меньшую величину, поэтому и скорость вращения двигателя также уменьшится. Это уменьшение скорости вращения двигателя вследствие уменьшения среднеквадратичной величины напряжения будет происходить до тех пор, пока получаемое двигателем напряжение не станет не достаточным для его вращения. То есть, изменяя величину цикла занятости (коэффициент заполнения ШИМ), можно управлять скоростью вращения двигателя постоянного тока.

Принцип работы H-моста

Перед тем, как переходить непосредственно к управлению двигателем, обсудим что такое H-BRIDGE (H-мост). Собранная нами далее схема будет осуществлять две функции: управлять двигателем постоянного тока с помощью управляющих сигналов малой мощности и изменять направление вращения двигателя.

Нам известно, что для изменения направления вращения двигателя постоянного тока необходимо изменить полярность приложенного к нему питающего напряжения. И как раз для смены полярности напряжения хорошо подходит устройство, называемое H-мостом. На представленном выше рисунке мы имеем 4 выключателя. Как показано на рисунке 2 если выключатели A1 и A2 замкнуты, то ток через двигатель течет справа налево как показано на второй части рисунка 2 – то есть в этом случае двигатель будет вращаться по часовой стрелке. А если выключатели A1 и A2 разомкнуты, а B1 и B2 – замкнуты, то ток через двигатель в этом случае будет протекать слева направо как показано на второй части рисунка, то есть двигатель будет вращаться против часовой стрелки. В этом и заключается принцип работы H-моста.

Рисунок 2 (часть 1)

Рисунок 2 (часть 2)

Мы в качестве H-моста будем использовать специализированную микросхему L293D, которую еще называют драйвером двигателей. Эта микросхема предназначена для управления двигателями постоянного тока малой мощности (см. рисунок) и содержит в своем составе два H-моста, то есть с ее помощью можно управлять двумя двигателями. Эта микросхема часто используется для управления двигателями в различных роботах.

В следующей таблице указаны необходимые значения напряжений на выводах INPUT1 и INPUT2 микросхемы L293D для смены направления вращения двигателя.

Enable Pin Input Pin 1 Input Pin 2 Motor Direction
High Low High вправо
High High Low влево
High Low Low стоп
High High High стоп

То есть, чтобы двигатель вращался по часовой стрелке необходимо чтобы на 2A было напряжение высокого уровня (high), а на контакте 1A – напряжение низкого уровня (low). Аналогично для вращения двигателя против часовой стрелки необходимо обеспечить на 1A напряжение высокого уровня, а на 2A – низкого.

Как показано на следующем рисунке Arduino UNO имеет 6 ШИМ каналов (обозначенных на плате специальным знаком – тильдой), любой из которых мы можем использовать для получения изменяющего напряжения (на основе ШИМ). В данном проекте мы будем использовать в качестве ШИМ выхода контакт PIN3 Arduino UNO.

Контакты ШИМ на плате Arduino UNO

Необходимые компоненты

  1. Плата Arduino UNO (купить на AliExpress).
  2. Драйвер двигателей L293D (купить на AliExpress).
  3. Электродвигатель постоянного тока.
  4. Светодиод (купить на AliExpress).
  5. Резистор 10 кОм (2 шт.) (купить на AliExpress).
  6. Кнопка (2 шт.).
  7. Конденсатор 100 пФ (купить на AliExpress).
  8. Переключатель.
  9. Источник питания с напряжением 5 В.

Работа схемы

Схема устройства (на макетной плате) представлена на следующем рисунке.

В рассматриваемой схеме мы имеем две кнопки, у каждой из которых, естественно, будет присутствовать эффект, называемый «дребезгом контактов». Но в данном случае для нас он не будет нести никакого негативного эффекта и не будет вызывать ошибок в работе схемы.

На нашем сайте мы уже рассматривали управление ШИМ с помощью микроконтроллера AVR ATmega и это управление было не самым простым делом – необходимо было сконфигурировать различные регистры. В отличие от этого управление ШИМ в Arduino UNO является крайне простым занятием, не требующем всего этого.

Исходный код программы

По умолчанию все необходимые заголовочные файлы подключаются автоматически самой средой ARDUINO IDE, она же конфигурирует сама и все регистры, необходимые для работы ШИМ, поэтому нам в программе уже не нужно заботиться об этих вещах. Все что нам нужно будет сделать – это определить на каком контакте мы будем использовать ШИМ.

То есть для использования ШИМ на нужном контакте нам необходимо сделать следующие вещи:

pinMode(ledPin, OUTPUT)
analogWrite(pin, value)
analogWriteResolution(neededresolutionnumber)

Сначала мы должны выбрать один из доступных 6 выходов (контактов) ШИМ. Потом необходимо установить этот контакт в режим на вывод данных.

После этого мы должны задействовать функции ШИМ на этом выходе используя функцию “ analogWrite(pin, value) ”. Здесь ‘pin’ обозначает номер контакта, на котором мы будем использовать ШИМ, в нашем случае это будет 3-й контакт.

Value в этой функции представляет собой цикл занятости (коэффициент заполнения) ШИМ, оно может принимать значения от 0 (всегда выключено) до 255 (всегда включено). Мы будем увеличивать и уменьшать это значение с помощью кнопок, присутствующих на схеме.

Плата Arduino UNO имеет максимальное разрешение (разрешающую способность) ШИМ, равную 8, что означает что value в функции analogWrite(pin, value) может принимать значения от 0 до 255. Но если в этом есть необходимость, мы можем уменьшать разрешение ШИМ используя функцию “ analogWriteResolution() ”, в скобках которой мы можем записать число в диапазоне 4-8, которое и будет определять разрешающую способность ШИМ платы Arduino UNO.

Переключатель на схеме служит для изменения направления вращения двигателя.

А теперь непосредственно сам код программы с комментариями.

Источник

Управление двигателями постоянного тока. Часть 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 мА.

Источник

Управление двигателем постоянного тока с применением драйвера L298N и Arduino UNO

В данном примере мы рассмотрим один из способов управления электродвигателем постоянного тока, который осуществляется посредством платы Arduino и драйвера L298N. Несмотря на большое многообразие вариантов управления работой электрических машин постоянного тока, куда большей популярностью пользуется именно эта схема. Так как с ее помощью можно осуществлять достаточно широкий спектр различных операций, в сравнении со схемами, использующими другие драйвера и микроконтроллеры.

Введение

Электрическая машина постоянного тока является одной из самых простых в эксплуатации, благодаря чему ее так часто применяют в устройствах радиоэлектроники и робототехники. Такая популярность обусловлена простотой питания и управления – для этого подаются два полюса от источника эдс (отрицательный и положительный), и при протекании тока по обмоткам происходит вращение вала. При смене полярности двигатель совершает реверсивное движение.

В системах радиоэлектроники такие способы управления работой двигателя получили название широтно-импульсной модуляции (ШИМ). Такой процесс характеризуется изменением продолжительности подаваемого напряжения или формы его сигнала.

Как можно изменять скорость вращения при помощи ШИМ?

Применяя способ ШИМ, вы производите попеременную подачу и отключение напряжения на обмотки двигателя с большой частотой. Частота импульсов при этом может достигать нескольких килогерц.

Величина среднего напряжения, подаваемого на двигатель, напрямую зависит от формы сигнала ШИМ . Форма сигнала, в свою очередь, определяется рабочим циклом, который можно представить в виде отношения времени подачи сигнала к общему периоду (сумме времени подачи напряжения и его отключения). В результате получается безразмерная величина, которую выражают в процентном отношении – сколько времени от общего периода напряжение подавалось на двигатель. В слаботочных системах на 5, 12, 24 или 36 В применяется цикл на 25%, 50%, 75% и 100%.

Широтно-импульсная модуляция

Широтно-импульсная модуляци

Управление двигателем при помощи Arduino и сгенерированным сигналом ШИМ

Для запуска процесса плата генерирует сигнал, который подается на обмотки двигателя. Чтобы контролировать величину подаваемого сигнала в рабочую схему включается транзистор. Который включается в разрыв питающей сети, а на его базу подается управляющий импульс от Arduino. Задавая определенные параметры работы набором команд для Arduino, транзистор будет переходить в открытое, закрытое или приоткрытое состояние.

На рисунке ниже вы можете увидеть пример схемы, на которой питание двигателя контролируется Arduino через транзистор. Как видите, здесь от ШИМ выхода подается сигнал на базу транзистора, а через его коллектор и эмиттер будет подаваться напряжение на обмотку.

Принципиальная схема управления dc мотором

Принципиальная схема управления dc мотором

Программирование ардуино может выполняться с помощью компьютера, для этого используются как специальные утилиты, так и классические языки программирования. При программировании работы устройства вы можете использовать стандартный набор команд, который предоставит доступ к наиболее простым командам. Или собирать их в комбинации для формирования специфической логики работы устройства.

Пример программных команд для работы вышеприведенной схемы включения Arduino вы можете скачать по ссылке ниже. Применяя их, вы сможете управлять скоростью вращения, постепенно наращивая ее до максимального значения, и так же плавно снижая до полной остановки.

Полный скетч проекта:

Используемые команды:

  • void setup – поле для установки рабочего выхода с ШИМ порта;
  • void loop – поле для формирования рабочего процесса;
  • motorSpeed – задает скорость вращения двигателя;
  • analogWrite – задает работу конкретного вывода платы;
  • delay – устанавливает величину временного промежутка.

При помощи этой программы и вышеприведенной схемы вы сможете легко изменять скорость вращения двигателя постоянного тока, но менять направление его вращения будет достаточно сложно. Так как потребуется изменить направление протекание электрического тока по обмоткам. Поэтому менять направление вращения куда удобнее при помощи Н-моста на полупроводниковых преобразователях.

Управление двигателем постоянного тока с использованием Н-моста

Если рассмотреть принцип действия, то Н-мост представляет собой логическую схему из четырех логических элементов (релейного или полупроводникового типа), способных переходить в два состояния (открытое и закрытое). В данном примере рассматривается мост собранный на полупроводниках. Простым изменением попарного состояния этих элементов двигатель будет вращаться то в одну, то в другую сторону без необходимости переключения его контактов.

Свое название данное устройство получило за счет внешнего сходства с буквой «Н», где каждая пара транзисторов находится в вертикальных элементах буквы, а непосредственно сам управляемый мотор в горизонтальном. Пример элементарного Н-моста из четырех транзисторов приведен на рисунке ниже. Попарно открывая и закрывая нужные элементы схемы, вы сможете пропускать ток через обмотки в противоположных направлениях.

Схема H-моста

Схема H-моста

Посмотрите на рисунок, в этой схеме управление питанием двигателя происходит от выводов А и В, на которые подается управляющий потенциал.

Принцип определения направления вращения в Н-мосте происходит следующим образом:

  • при подаче на базы транзисторов Q1 и Q4 импульса для открытия перехода происходит протекание тока по обмоткам двигателя в одном направлении;
  • при подаче на базы транзисторов Q2 и Q3 импульса для открытия перехода ток будет протекать в противоположном направлении, в сравнении с предыдущим и произойдет реверсивное движение;
  • попарное открытие транзисторов Q1 и Q3, Q2 и Q4 приводит к торможению ротора;
  • открытие транзисторов в последовательности Q1 и Q2 или Q3 и Q4 совершенно недопустимо, поскольку оно приведет к возникновению короткого замыкания в цепи.

Применяя схему Н-моста для управления работой двигателя постоянного тока, вы сможете реализовать полный набор операций для электрической машины без необходимости переподключения ее выводов. В виду сложности подбора транзисторов и подключения их в схему Н-моста, гораздо проще использовать уже существующие драйвера, имеющие такую функцию. Среди них наиболее популярными являются драйверы L293D и L298N.

Сравнивая оба драйвера, следует отметить, что L298N превосходит L293D как по параметрам работы, так и по доступным опциям. Несмотря на то, что L293D более дешевая модель, L298N, ввиду значительных преимуществ, стал использоваться куда чаще. Поэтому в данном примере мы рассмотрим принцип управления двигателем при помощи драйвера L298N и платы Arduino.

Что представляет собой драйвер L298N?

Данная плата содержит микросхему и 15 выходов для генерации управляющих сигналов. Предназначено для передачи сигналов к рабочим элементам индуктивного типа – обмоткам двигателя, катушкам реле и т.д. Конструктивно L298N позволяет подключать в работу до двух таких элементов, к примеру, через нее можно одновременно управлять двумя шаговыми двигателями.

На схеме ниже приведен пример распределения выводов L298N от рабочей микросхемы.

L298N

L298N. Выводы

  • Vss – вывод питания для логических цепей в 5В;
  • GND – нулевой вывод (он же корпус);
  • INPUT1, INPUT 2, INPUT 3, INPUT 4 – позволяют плавно наращивать и уменьшать скорость вращения двигателя;
  • OUTPUT1, OUTPUT2 – выводы для питания первой индуктивной нагрузки;
  • OUTPUT3, OUTPUT4 – выводы для питания второй индуктивной нагрузки;
  • Vs – вывод для переключения питания;
  • ENABLE A, B – выводы, при помощи которых осуществляется раздельное управление каналами, могут устанавливать активный и пассивный режим (с регулируемой скоростью вращения и с установленной);
  • CURRENT SENSING A, B – выводы для установки текущего режима.

Принцип управления двигателем при помощи Arduino и драйвера L298N

Благодаря наличию в драйвере L298N встроенного моста данная плата позволяет осуществлять одновременное управление сразу двумя электрическими машинами от двух пар выводов. Логическая схема в данном устройстве работает от напряжения в 5В, а питание самих электрических машин можно осуществлять до 45В включительно. Максимально допустимый ток для одного канала платы составляет 2А.

Как правило, этот драйвер имеет модульное исполнение, за счет чего в комплект модуля уже включены рабочие элементы, выводы и разъемы, необходимые для передачи управляющих сигналов. Пример такого драйвера показан на рисунке ниже:

Пример драйвера L298N

Пример драйвера L298N

Теперь разберем, как осуществляется управление двигателем с помощью драйвера L298N. Подключение двигателя производится к винтовым клеммным зажимам – по паре для питания каждого моторчика. Остальные клеммные зажимы предназначены для подачи питания плюс и минус, а также получения пониженного напряжения (на них подается определенный уровень питающего напряжения, от которого работают двигатели, а внутренний преобразователь понижает его до 5В для собственных логических цепей). Штекерные выводы платы осуществляют широтно-импульсную модуляцию при формировании рабочих сигналов.

Зажимы, куда подключать моторы

Зажимы, куда подключать моторы

Следует отметить, что клеммный зажим с тремя выводами не только подводит к плате питающее напряжение, но и позволяет получить его уже преобразованное для собственных нужд драйвера величиной в 5В, как показано на рисунке выше. Этот выход можно использовать для запитки того же Ардуино или для любых других устройств, которые питаются от 5В.

Немаловажным моментом для получения 5В от этого клеммного вывода является установка черной перемычки, которая отвечает за преобразование отличного от 5 В уровня напряжения, при условии, что его уровень ниже 12В. Если уровень питающего напряжения выше 12В, перемычку необходимо снять, так как внутренний преобразователь на него не рассчитан, а сама плата должна запитываться от 5В через третий вывод этого же клеммника.

Читайте также:  13505369 датчик силы тока аккумулятора для чего

Простой пример работы Arduino с драйвером L298N

Сейчас мы рассмотрим пример простой схемы совместного использования Arduino и L298N. Такой вариант позволяет управлять скоростью вращения вала и его направлением у двигателя постоянного тока. Для этого задается специальная программа на ПК, которая будет определять генерацию ШИМ сигнала от L298N и направление протекания электрического тока через Н-мост. Разумеется, для формирования схемы потребуются еще несколько дополнительных компонентов, которые позволят соединить между собой драйвер, Ардуино, компьютер и двигатели.

Схема совместного использования Arduino и L298N

Схема совместного использования Arduino и L298N

Перечень необходимых компонентов для сборки схемы:

  • Arduino UNO — наиболее простая модель из линейки, но его функционала будет более чем достаточно. Если вы используете более продвинутый вариант, то он также хорошо справится с этой задачей.
  • Драйвер L298N – не самый доступный драйвер, но заменить его другим не получится, так как принцип работы похожих моделей может в корне отличаться.
  • Двигатель на 12 В – в данном примере используется электрическая машина постоянного тока.
  • Потенциометр 100 кОм.
  • Кнопка для коммутации цепи.
  • Источник питания 12 В — может подойти любой вариант, включая несколько пальчиковых батареек.
  • Плата для установки элементов.
  • Соединительные провода, желательно с готовыми штекерами папа/мама.
Компонент Спецификация Количество Где купить
Arduino UNO Rev3.0 1 [mask_link]Ссылка[/mask_link]
Драйвер L298N 1 [mask_link]Ссылка[/mask_link]
Мини-двигатель 12В, DC, 6000 об/мин. 1 [mask_link]Ссылка[/mask_link]
Блок питания 12 Вольт 1 [mask_link]Ссылка[/mask_link]
Кнопка Micro SMD SMT 1 [mask_link]Ссылка[/mask_link]
Потенциометр 100 кОм 1 [mask_link]Ссылка[/mask_link]
Соединительные провода папа-мама [mask_link]Ссылка[/mask_link]

Полный код проекта:

Практическое применение.

Программирование работы электрическими двигателями широко используется в робототехнике, к примеру, ваше изобретение, оснащенное колесами, сможет осуществлять движение и в прямом, и в обратном направлении. Как вы могли уже убедиться, совместная работа Arduino и драйвера L298N сможет без проблем решить такую задачу. При этом вы можете обеспечить одновременную работу сразу двух двигателей от одного драйвера, то есть управлять сразу двумя колесами, причем независимо друг от друга.

В другом варианте двигатели, управляемые Arduino и драйвером L298N могут перемещать руки робота в прямом и реверсивном направлении, передвигаться по линейной траектории и т.д. Полный перечень возможностей платы Arduino и драйвера L298N ограничивается только вашей собственной фантазией, поэтому вы можете самостоятельно найти им интересное применение.

Источник



Digitrode

цифровая электроника вычислительная техника встраиваемые системы

  • Вычислительная техника
    • Микроконтроллеры микропроцессоры
    • ПЛИС
    • Мини-ПК
  • Силовая электроника
  • Датчики
  • Интерфейсы
  • Теория
    • Программирование
    • ТАУ и ЦОС
  • Перспективные технологии
    • 3D печать
    • Робототехника
    • Искусственный интеллект
    • Криптовалюты

Чтение RSS

Двигатели постоянного тока и управление ими с помощью широтно-импульсной модуляции. Часть 1.

Электродвигатели это очень распространенный объект управления в различных устройствах и технических комплексах. Без них наша современная жизнь была бы не такой уж и современной. Они используются во многих сферах потребительской техники и промышленной автоматизации, начиная от небольших двигателей, вращающих барабан стиральной машинки, и заканчивая огромными махинами, приводящими в движение заводские конвейеры и шахтные подъемники.

ДПТ

Традиционно электродвигатели делят на двигатели постоянного тока и двигатели переменного тока. Последние в силу бурного развития научно-технической мысли, которая предлагает более совершенные алгоритмы векторного управления и довольно дешевые и удобные в использовании частотники, приобретают все большую популярность. Но двигатели постоянного тока (ДПТ) тоже имеют свои преимущества, и они еще долгое время будут крутить свои валы в режиме нещадной эксплуатации в различных технических областях, поэтому сегодня речь пойдет именно о ДПТ, точнее об управлении коллекторными электродвигателями постоянного тока.

Такие агрегаты были первыми двигателями, нашедшими широкое применение в промышленном оборудовании, и их до сих пор используют там, где требуется невысокая стоимость конечного устройства, простая установка и управление. На роторе этих двигателей располагается обмотка (1 на рисунке 1), а на статоре — электромагниты (2 на рисунке 1). Щеточные контакты (3 на рисунке 1), которые устанавливаются по окружности вала ротора, применяются для переключения полярности напряжения, прикладываемого к обмотке ротора. Они же создают основную проблему эксплуатации коллекторного ДПТ — ненадежность, поскольку претерпевают сильный износ и требуют периодической замены. Также между щетками и коммутаторными контактами в ходе работы возникают искры, что может привести к возникновению сильных электромагнитных помех. Кроме того, при неправильной эксплуатации всегда имеется риск создать электрическую дугу в коллекторе или, как еще это называют, круговой огонь. В этом случае якорь двигателя гарантированно отживает свой срок.

Двигатель постоянного тока

Рисунок 1 – двигатель постоянного тока

Сегодня получили распространение две схемы управления двигателем такого типа: генератор-двигатель (Г-Д) и преобразователь-двигатель (тиристорный ТП-Д и транзисторный ТрП-Д).

силовые схемы

Рисунок 2 – силовые схемы электроприводов постоянного тока а) Г-Д, б) ТП-Д или ТрП-Д

На рисунке 2 показаны две схемы управления ДПТ с независимым возбуждением. В обоих случаях управление угловой скоростью и моментом по абсолютному значению и направлению осуществляют путем регулирования напряжения на якоре двигателя. Напряжение на якоре двигателя Д в системе Г-Д регулируют путем изменения силы тока в обмотке возбуждения генератора (ВГ). Для этой цели служит возбудитель генератора ВГ, в качестве которого используют силовые магнитные усилители (системы МУ-Г-Д, хотя это прошлый век, и в современных системах такого не встретишь), тиристорные (ТВ-Г-Д) или транзисторные (ТрВ-Г-Д) преобразователи. В системах ТП-Д напряжение на якоре двигателя регулируют путем фазового управления коммутацией тиристоров, а в системах ТрП-Д путем изменения скважности пульсирующего питающего напряжения, то есть с помощью широтно-импульсной модуляции (ШИМ).

Популярность Г-Д, а также ТП-Д с каждым годом падает из-за их громоздкости, аппаратной избыточности и сложности в управлении, по сути, они в основном применяются в промышленности для управления крупными двигателями. А ТрП-Д все чаще применяется в различных технических системах благодаря своей простоте, дешевизне и удобству управления. Также за счет обилия на рынке различных моделей MOSFET и IGBT-транзисторов и драйверов управления их затворами системы ТрП-Д применяются для управления как маломощными, так и крупными двигателями. Думаю, это стоит того, чтобы познакомиться с такими системами ближе.

Итак, сердцем ТрП-Д является широтно-импульсный преобразователь (ШИП), который состоит из четырех транзисторов (рисунок 3). В диагональ такого транзисторного моста включается нагрузка, то есть якорь двигателя. Питается ШИП от источника постоянного тока.

Широтно-импульсный преобразователь

Рисунок 3 – схема транзисторного ШИП

Есть несколько способов управления ШИП по цепи якоря. Самый простой – это симметричный способ. При таком управлении в состоянии переключения находятся все четыре транзистора, и выходное напряжение ШИП представляет собой знакопеременные импульсы, длительность которых регулируется входным сигналом. Сам принцип переключения показан на рисунке 4. Логично предположить, если относительная продолжительность включения будет равна 50%, то на выходе ШИП получим 0 В. Преимуществом симметричного способа является простота реализации, но двухполярное напряжение на нагрузке, вызывающее пульсации тока в якоре, является его недостатком. По сути, он используется для управления маломощными ДПТ.

симметричный способ управления

Рисунок 4 – симметричный способ управления ДПТ

Более совершенным является несимметричный способ управления. Как мы видим на рисунке 5, он обеспечивает на выходе ШИП однополярное напряжение. В данном случае переключаются лишь два транзистора Т3 и Т4, при этом Т1 постоянно открыт, а Т2 постоянно закрыт. Для того, чтобы среднее напряжение на выходе ШИП было равно нулю, достаточно чтобы нижний переключающийся транзистор оставался в закрытом состоянии. Такой подход тоже не очень хорош тем, что верхние ключи загружены по току больше, чем нижние. При больших нагрузках это может привести к перегреву и выходу транзисторов из строя.

несимметричный способ управления

Рисунок 5 – несимметричный способ управления ДПТ

Но и с этим недостатком справились, придумав способ поочередного управления (рисунок 6). Здесь как при движении как в одну сторону, так и в другую будут переключаться все четыре транзистора. Обязательным условием является нахождение в противофазе управляющих напряжений транзисторов Т1 и Т2 для одной группы и Т3 и Т4 для другой.

поочередный способ управления

Рисунок 6 – поочередный способ управления ДПТ

Из рисунка видим, что при определенном знаке сигнала задания на скорость длинные импульсы с разницей в полпериода подаются на диагонально противоположные ключи (в данном случае Т1 и Т4). Соответственно, также со сдвигом полпериода на ключи противоположной диагонали подаются короткие импульсы. Таким образом, нагрузка подключается к источнику во время отсутствия коротких импульсов, а во время их присутствия закорачивается либо на питание, либо на землю. При изменении знака задания транзисторы управляются противоположным образом.

В общем, такой краткий теоретический экскурс, надеюсь, поможет понять, как легко и просто запускать ДПТ. Для более подробного осмысления и понимания, что такое двигатели постоянного тока (да и не только постоянного) рекомендую книгу Кацмана М.М. «Электрические машины автоматических устройств». А для детального ознакомления с силовой частью электропривода и принципами управления советую почитать Семенова Б.Ю. «Силовая электроника: от простого к сложному», Розанова Ю.К. «Основы силовой электроники» и Воронина П.А. «Силовые полупроводниковые ключи».

Во второй части на конкретном примере мы более детально рассмотрим ШИМ-управление и поймем, что двигатель крутится вовсе не потому, что он круглый!

Источник