Частотник на ардуино. Arduino и асинхронные двигатели. Управление мотором постоянного тока с помощью одного транзистора

Основная задача контроллера холодильника – поддержание в камере заданной температуры. Делать это будет регулятор температуры за счет изменения электрической мощности на модуле Пельтье.

В предыдущем уроке мы разработали регулятор мощности. Связь регуляторов мощности и температуры выглядит так.

  • Регулятор температуры получает измеренную температуру, сравнивает ее с заданной температурой и вычисляет значение заданной мощности для регулятора мощности.
  • Регулятор мощности формирует ШИМ, соответствующий заданной мощности.

Регулятор мощности мы построили по интегральному закону регулирования. Для стабилизации температуры будем использовать более сложный алгоритм управления – пропорционально-интегрально-дифференцирующий (ПИД) регулятор.

ПИД регулятор.

В предыдущем уроке я подробно рассказал об . Подчеркнул его достоинства и недостатки.

Регулятор, работающий по такому принципу, обладает высокой точностью. Остальные критерии качества регулирования – быстродействие и устойчивость - у него не на высоте.

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

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

В формировании выходного сигнала ПИД регулятора участвуют:

  • Пропорциональная составляющая – значение пропорционально ошибке рассогласования (разности заданного и реального значений регулируемого параметра).
  • Интегрирующая составляющая – интеграл ошибки рассогласования.
  • Дифференцирующая составляющая – производная ошибки рассогласования.

Математическая форма записи закона ПИД регулятора имеет вид:

o(t) = P + I + D = K p e(t) + K i ∫e(t)dt + K d de(t)/dt

  • o(t) – выходной сигнал;
  • P – пропорциональная составляющая;
  • I – интегрирующая составляющая;
  • D – дифференцирующая составляющая;
  • Kp, Ki, Kd – коэффициенты пропорционального, интегрирующего, дифференцирующего звеньев;
  • e(t) – ошибка рассогласования.

В схематичном виде ПИД регулятор можно представить так.

Структурная схема ПИД регулятора напряжения U выглядит так.


  • Измеренное напряжение Ureal(t) вычитается из заданного Uset.
  • Полученная ошибка рассогласования e(t) поступает на пропорциональное, интегрирующее и дифференцирующее звенья.
  • В результате суммы составляющих получается управляющее воздействие o(t), которое подается на регулирующий элемент.

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

Составляющие ПИД регулятора.

Еще раз. Выходной сигнал ПИД регулятора это сумма трех составляющих:

  • пропорциональной;
  • интегрирующей;
  • дифференцирующей.

Пропорциональная составляющая.

P(t) = K p * e(t)

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

Пропорциональная составляющая не способна компенсировать ошибку полностью. Это видно из формулы. Выходной сигнал в Kp раз больше ошибки. Если ошибка рассогласования равна 0, то и выходной сигнал регулятора равен 0. А тогда и компенсировать нечем.

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

К недостаткам пропорциональных регуляторов следует отнести:

  • наличие статической ошибки регулирования;
  • невысокая устойчивость при увеличении коэффициента.

Есть весомое преимущество:

  • Высокая скорость регулирования. Реакция пропорционального регулятора на ошибку рассогласования ограничена только временем дискретизации системы.

Регуляторы, работающие только по пропорциональному закону, применяют редко.

Главная задача пропорциональной составляющей в ПИД регуляторе – повысить быстродействие.

Интегрирующая составляющая.

I(t) = K i ∫e(t)dt

Пропорциональна интегралу ошибки рассогласования. С учетом временной дискретности регулятора можно написать так:

I(t) = I(t -1) + K i * e(t)

  • I(t-1) – значение I в предыдущей точке временной дискретизации.

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

К недостаткам интегрального регулятора следует отнести:

  • низкое быстродействие;
  • посредственная устойчивость.

Достоинство:

  • Способность полностью компенсировать ошибку рассогласования при любом коэффициенте усиления.

На практике часто используют интегрирующие регуляторы (только интегрирующая составляющая) и пропорционально-интегрирующие (интегрирующая и пропорциональная составляющие).

Главная задача интегрирующего звена в ПИД регуляторе – компенсация статической ошибки, обеспечение высокой точности регулирования.

Дифференцирующая составляющая.

D(t) = K d de(t)/dt

Пропорциональна скорости изменения ошибки рассогласования. Своеобразный показатель ускорения ошибки рассогласования. Дифференцирующая составляющая предсказывает отклонения регулируемого параметра в будущем и противодействует этому отклонению. Как правило, она компенсирует запаздывания воздействия регулятора на объект и повышает устойчивость системы.

С учетом временной дискретности регулятора дифференцирующую составляющую можно вычислить так:

D(t) = K d * (e(t) - e(t -1))

Она показывает, насколько изменилось значение ошибки рассогласования за одну временную единицу дискретности регулятора.

Регуляторов, состоящих из единственного дифференцирующего звена, не бывает.

Главная задача дифференцирующего звена в ПИД регуляторе – повышение устойчивости.

Настройка ПИД регулятора.

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

О качестве регулирования судят по переходной характеристике регулятора. Т.е. по графику изменения регулируемого параметра во времени.

К традиционным пунктам последовательности настройки ПИД регулятора я бы добавил, что, прежде всего, надо определиться какие критерии качества регулирования предпочтительнее.

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

Составляющие ПИД регулятора настраиваются отдельно.

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

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

Благодаря высоким характеристикам и универсальности ПИД регуляторы широко применяются в системах автоматизации производства.

В следующем уроке будем разрабатывать ПИД регулятор температуры.

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

Реальный старт в познании аппаратно-программных средств построения простых систем автоматики. Она очень проста в освоении и не требует почти никаких предварительных условий, кроме пытливого ума.

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

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

В любом случае, пользователь получит хорошее представление о программировании на C. Это отличная отправная точка.

Что нужно знать прежде, чем начинать работать с Ардуино?

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

Что нужно еще помнить? Светодиоды не загораются, если установлены с неправильной полярностью. Установленные диоды в обратном направлении могут привести к короткому замыканию. Статическое электричество рук может повредить или уничтожить интегральные схемы и транзисторы.

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

Как начать проектировать систему управления 3-х фазным асинхронным мотором?

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

Почему люди используют Arduino для управления трехфазным асинхронным мотором?

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

Наиболее эффективно выполняется регулировка вращения электродвигателя методом изменения частоты сети питания. Самое простое, это сделать посредством на микроконтроллере.

Arduino - торговая марка аппаратно-программных средств построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей.

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

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

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

В этом заключается основной принцип взаимодействия между электронными устройствами, движком и платой.

Преимущества применения частного преобразователя на микроконтроллере Arduino

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

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

Со школьной скамьи известно простое уравнение:

Мощность = крутящий момент х угловая скорость.

Для конкретной конфигурации мотора мощность – величина постоянная. Так как угловая скорость увеличивается, крутящий момент уменьшается. Таким образом, крутящий момент больше на низких оборотах, и наоборот.

За счет использования Arduino, таким образом, можно замедлить мотор насоса до 50%, и все равно прокачивать большой объем воды, и образом сэкономить более 50% от необходимого электричества. Экономия будет просто астрономической при частичном или регулярном использовании преобразователя.

Управление оборотами однофазного асинхронного двигателя с помощью Arduino

Для начала необходимо попытаться больше узнать про особенности двигателя. Они бывают разные и способы управления ими тоже разные.

Существует три способа регулирования частоты вращения асинхронного мотора:

  • изменением скольжения (только двигатели с фазным ротором);
  • изменением числа пар полюсов;
  • изменением частоты источника питания.

Частотник нужен для обеспечения нормального управления процессами, которые требуют регулирования. Пускатели (УПП, софт-стартеры) уменьшают ударные нагрузки от сетевого напряжения с помощью фазо-импульсного (ФИУ) способа подачи питания на электродвигатель. Словно диммер, они обеспечивают плавное нарастание тока потребления электродвигателя и препятствуют развитию КЗ в питающей сети при пуске.

После разгона двигателя от УПП, двигатель просто полностью переходит на питание от сети, так как УПП синхронизировано с сетью. Использовать ФИУ для полноценного управления электродвигателем не получится, лишь в отдельных случаях это может «прокатить».

Если ПЧ для вас дорогое удовольствие, то можно попробовать классический метод регулировки подачи воздуха – управление шиберной задвижкой от сервопривода. Здесь уже упор делается на механику. Собственно сам электродвигатель при таком способе всегда будет работать в номинале.

Инженерно-техническое творчество

Как сделать частотный преобразователь своими руками? Можно прошагать весь Интернет для того чтобы найти лучшие источники информации по теме поделок и не найти ни одного конкретного ответа на свой вопрос, так как каждый проект требует разных компонентов, но есть общий принцип проектирования. Вот он вам пригодится.

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

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

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

Вам нужно будет сделать анализ цепи для определения необходимых компонентов вашей спецификации, включая мин./макс. расчетов по допускам и температуре. На основании исходных данных электродвигателя составляется блок-схема и подбираются электронные компоненты. В качестве примера представляем перечень основных элементов самодельного электропривода5-200Гц (10-400Гц):

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

В итоге у вас получится макет-тренажёр.

Следует убедиться, что двигатель надежно установлен, дабы он не ринулся «гулять». Тестирование собранного макета покажет, насколько схема позволит вам набрать скорость электродвигателя, повернуть всё вспять или остановить систему. Вы можете использовать переключатели для этого тренажера. Будьте готовы к тому, что придётся переделывать систему. Только не стоит изобретать колесо. Мудрость– это правильно суметь воспользоваться тем, что другие освоили или даже усовершенствовать чужое изобретение.

Попробуйте разные компоненты в цепи. Используйте мультиметр, чтобы получить результаты. Через какое-то время вы сможете убежденно сказать, почему вы используете резистор 2 Вт вместо 0,25 Вт.

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

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

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

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

Заключение

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

  • плавный пуск электродвигателя;
  • энергосбережение;
  • гладкое течение процесса.

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

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

Если захотите получить уйму опыта то можете попробовать самому сделать схему управления двигателем, ГУГЛ в помощь. Тема очень непростая, тут и электроника и программирование, даже математика будет встречаться.Как правило, кто занимается этой темой серьёзно, схемой вряд ли поделятся. Одно можно сказать, освоив эту тему, вы уже не будете считать себя новичком в электронике и программировании микроконтроллеров.

24.02.2016


Хит продаж

Позволяет управлять двигателями без потери мощности.Обязательным условием при этом является наличие таходатчика (тахогенератор) на электродвигателе, который позволяет обеспечить обратную связь мотора с платой регулировки, а именно с микросхемой. Если говорить более простым языком, что бы было понятно всем, происходит примерно следующее. Мотор вращается с каким-то количеством оборотов, а установленный таходатчик на валу электромотора эти показания фиксирует. Если вы начинаете нагружать двигатель, частота вращения вала естественно начнет падать, что так же будет фиксировать таходатчик. Теперь рассмотрим дальше. Сигнал с этого таходатчика поступает на микросхему, она видит это и дает команду силовым элементам, добавить напряжение на электромотор.Таким образом, когда вы надавили на вал (даете нагрузку), плата автоматически прибавила напряжение и мощность на этом валу возросла. И наоборот, отпусти вал двигателя (сняли с него нагрузку), она увидела это и убавила напряжение. Таким образом обороты остаются не низменными, а момент силы (крутящий момент)постоянным. И самое что важное, вы можете регулировать частоту вращения ротора в широком диапазоне, что очень удобно в применении и конструировании различных устройств. Поэтому этот продукт, так и называется "Плата регулировки оборотов коллекторных двигателей без потери мощности".

Но мы увидели одну особенность, что эта плата применима только для коллекторных электродвигателей (с электрическими щетками). Конечно такие моторы в быту встречаются намного реже чем асинхронные. Но они нашли широкое применение в стиральных машинах автомат. Вот именно по этому была изготовлена эта схема. Специально для электродвигателя от стиральной машины автомат. Их мощность достаточно приличная, от 200 до 800 ватт. Что позволяет достаточно широко применить их в быту.

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

Отвечая на вопрос - Куда можно применить двигатель от стиральной машины? Был сформирован некоторый список. Самодельный токарный станок по дереву; Гриндер; Электропривод для бетономешалки; Точило; Электропривод для медогонки; Соломорезка; Самодельный гончарный круг; Электрическая газонокосилка; Дровокол и много другое где необходимо механическое вращение каких либо механизмов или предметов. И во всех этих случаях нам помогает эта плата "Регулировки оборотов электродвигателей с поддержанием мощности на TDA1085".


Краш-тест платы регулировки оборотов

Позволяет управлять двигателями без потери мощности.Обязательным условием при этом является наличие таходатчика (тахогенератор) на электродвигателе, который позволяет обеспечить обратную связь мотора с платой регулировки, а именно с микросхемой. Если говорить более простым языком, что бы было понятно всем, происходит примерно следующее. Мотор вращается с каким-то количеством оборотов, а установленный таходатчик на валу электромотора эти показания фиксирует. Если вы начинаете нагружать двигатель, частота вращения вала естественно начнет падать, что так же будет фиксировать таходатчик. Теперь рассмотрим дальше. Сигнал с этого таходатчика поступает на микросхему, она видит это и дает команду силовым элементам, добавить напряжение на электромотор.Таким образом, когда вы надавили на вал (даете нагрузку), плата автоматически прибавила напряжение и мощность на этом валу возросла. И наоборот, отпусти вал двигателя (сняли с него нагрузку), она увидела это и убавила напряжение. Таким образом обороты остаются не низменными, а момент силы (крутящий момент)постоянным. И самое что важное, вы можете регулировать частоту вращения ротора в широком диапазоне, что очень удобно в применении и конструировании различных устройств. Поэтому этот продукт, так и называется "Плата регулировки оборотов коллекторных двигателей без потери мощности".

Но мы увидели одну особенность, что эта плата применима только для коллекторных электродвигателей (с электрическими щетками). Конечно такие моторы в быту встречаются намного реже чем асинхронные. Но они нашли широкое применение в стиральных машинах автомат. Вот именно по этому была изготовлена эта схема. Специально для электродвигателя от стиральной машины автомат. Их мощность достаточно приличная, от 200 до 800 ватт. Что позволяет достаточно широко применить их в быту.

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

Отвечая на вопрос - Куда можно применить двигатель от стиральной машины? Был сформирован некоторый список. Самодельный токарный станок по дереву; Гриндер; Электропривод для бетономешалки; Точило; Электропривод для медогонки; Соломорезка; Самодельный гончарный круг; Электрическая газонокосилка; Дровокол и много другое где необходимо механическое вращение каких либо механизмов или предметов. И во всех этих случаях нам помогает эта плата "Регулировки оборотов электродвигателей с поддержанием мощности на TDA1085".


Краш-тест платы регулировки оборотов

Двигатели есть практически в каждом роботе. В одних роботах они приводят в действие колеса, заставляя машину перемещаться в нужном направлении. В других — двигатели крутят пропеллеры, создавая вертикальную тягу для полета. Двигатели позволяют вращаться суставам промышленного робота-манипулятора, и перемещают каретку 3D-принтера. В общем, без хорошего двигателя робота не сделать.

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

На этом уроке мы разберем, как управлять двигателем постоянного тока (DC Motor). Двигатели этого типа части применяются в роботах на колесных и гусеничных платформах. И начнем мы с самого простого способа управления.

1. Транзистор

Каждый начинающий робототехник сталкивается с проблемой подключения двигателя к микроконтроллеру. Пройдя кажется, что с двигателем можно поступить точно также: подключить его к цифровым выводам Ардуино , а затем включать и выключать по программе. Но не тут-то было. Даже небольшой двигатель, часто используемый в разного рода игрушках, для своей работы требует ток силой от 200 мА до 1 Ампера. А цифровой выход Arduino может дать нам только 20мА. Большинству мощных двигателей требуется напряжение более 5 Вольт, привычных для Ардуино. Распространены двигатели на 12, на 24 и на 48 Вольт. Другими словами, Ардуино очень слаба для прямого управления двигателями. Нужен какой-то мощный посредник!

Самый простой посредник — это транзистор. Подойдут и полевые транзисторы, и биполярные, работающие в режиме ключа. Ниже представлена схема управления двигателем при помощи биполярного NPN транзистора.

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

В цепи обязательно нужно поставить защитный диод, например 1N4001 или 1N4007. Этот диод не даст сгореть транзистору и контроллеру в момент остановки двигателя, когда ЭДС самоиндукции создаст на обмотках скачок напряжения.

В этой схеме можем использовать, например, NPN транзистор 2N2222A. Этот биполярный транзистор может управлять током до 1А и напряжением до 40В, так что его можно вполне использовать для небольших моторов. Российский аналог данного транзистора — КТ315.

С помощью одного транзистора мы можем включать и выключать двигатель постоянного тока в одном направлении. Но колесный робот должен передвигаться и в одну сторону, и в другую. Что делать? Нужен более продвинутый драйвер.

2. H-мост

Составив транзисторы определенным образом, мы получим устройство для управления вращением двигателя в обе стороны. Такое устройство называется H-мост . Вот так выглядит H-мост на биполярных транзисторах:


INA и INB на рисунке — это вход слабых управляющих сигналов. В случае Ардуино, на них необходимо подавать либо 0 (земля) либо +5В. VCC — это питание двигателей, оно может быть во много раз выше напряжения управляющего сигнала. GND — это земля, общая для Ардуино и H-моста.

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

3. Микросхема драйвера L293D

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


Микросхема представляет собой два H-моста, а значит можно управлять сразу двумя двигателями. Каждый мост снабжен четырьмя защитными диодами и защитой от перегрева. Максимальный ток, который может передать L293D на двигатель — 1.2А. Рабочий ток — 600мА. Максимальное напряжение — 36 В.

4. Подключение

Микросхема L293D имеет DIP корпус с 16-ю выводами. Схема выводов ниже.

Помним, что отсчет выводов ведется против часовой стрелки и начинается от выемки в корпусе микросхемы.

  • +V — питание микросхема, 5В;
  • +Vmotor — питание двигателей, до 36В;
  • 0V — земля;
  • En1, En2 — выводы включения/выключения H-мостов;
  • In1, In2 — управляющие выводы первого H-моста;
  • Out1, Out2 — выводы для подключения первого двигателя;
  • In3, In4 — управляющие выводы второго H-моста;
  • Out3, Out4 — выводы для подключения второго двигателя.

Выводы En1 и En2 служат для отключения или включения мостов. Если мы подаем 0 на En, соответствующий мост полностью выключается и двигатель перестает вращаться. Эти сигналы пригодятся нам для управления тягой двигателя при помощи ШИМ сигнала.

Схема подключения к Ардуино Уно

Драйвер L293D In1 In2 In3 In4 En1 En2 V+ Vmotor+ 0V
Arduino Uno 7 8 2 3 6 5 +5V +5V GND

Для пример, подключим по этой схеме всего один двигатель. Задействуем выводы драйвера In3, In4 и En2. Принципиальная схема подключения будет выглядеть следующим образом:


Внешний вид макета


5. Программа

Напишем простую программу, которая будет вращать двигатель, меняя направление каждую секунду.

Const int in3 = 2; const int in4 = 3; const int en2 = 5; void setup() { pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(en2, OUTPUT); analogWrite(en2, 255); } void loop() { digitalWrite(in3, LOW); digitalWrite(in4, HIGH); delay(1000); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); delay(1000); }

Функция analogWrite с помощью ШИМ сигнала управляет мощностью двигателя. В этой программе мы командуем драйверу вращать двигатель с максимальной скоростью, что соответствует ШИМ сигналу — 255. Здесь следует отметить, что уменьшение ШИМ сигнала в два раза не даст в два раза меньшую скорость. Скорость и тяга двигателей постоянного тока зависят от входного напряжения нелинейно.

Теперь усложним программу. Будем кроме направления менять еще и мощность.

Const int in3 = 2; const int in4 = 3; const int en2 = 5; void setup() { pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(en2, OUTPUT); } void loop() { digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(en2, 150); delay(2000); analogWrite(en2, 255); delay(2000); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(en2, 150); delay(2000); analogWrite(en2, 255); delay(2000); }

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

Задания

Теперь, когда стало немного понятнее как управлять обычными двигателями постоянного тока, попробуем выполнить несколько заданий на базе самого простого робота на двух колесах.

  1. Собрать драйвер на основе одного NPN транзистора, и вращать с помощью него мотор.
  2. Управлять сразу двумя моторами при помощи L293D, передавая на них разную мощность.
  3. Собрать колесного робота, и заставить его двигаться по окружности.
  4. Заставить колесного робота двигаться по спирали.

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

В данной статье рассматривается наиболее простой способ подключения мотора постоянного тока к Arduino.

Введение

Моторы постоянного тока нельзя подключать напрямую к Arduino. Это обусловлено тем, что пины не способны выдавать ток более 40 мА. Мотору же, в зависимости от нагрузки, необходимо несколько сотен миллиампер. Потому возникает потребность увеличения мощности. Делается это, как-правило, с помощью транзисторов.

В статье «Транзисторы » можно ознакомиться с основными типами транзисторов и их принципами работы.

Так же рекомендуется посмотреть: Видеоуроки по Arduino, 5-я серия - Моторы и транзисторы . В данном уроке Джереми Блюм рассказывает о подключении мотора постоянного тока к Arduino через биполярный транзистор.

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

Мы рассмотрим вариант взаимодействия с полевым транзистором. Принципы подключения мотора будут разобраны на конкретном железе: DC-мотор , плата Arduino , N-канальный полевой транзистор , резистор на 10 кОм (R 1 ), резистор на 220 Ом (R 2 ).

Вы же в своих экспериментах вольны использовать то, что есть в наличии. Важны лишь 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.

На чём данная статья подходит к завершению. Теперь вы смело можете использовать моторы постоянного тока в своих проектах!