Устройство управления двигателем постоянного тока — Меандр — занимательная электроника
При включении и выключении двигателей постоянного тока (ДПТ), работающих в паре с пластмассовыми редукторами, возникает удар, который постепенно разрушает редуктор. Предлагаемое устройство позволяет плавно подавать и снимать нагрузку с редуктора, и может быть использовано для регулировки скорости в ДПТ, плавного пуска и остановки ДПТ, например, при закрытии/открытии жалюзи, подъема/опускания ролетов и в других т.п. устройствах.
Детский электрический автомобиль
Устройство разработано для детских электрических автомобилей с питанием от аккумуляторной батареи 6 В 10 А*ч. Автомобиль управляется по радиоканалу с пульта управления, находящимся в руках родителя, идущего рядом с автомобилем. Для того чтобы маленькие дети не пугались при движении с большой скоростью, устройство снабжено переключателем скоростей. Поскольку в устройстве применено питание двигателя импульсами ШИМ, то скорости переключаются подачей на ДПТ импульсов с заполнением 50%, 60%, 80% и 100%.
Алгоритм работы
Предлагаемое устройство разрабатывалось с условием минимального изменения в электрической схеме автомобиля.
Устройство разработано на микроконтроллере РIС16F676. Алгоритм работы программы микроконтроллера показан на рис.1. После пуска и инициализации микроконтроллера определяется установленная скорость и включается флаг выбранной скорости. Далее определяется направление движения: прямой ход, реверсивный ход, либо отсутствие движения — стоп, и устанавливаются соответствующие флаги направления.
Рис. 1
Если направление движения не выбрано, то сигнала «Пуск» нет, и программа переходит на ожидание прерывания. Если «Пуск» включен, то по флагу определяется направление движения и отрабатывается прямой ход или обратный.
Длительность управляющего импульса пуска при прямом и обратном ходе формируется одинаково, но на разные выходы. Один выход, который включает «земляной» провод двигателя, включается сразу, а на втором выходе длительность импульса включения увеличивается после каждого прерывания. Чем большее число прерываний произошло с момента начала пуска, тем на большее значение увеличивается длительность импульса.
Реализовано это с помощью подпрограммы задержки 37 мкс, умноженное на число регистра «сек», имеющего переменное значение, и изменяющееся после каждого прерывания. Прерывание по переполнению таймера ТМR0 происходит через 4 мс, делится делителем на 10 и увеличивает счетчик «сек». Таким образом, счетчик «сек» увеличивается на единицу через 40 мс. Значение этого счетчика при пуске выбрано равным 55, но может быть изменено пользователем в любую сторону. При данном значении счетчика «сек» время пуска равно 2,25 с, а длительность импульса плавно увеличивается до 75% полной мощности двигателя.
После отработки части пуска ожидается прерывание, и, если пуск еще не завершен, программа возвращается на определение скорости и направления. Если пуск выполнен, то программа отрабатывает выбранную скорость с частотой ШИМ, равной 125 Гц. Отработка скорости выполняется аналогично отработке пуска, но с постоянным временем задержки. Но если при пуске время задержки увеличивает длительность выходного импульса, то при работе время задержки определяет длительность паузы. Это необходимо для того, чтобы при отработке «стопа» еще больше увеличивать время паузы, сокращая таким образом длительность выходного импульса.
Если включен флаг «стопа», то при прерывании изменяются значения делителей. Делитель на 10 становится делителем на 1, а значение регистра «сек» может принимать значение либо 50, либо 70. Это зависит от включенного флага скорости. При скорости 50% регистр «сек» принимает значение 50, так как при больших значениях происходит перерегулировка и длительность паузы становится больше длительности импульса работы. При этом вместо того, чтобы уменьшать значение длительности импульса, она начинает возрастать. При таких значениях регистра «сек» время остановки двигателя равно 0,2 с (оно может быть изменено пользователем в любую сторону уменьшением или увеличением до 255 значения регистра «сек»), а длительность выходного импульса плавно уменьшается до нуля.
После отработки длительности импульса скорости или стопа программа повторяется с определения скорости.
Работа устройства
Принципиальная электрическая схема устройства показана на рис.2. Выходы микроконтроллера DD1 RC0-RC3 управляют ключами VT1-VT4, которые открывают полевые транзисторы VT5-VT8, подающие напряжение в необходимой полярности на двигатель постоянного тока М1. На входы RA4, RA5 ИМС DD1 через переключатели SA1, SA2 подается лог. «0», определяя выбранную скорость. Программно входы RA4, RA5 подтянуты внутренними резисторами микроконтроллера к плюсу питания. Значения выбранных скоростей в зависимости от состояния входов приведены слева внизу на рис.2.
Рис. 2
На входы RC4, RC5 также подается напряжение от БУ автомобиля, определяя выбранное направление движения. Поскольку при полностью заряженной аккумуляторной батарее (АКБ) автомобиля напряжение на ней превышает максимально допустимое для входов микроконтроллера, то установлены делители напряжения R2, R9 и R3, R8.
Вначале был изготовлен вариант устройства с питанием от АКБ автомобиля, но при уменьшении напряжения на АКБ вследствие ее разряда полевые транзисторы открывались не полностью, и их внутреннее сопротивление увеличивалось. Увеличивалось и падение напряжения на транзисторах, и они грелись. Поэтому для питания микроконтроллера и ключевых транзисторов была установлена дополнительная батарея GB1 с напряжением 9 В. Стабилизатор напряжения DA1 необходим только для питания ИМС микроконтроллера DD1. Потребляемый ток от батареи GB1 составляет 15…25 мА. Меньшее потребление тока будет при максимальной скорости вращения двигателя.
Конструкция и детали
Схема подключения устройства в сеть автомобиля показана на рис.3. Пунктиром показано штатное соединение. Под сиденьем автомобиля имеется ниша для второго АКБ и много свободно го места. Сняв сиденье и крышку ниши АКБ, увидите пару проводов, идущих от АКБ, и пару проводов, идущих к двигателю. Один провод, как правило, черный — «минусовой», а второй провод — красный (может быть и желтым, белым) — «плюсовой». В назначении проводов можно убедиться, посмотрев на клеммы АКБ. Провод, идущий от БУ к двигателю, необходимо отпаять от двигателя и припаять к плате. Поскольку провод толстый, то лучше предварительно припаять к нему тонкие провода, которые легко паять к плате. Провода питания, идущие от АКБ к плате и от платы на двигатель, необходимо брать сечением не менее 1 мм2. Выключатель напряжения SA3 лучше установить на крышке ниши АКБ под сиденьем или сзади корпуса автомобиля. Разводку 9 В питания можно выполнить любым монтажным проводом. Батарею GB1 и плату можно закрепить в любом удобном месте.
Рис. 3
Печатная плата устройства и схема расположения элементов показаны на рис.4 и рис.5 соответственно.
Рис. 4
Рис. 5
МОSFЕТ-транзисторы \/Т5-\/Т8 могут быть любыми импортными с буквенным индексом L, с током стока не менее 10 А или отечественные с аналогичными параметрами. Чем больше допустимый
ток стока, тем меньших размеров нужен радиатор для транзистора. При 10-кратном запасе по току, радиатор может вообще не понадобиться. Конечно, это при условии, что транзистор открывается полностью. Большую нагрузку испытывают транзисторы, работающие в ключевом режиме, т.е. VT7, VТ8.
Транзисторы VT1-VT4 могут быть любыми структуры n-р-n. Переключатели скоростей SА1, SА2 лучше заменить одним движковым и установить его на передней панели автомобиля. В качестве батареи GB1 лучше применить 2 батареи типа 3R12, которых хватит на весь сезон.
Работа с устройством
Перед подачей напряжения на БУ автомобиля, необходимо подать напряжение на плату устройства. Напряжение питания 6 В и 9 В на плату должно подаваться одновременно. При движении вперед и переключении назад сначала отрабатывается время стопа, затем время пуска в выбранном направлении. При выключении движения отрабатывается время стопа, а при включении — время пуска.
Скачать файлы abtou.asm и abtou.hex, а также печатная плата в формате .lay
Автор: Николай Заец, г. Азов, Ростовской обл.
Источник: Радиоаматор №5, 2015
Устройства управления электродвигателями для создания роботов.
Устройства управления электродвигателями необходимы для создания вашего робота. Теперь выбрана конструкция робота, исполнительные механизмы или моторы и контроллер для робота. Наконец пришло время заставить все двигаться. Первый вопрос, который многие новички задают при создании своего первого робота, — «как я могу управлять моторами?».
Для этого служат такие устройства управления электродвигателями, как контроллер двигателя. После небольшого исследования выражения «контроллер двигателя» появилось много вопросов. Что такое контроллер двигателя и зачем он мне нужен?
Содержание статьи
Контроллеры двигателей
Контроллер двигателя — это электронное устройство (обычно это монтажная плата без корпуса), которое служит в качестве промежуточного устройства между микроконтроллером, блоком питания или батареями и моторами (двигателями).
Микроконтроллер (мозг робота) задает скорость и направление двигателей. Но он не может управлять ими напрямую из-за его очень ограниченной мощности (тока и напряжения). С другой стороны, контроллер двигателя может обеспечивать ток при требуемом напряжении. При этом не может решить, как быстро двигатель должен вращаться.
Таким образом, микроконтроллер и контроллер двигателя должны работать вместе. Для того, чтобы моторы двигались так как нам нужно, используются устройства управления электродвигателями. Обычно микроконтроллер может подавать команду на контроллер двигателя о том, как приводить в действие двигатели с помощью стандартного и простого метода связи.
- Например, такого как UART (Universal asynchronous receiver/transmitter или УАПП — универсальный асинхронный приемопередатчик). Это один из самых старых и распространенных протоколов передачи данных.
- Возможно использование PWM (широтно-импульсную модуляцию — ШИМ).
- Кроме того, некоторые контроллеры двигателей могут управляться вручную аналоговым напряжением, обычно создаваемым потенциометром.
Физический размер и вес контроллера двигателя могут значительно различаться. От устройства, меньшего, чем кончик пальца, используемого для управления мини-сумо-роботом до большого контроллера весом в несколько килограммов. Вес и размер контроллера двигателя обычно оказывает минимальное влияние на робота.
Хотя бывает необходимо сделать робота маленького размера или беспилотный летательный аппарат. В результате вес и размер контроллера может быть критичным. Размер контроллера двигателя обычно связан с максимальным током, который он может обеспечить. Увеличенный ток также означает необходимость использования проводов большего диаметра.
Существует несколько типов исполнительных механизмов (шаг 3). Следовательно, существует несколько типов контроллеров двигателей.
- Машинные контроллеры двигателя постоянного тока. Они используются с шестерёнчатыми двигателями постоянного тока, постоянного тока и многими линейными приводами.
- Бесщеточные контроллеры двигателя постоянного тока. Используются с бесщеточными двигателями постоянного тока.
- Сервомоторы: используются для хобби сервомоторов.
Выбор контроллера мотора (двигателя)
Контроллеры двигателей можно выбрать только после того, как вы выбрали свои двигатели, приводы. Кроме того, номинальный ток двигателя связан с крутящим моментом, который он может обеспечить. Так как маленький двигатель постоянного тока не потребляет много тока, но не может обеспечить большой крутящий момент. Тогда как большой двигатель может обеспечить более высокий крутящий момент, но для этого потребуется более высокий ток.
Управление двигателем постоянного тока
Первое соображение — это номинальное напряжение двигателя. Устройства управления электродвигателями постоянного тока обычно предлагают диапазон напряжения. Например, ваш двигатель работает с номиналом 3 В. Следовательно вам не следует выбирать контроллер двигателя, который может управлять двигателем только между 6 и 9 В. Это поможет вам исключить некоторые контроллеры двигателя из списка.
Итак, вы нашли ряд контроллеров, которые могут приводить в действие двигатель с соответствующим напряжением. Следующим соображением будет постоянный ток, который контроллер должен будет подавать. Вам нужно найти контроллер двигателя, который будет обеспечивать ток, равный или превышающий номинальный ток, потребляемый двигателем.
Если вы выберете контроллер двигателя 5А для двигателя 3A, то двигатели будут потреблять столько тока, сколько потребуется. С другой стороны, двигатель на 5А, скорее всего, выведет контроллер на 3A. Многие производители двигателей обеспечивают ток выключения двигателя постоянного тока. В результате это не дает вам четкого представления о контроллере двигателя, который вам понадобится. То есть вы не можете найти постоянный рабочий ток двигателя. В этом случае простым правилом является оценка постоянного тока двигателя примерно на 20-25% меньше тока останова.
Все контроллеры двигателя постоянного тока обеспечивают максимальный ток. Убедитесь, что этот показатель примерно в два раза выше, чем номинальный ток двигателя. Обратите внимание, что, когда двигателю требуется больше крутящего момента (например, движение вверх по склону), он требует большего тока. Выбор контроллера двигателя со встроенным охлаждением и тепловой защитой — очень хороший выбор. Еще одним важным соображением является метод управления.
Устройства управления электродвигателями используют следующие методы:
- аналоговое напряжение
- I2C (интерфейсная шина IIC )
- PWM (широтно-импульсная модуляция — ШИМ)
- R / C (Radio Control, радиоуправление)
- UART (универсальный асинхронный приемопередатчик)
Если вы используете микроконтроллер, проверьте, какие типы соединений у вас имеются, и какие двигатели являются совместимыми для вас. Если ваш микроконтроллер имеет последовательные контакты, вы можете выбрать контроллер последовательного двигателя. Для PWM вам, вероятно, потребуется один канал PWM на двигатель.
Методы контроля
На практике остается выбрать какой контроллер двигателя нужен — одиночный или двойной. Двойной контроллер постоянного тока может управлять скоростью и направлением двух двигателей постоянного тока независимо. Наконец часто экономит ваши деньги (и время).
Двигатели не обязательно должны быть идентичными. Хотя для мобильного робота приводные двигатели должны быть в большинстве случаев одинаковыми. Вам нужно выбирать двойной контроллер двигателя на основе более мощного двигателя постоянного тока.
Обратите внимание, что контроллеры двух двигателей имеют только одну входную мощность. Потому что если вы хотите контролировать один двигатель на 6 В, а другой на 12 В, это будет невозможно. Обратите внимание, что действующее напряжение всегда поддерживается на каждом канале. Стандартные сервомоторы предназначены для использования определенных напряжений для максимальной эффективности. Большинство из них работают от 4,8 В до 6 В, а их потребление тока аналогично, шаги для выбора несколько упрощены.
Тем не менее вы можете найти сервомотор, который работает при напряжении 12 В. При этом важно, чтобы были дополнительные сведения о контроллере, если ваш сервомотор не считается «стандартным». Также большинство хобби-сервомоторов используют стандартный сервопривод R / C. Это три провода, которые являются землей, напряжением и сигналом.
Теперь нужно выбрать метод управления. Некоторые контроллеры сервомоторов позволяют вам управлять положением сервопривода вручную с помощью набора кнопок / переключателей. Другие — с помощью команд UART (последовательных) или других средств. Определите количество сервоприводов, которые нужно контролировать.
Контроллеры могут управлять многими сервоприводами (обычно 8, 16, 32, 64 и выше). Вы, конечно же, можете выбрать контроллер серводвигателя, способный управлять большим количеством сервомеханизмов, чем вам потребуется. Как и контроллеры двигателя постоянного тока, метод управления является важным фактором.
Управление шаговым двигателем
Какой вы выбрали двигатель — однополюсный или двухполюсный? Выберите тип контроллера шагового двигателя соответственно, хотя почти все устройства управления электродвигателями могут управлять обоими типами. Количество проводов обычно помогает определить тип двигателя. Если двигатель имеет 4 провода, то он является двухполюсным. Если он имеет 6 или более контактов, то он является однополюсным. Выберите диапазон напряжения контроллера двигателя, чтобы он соответствовал номинальному напряжению вашего двигателя.
Определите, сколько тока требуется для каждого мотора, и узнайте, сколько тока (на катушку) контроллер шагового двигателя может обеспечить. Если вы не можете найти ток катушки, то большинство производителей указывает сопротивление катушки, R. Используя Закон Ома (V = IR), вы можете рассчитать ток (I). Как и для контроллера двигателя постоянного тока, метод управления является важным фактором.
Управление линейным приводом
Линейные приводы имеют три основных метода управления: DC, R / C или обратная связь. Большинство линейных приводов постоянного тока используют редукторный двигатель постоянного тока. Поэтому обычно необходим контроллер постоянного тока.
Однако некоторые линейные приводы принимают сервопривод R / C, поэтому вы выбираете контроллер серводвигателя. Если управляемый R / C линейный привод работает с более высоким напряжением, чем диапазон контроллера, привод может включать в себя отдельные провода для более высокого требуемого напряжения питания.
Другие приводы — это многочисленные электромеханические устройства. Например, искусственные мышцы из проволоки или соленоиды также должны управляться с помощью контроллеров двигателей. Ниже приведены некоторые вопросы для того, чтобы определить, нужен ли вашему приводу контроллер двигателя.
- Более высокие требования к току: любое устройство, требующее более 0,1A, обычно нуждается в собственном контроллере.
- Более высокие требования к напряжению: если привод работает выше напряжения микроконтроллера (обычно 5 В или 3,3 В) он обычно не может быть напрямую подключен к микроконтроллеру.
Практический часть
На шаге 3 мы выбрали большой мотор из базового набора LEGO MINDSTORMS Education EV3. Для этого мотора не требуется отдельного контроллера двигателя. Он подключается напрямую к выходному порту микроконтроллера EV3. В результате полностью соответствует нашей цели – созданию роботизированной платформы.
Большой мотор LEGO MINDSTORMS Education EV3
Шаг 5. Выбор контроллера мотора.
Управление мотором постоянного тока с помощью одного транзистора [Амперка / Вики]
В данной статье рассматривается наиболее простой способ подключения мотора постоянного тока к Arduino.
Введение
Моторы постоянного тока нельзя подключать напрямую к Arduino. Это обусловлено тем, что пины не способны выдавать ток более 40 мА. Мотору же, в зависимости от нагрузки, необходимо несколько сотен миллиампер. Потому возникает потребность увеличения мощности. Делается это, как-правило, с помощью транзисторов.
В статье «Транзисторы: схема, принцип работы, чем отличаются биполярные и полевые» можно ознакомиться с основными типами транзисторов и их принципами работы.
Так же рекомендуется посмотреть: Видеоуроки по Arduino, 5-я серия — Моторы и транзисторы. В данном уроке Джереми Блюм рассказывает о подключении мотора постоянного тока к Arduino через биполярный транзистор.
Необходимые компоненты
Мы рассмотрим вариант взаимодействия с полевым транзистором. Принципы подключения мотора будут разобраны на конкретном железе: DC-мотор, плата Arduino, N-канальный полевой транзистор, резистор на 10 кОм (R1), резистор на 220 Ом (R2).
Вы же в своих экспериментах вольны использовать то, что есть в наличии. Важны лишь 3 условия:
Максимальный ток потребления мотора (ток при блокировке) не должен превышать максимальный ток стока полевого транзистора.
Затвор транзистора должен отпираться при напряжении 5 В.
Транзистор должен обладать встроенным диодом обратной цепи (flyback диод).
Схема подключения
По-сути, обмотка мотора представляет собой катушку индуктивности. В момент подачи напряжения возникнет обратная электродвижущая сила, которая может вывести из строя транзистор. Flyback диод устанавливается в обратном направлении и предотвращает утечку тока с мотора на транзистор. Поэтому, если в транзисторе нет flyback диода, его необходимо установить дополнительно: анод на исток, катод на сток.
Транзистор IRF530N является мощным и поставляется в корпусе TO-220. Ниже приведена его распиновка.
В данной схеме транзистор будет работать в ключевом режиме: по одной команде (установка уровня HIGH на затворе) от Arduino транзистор будет подключать мотор к источнику питания (отпираться), по другой команде (установка уровня LOW на затворе) — отключать мотор от источника питания.
Резистор R1 подтягивает к земле затвор транзистора. Номинал не принципиален — можно использовать любые резисторы в диапазоне от 1 до 10 кОм. Резистор R2 служит для защиты пина микроконтроллера. Диапазон, примерно, от 10 до 500 Ом.
Чтобы запитать данную схему, можно подключить к Arduino внешний источник питания на 6-9 В, либо подать питание непосредственно на макетную плату ( синяя шина — минус, красная шина — плюс).
Программинг
Для наибольшей простоты воспользуемся, пожалуй, самым известным скетчем из готовых примеров — Blink.
- Blink.ino
int led = 13; void setup() { // Инициализация цифрового пина 13 на вывод pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); // Включение светодиода и мотора delay(1000); // Задержка на 1 секунду digitalWrite(led, LOW); // Выключение светодиода и мотора delay(1000); // Задержка на 1 секунду }
Посмотрим, что получилось.
Цифровой пин 13 раз в секунду меняет своё состояние. Когда на выходе устанавливается значение HIGH — загорается светодиод и начинает вращаться мотор. Когда устанавливается LOW — светодиод гаснет, а мотор останавливается.
Результаты
Была получена возможность подключать к выводам Arduino мощные устройства, в частности, моторы постоянного тока.
Использование ШИМ для регулировки скорости мотора
Если мотором управлять ничуть не сложнее, чем светодиодом, то, наверное можно изменять яркость скорость вращения мотора точно так же, как при работе со светодиодами? Именно так! С точки зрения Arduino абсолютно не важно с чем мы имеем дело.
Как вы уже, наверно, могли догадаться, для изменения скорости вращения мотора нам понадобится скетч Fade.
- Fade.ino
int led = 9; // Пин, к которому подключён затвор транзистора int brightness = 0; // Теперь эта переменная отвечает за скорость вращения int fadeAmount = 5; // Шаг изменения скорости void setup() { // Настраиваем цифровой пин 9 на вывод pinMode(led, OUTPUT); } void loop() { // Устанавливаем скорость вращения мотора analogWrite(led, brightness); // Увеличиваем текущее значение скорости вращения brightness = brightness + fadeAmount; // Когда скорость становится максимальной/минимальной — начинаем её снижать/повышать if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // Пауза 30 миллисекунд delay(30); }
Схема подключения
Чтобы использовать возможности функции analogWrite(..)
, нам придётся перейти на один из пинов (3/5/6/9/10/11), поддерживающих аппаратный ШИМ. Поскольку, по умолчанию, в скетче Fade задействован 9-й пин, остановим свой выбор на нём.
Результат
Была получена возможность изменять скорость вращения мотора, используя аппаратный ШИМ Arduino.
На чём данная статья подходит к завершению. Теперь вы смело можете использовать моторы постоянного тока в своих проектах!
Ардуино: управление двигателем постоянного тока, L293D | Класс робототехники
Ардуино: управление двигателем постоянного тока, L293D
Составив транзисторы определенным образом, мы получим устройство для управления вращением двигателя в обе стороны. Такое устройство называется H-мост. Вот так выглядит H-мост на биполярных транзисторах:
INA и INB на рисунке — это вход слабых управляющих сигналов. В случае Ардуино, на них необходимо подавать либо 0 (земля) либо +5В. VCC — это питание двигателей, оно может быть во много раз выше напряжения управляющего сигнала. GND — это земля, общая для Ардуино и H-моста.
В зависимости от того, на какой из входов мы подаем положительный сигнал, двигатель будет крутиться в одну или в другу сторону. Как правило, в схему драйвера двигателя постоянного тока помимо самого H-моста, добавляют защитные диоды, фильтры, опторазвязки и прочие улучшения.
Микросхема драйвера L293D
Разумеется, необязательно собирать драйвер двигателя вручную из отдельных транзисторов. Существует множество готовых микросхем, которые позволяют управлять разными типами двигателей. Мы рассмотри распространенный драйвер L293D.
Микросхема представляет собой два H-моста, а значит можно управлять сразу двумя двигателями. Каждый мост снабжен четырьмя защитными диодами и защитой от перегрева. Максимальный ток, который может передать L293D на двигатель — 1.2А. Рабочий ток — 600мА. Максимальное напряжение — 36 В.
Вконтакте