Arduino и двигатели||Arduino-diy.com
Одно из самых интересных в хобби-электронике – это использование двигателей для «оживления» ваших проектов.
Однако добавление мотора в ваш проект может оказаться непростой задачей, особенно, если вы до этого с приводами не работали.
Данная статья даст вам понимание принципов работы двигателей различных типов и пояснит многие необходимые нюансы и их особенности.
Принцип работы двигателей
Перед тем как разбираться, как именно моторы работаю, давайте сосредоточимся на том, для чего они используются. Моторы используют электромагнитные силы для обеспечения движения, преобразования электроэнергии в механическую.
Магнитные поля создают силу, которая может перемещать объекты. Каждый магнит имеет магнитное поле с северным и южным полюсом. Если вы попробуете приблизить два северных полюса двух магнитов, они будут отталкиваться. То же самое произойдет, если вы попытаетесь приблизить два южных полюса. Если полюса одинаковые, они будут отталкиваться друг от друга. Если же вы приблизите северный полюс одного с южному полюсу другого магнита, они притянутся с определенным усилием. То есть, противоположные полюса притягиваются друг к другу.
Электродвигатель использует свойства магнитов отталкиваться и притягиваться для генерации движения. В обычном электродвигателе два магнита: постоянный и переменный. Переменный магнит называется электромагнитом. Электромагнит создается с помощью пропускания электрического тока через проводник. Постоянный магнит постоянно имеет магнитное поле (северный и южный полюса), а электромагнит генерирует магнитное поле только, когда через него пропускают электрический ток. Сила магнитного поля электромагнита может быть увеличена с помощью повышения тока, проходящего через проводник или методом формирования нескольких обмоток проводника.
В электродвигателе электромагнит устанавливается на ось таким образом, что он может свободно вращаться внутри магнитного поля постоянного магнита. В момент, когда через проводник проходит электрический ток, переменное магнитное поле взаимодействует со статическим магнитным полем магнита, возникают силы отталкивания и притяжения. Это заставляет электромагнит вращаться, возникает движение.
Основные узлы электродвигателя:
— Постоянный магнит (магниты), в случае, когда он установлен неподвижно, называется статором;
— внутри статора есть катушка, которая установлена на оси и вращается, называется ротором.
Двигатели постоянного тока
Двигатели постоянного тока (DC motor) во многом являются самыми простыми электродвигателями. Большинство «щеточных» двигателей работают одинаково. Есть ротор и статор. Есть магниты на статоре и катушка на роторе с магнитным полем, которое генерируется с помощью подачи на нее силы тока. Есть щетки внутри мотора, которые заставляют двигаться ротор.
При использовании источника постоянного тока, для управления подобным двигателем практически ничего не надо. Скорость его вращения зависит от силы тока, которая поступает на катушки от источника питания к коммутатору.
Для вращения оси двигателя в противоположном направлении, достаточно подключить контакты от источника питания к двигателю наоборот.
Шаговые двигатели
Как и двигатели постоянного тока, шаговые двигатели состоят из ротора и статора. Но, в отличие от других двигателей, ротор шагового двигателя представляет из себя постоянный магнит, который вращается внутри полей, создаваемых электромагнитами. Статор состоит из нескольких катушек, которые расположены в корпусе мотора. Когда ток проходит через катушки, подвижный вал двигателя (который является, по сути, постоянным магнитом) располагается в соответствии с генерируемым электромагнитной катушкой полем. Когда катушки заряжаются в определенной последовательности, вал двигателя выбирает новые положения и, соответственно, начинает вращаться.
Ротор приводится в движение последовательной подачей напряжения на катушки. Шаговый двигатель имеет возможность проворачивать ротор на определенный шаг в зависимости от разрешения импульса.
Шаговые двигатели являются отличным выбором для проектов на Arduino (и не только) по нескольким причинам. Они стоят относительно недорого, у них маленькая погрешность, следовательно – это идеальный выбор для управления с разомкнутой системой управления (без дополнительных датчиков положения рабочего органа). Шаговые двигатели будут обеспечивать заданное положение ротора исключительно в зависимости от поданной силы тока.
Эти двигатели предназначены для вращения в одном и противоположном направлении. Если вы подключите источник питания к контактам шагового двигателя, вал начнет вращаться. Если вы подключите проводники наоборот, он будет вращаться в противоположном направлении. Правда, стоит учесть, что в некоторых шаговых двигателях вращение в противоположную сторону невозможно. Перед его запуском, уточняйте этот момент.
Серводвигатели
Обычные серводвигатели для моделистов используются для поворота и удерживания определенной позиции в диапазоне от 0 до 180 градусов. Благодаря этому они находят широкое применение в робототехнике, приводах позиционирования. В производстве серводвигатели используются в модулях рулевого управления автомобилями, лодками, в механизмах фокусировки современных видеокамер.
В большинстве случаем серводвигатели имеют три провода: питание, земля и сигнал. Обычно провод питания красного цвета, земля – черного или коричневого. Сигнал – желтый, оранжевый или белый.
В серводвигателях, которые, например, используются в системах управления радиоуправляемых машин, электродвигатель подключен к потенциометру. Стандартный приемник/передатчик посылает ШИМ-сигналы на серву. Электроника (небольшая плата-контроллер) внутри серводвигателя, переводит ширину импульса в положение. Когда на серву поступает сигнал к повороту, питание будет подаваться на мотор до тех пор, пока потенциометр не достигнет положения, которое будет соответствовать заданному предварительно через приемник/передатчик.
Сигнал управления является цифровым ШИМ сигналом с частотой 50 Гц. Каждые 20 миллисекунд подается цифровой импульс управления. Продолжительность (ширина) импульса находится в диапазоне от 1.0 миллисекунды до 2.0 миллисекунд. 1.5 – середина диапазона. Большая ширина импульса может использоваться для дополнительного хода, который выходит за нормальный рабочий диапазон. ШИМ (широтно-импульсная модуляция) сигнал иногда называют ШПМ (широтно-позиционная модуляция), хотя это не корректно.
Импульс шириной 1.5 миллисекунды обычно устанавливает серводвигатель в «нейтральное» положение или 90 градусов. Импульс шириной 1.25 миллисекунд может установить его в 0 градусов, а импульс 1.75 миллисекунды в 180 градусов. Физические ограничения и время для различных серводвигателей могут отличаться, но его нейтральное положение всегда соответствует 1.5 миллисекундам.
Вибрационные двигатели
Вибрационные двигатели часто используются в мобильных устройствах для регистрации наличия движения.
Вибрационные моторы по конструктивному исполнению похожи на большинство шаговых двигателей и двигателей постоянного тока. Отличием является то, что на конце ротора установлен эксцентрик. При движении ротора, эксцентрик заставляет механизм внутри корпуса двигателя вибрировать.
Интенсивность вибрации зависит как от размеров двигателя, так и от размеров эксцентрика.
На видео сверху показан мотор, установленный на металлической основе. Обратите внимание, как лист металла совершает волновые движения под действием вибрации вибрационного мотора.
Как выбрать двигатель для проекта
Выбор типа двигателя для вашего проекта зависит от того, что именно вы собираетесь автоматизировать. Если вы хотите установить камеру и обеспесить ее поворот влево-вправо, идеальным выбором будет серводвигатель. Если вы передаете движение на зубчатые колеса с необходимостью обеспечения реверса, лучшим выбором станет шаговый двигатель.
Естественно, отличным выбором для управления вашим двигателем станет плата Arduino или ее клоны. Отличительной позитивной чертой данных плат является то, что их пины могут быть использованы для комплексных проектов, включая дополнительное подключение к двигателям датчиков, систем контроля и т.п.
Дальше в статье приведена информация о том, как можно быстро «оживить» выбранный вами предварительно двигатель с использованием платы Arduino.
Использование шагового двигателя с Arduino
Стоит отметить, что «оживлять» свои проекты с помощью плат Arduino и оболочки Arduino IDE для их программирования очень легко из-за наличия большого количества уже готовых библиотек. Подключение шагового двигателя к плате Arduino отличается от подключения двигателя постоянного тока. Существует специальная библиотека и функция, встроенные в Arduino IDE. Более детально об этом вы можете почитать здесь.
После открытия Arduino IDE, перейдите в меню во вкладку
File -> Examples -> Stepper -> stepper_oneRevolution
Данная программа дает возможность управлять уни- или биполярным шаговым двигателем после его подключения к цифровым пинам 8-11 на плате Arduino. После загрузки скетча на плату Arduino, шаговый двигатель должен сделать один оборот по часовой стрелке, после этого – один поворот против часовой стрелки.
Данный пример – отличное начало. Естественно, вы можете вносить свои коррективы в программу, подстраивая ее под свои задачи. Задержка указывается в миллисекундах, так что если вы не хотите выдерживать паузу между оборотами, можете выставить задержку delay(10). Или, для того, чтобы замедлить вращение можете изменить stepsPerRevolution и присвоить ему значение, например, (1000000).
Изменения скетча зависят от того, что именно вы хотите реализовать. Для лучшего понимания того, как именно происходит обмен данными между шаговым двигателем и платой Arduino, советую поэкспериментировать с другими примерами.
Использование двигателя постоянного тока / вибрационного двигателя с Arduino
В некоторых проектах нет смысла использовать микропроцессоры вроде Arduino. Например, если вы делаете игрушку для ребенка (или взрослого) и хотите установить в нее вибрационный двигатель, гораздо эффективнее и лучше использовать простую кнопку для запуска двигателя.
В таком случае, мотор будет подключатся непосредственно к вашему источнику питания через выключатель, который соединен с позитивным коннектором вашего двигателя.
Использование серводвигателя с Arduino
Так же как и шаговые двигатели, для работы серводвигателей в оболочке Arduino IDE есть встроенная библиотека.
После открытия Arduino IDE, перейдите в меню во вкладку
File -> Examples -> Servo -> Knob
Данная программа обеспечивает управление серводвигателем, который подключен к 9-му ШИМ пину платы Arduino. Потенциометр, в свою очередь, подключен к аналоговому пину 0 и обеспечивает управление положением серводвигателя, посылая напряжение, пропорциональное сопротивлению на пин А0 платы Arduino. Скетч, который «залит» в плату Arduino, интерпретирует сигнал в импульсы, которые посылаются на серводвигатель. Двигатель обеспечивает поворот вала в соответствии с положением «крутилки» потенциометра.
Управление бесколлекторным двигателем, связь по Bluetooth и новое поколение транзисторов в одном проекте от Texas Instruments
Подключение моторчика к Ардуино
Подключение мотора к Ардуино ► потребуется при сборке машинки или катера. Рассмотрим различные варианты подключения коллекторного двигателя к Arduino.
Подключение мотора постоянного тока к Ардуино (коллекторного двигателя) требуется при сборке машинки или катера на микроконтроллере Arduino. Рассмотрим различные варианты подключения двигателей постоянного тока: напрямую к плате, через биполярный транзистор, а также с использованием модуля L298N. В обзоре размещены схемы подключения и коды программ для всех перечисленных вариантов.
youtube.com/embed/O9txCyseY1k?feature=oembed» frameborder=»0″ allow=»accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»/>
Управление двигателем на Ардуино
Коллекторный моторчик может быть рассчитан на разное напряжения питания. Если двигатель работает от 3-5 Вольт, то можно моторчик подключать напрямую к плате Ардуино. Моторы для машинки с блютуз управлением, которые идут в комплекте с редукторами и колесами рассчитаны уже на 6 Вольт и более, поэтому ими следует управлять через полевой (биполярный) транзистор или через драйвер L298N.
Принцип работы и устройство мотора постоянного тока
На схеме показано устройство моторчика постоянного тока и принцип его работы. Как видите, для того, чтобы ротор двигателя начал крутиться к нему необходимо подключить питание. При смене полярности питания, ротор начнет крутиться в обратную сторону. Драйвер двигателей L298N позволяет инвертировать направление вращения мотора fa 130, поэтому его удобнее использовать в своих проектах.
Зачем нужен контроллер ESC
Как мы уже знаем, для функционирования BLDC двигателей необходим какой-нибудь контроллер, который преобразует напряжение постоянного тока от батарейки в последовательность импульсов, подаваемую в определенном порядке на провода (фазы) двигателя. Этот контроллер называется ESC (Electronic Speed Controller – электронный контроллер скорости). Основной обязанностью данного контроллера является правильная подача питания на провода BLDC двигателя чтобы двигатель вращался в нужном направлении. Это осуществляется с помощью считывания обратной ЭДС (back EMF) с каждого провода и подачи питания на катушку в то время когда магнит пересекает ее. Внутри себя контроллер ESC содержит достаточно много разнообразной электроники и при желании вы можете подробно изучить его устройство по соответствующим материалам в сети интернет. Здесь же мы кратко рассмотрим рассмотрим только основные компоненты его конструкции.
Как подключить моторчик к Arduino
Для этого занятия нам потребуется:
Перед выбором способа управления двигателем от Arduino Uno r3, уточните на какое напряжение рассчитан ваш моторчик. Если питание требуется более 5 Вольт, то следует использовать транзистор или драйвер. Распиновка транзисторов может отличаться от приведенного примера (следует уточнить распиновку для своего типа). Драйвер L298N позволит не только включать мотор, но и изменять направление вращения.
Скетч. Подключение мотора напрямую
Подключение мотора к Ардуино напрямую — самый простой вариант включения вентилятора на Arduino или машинки. Команда для включения двигателя не отличается, от команды при подключении светодиода к микроконтроллеру. Функция digitalWrite включает/выключает подачу напряжения на цифровой порт, к которому подключен двигатель постоянного тока. Соберите схему и загрузите программу.
Пояснения к коду:
Скетч. Подключение мотора через транзистор
Подключение мотора через транзистор к Ардуино потребуется, если двигатель никак не хочет включаться от платы напрямую, то следует использовать порт 5 Вольт на микроконтроллере или внешний источник питания. Транзистор будет играть роль ключа, замыкая/размыкая электрическую цепь. Сам транзистор управляется цифровым портом. Соберите схему, как на картинке и загрузите программу.
Подключение FA-130 мотора постоянного тока — Motor DC Arduino
Пояснения к коду:
Скетч. Подключение мотора через драйвер
Подключение мотора к Ардуино через драйвер L298N или Motor Shield L293D позволит менять направление вращения ротора. Но для использования данных модулей потребуется установить соответствующие библиотеки для Ардуино. В примере мы использовали схему подключения двигателя с помощью модуля L298N. Соберите схему, как на картинке ниже и загрузите следующий скетч с использованием.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы рассмотрим только его основные фрагменты.
Для управления BLDC двигателем мы будем формировать ШИМ сигнал с частотой 50 Гц и изменяемым от 0 до 100% коэффициентом заполнения. Значение коэффициента заполнения будет управляться с помощью потенциометра. То есть, вращая потенциометр, мы будем управлять скоростью вращения двигателя. Как уже указывалось, управление BLDC двигателем очень похоже на управление сервомотором с помощью ШИМ 50 Гц, поэтому в данном случае мы будем использовать ту же самую библиотеку, которую использовали для управления сервомотором. Если вы начинающий в изучении платформы Arduino, то перед дальнейшим прочтением данной статьи рекомендуем вам изучить принципы формирования ШИМ сигнала в Arduino и подключение сервомотора к плате Arduino.
ШИМ сигнал можно генерировать только на тех цифровых контактах платы Arduino, которые обозначены символом
. В нашей схеме мы будем управлять контроллером ESC с контакта 9 платы Arduino, поэтому следующей командой мы прикрепим контроллер ESC к этому контакту:
Источник
Обзор бесколлекторных моторов для Arduino
Бесколлекторные моторы (рис. 1) появились сравнительно недавно и были созданы с целью оптимизации электродвигателей постоянного тока. Бесколлекторные моторы питаются трехфазным переменным током. Они эффективно работают в более широком диапазоне оборотов и имеют более высокий КПД. При этом конструкция двигателя проще, в ней нет щеточного узла, который постоянно трется с ротором и создает искры. Поэтому они практически не изнашиваются.
По конструкции бесколлекторные моторы делятся на две группы: inrunner и outrunner. Двигатели inrunner имеют расположенные по внутренней поверхности корпуса обмотки, и вращающийся внутри магнитный ротор. Двигатели outrunner имеют неподвижные обмотки, внутри двигателя, вокруг которых вращается корпус с помещенными на его внутреннюю стенку постоянными магнитами.
Коммутация в бесколлекторном двигателе (БД) осуществляется и контролируется с помощью электроники.
Принцип действия BLDC двигателей
Бесколлекторные электродвигатели постоянного тока (BLDC двигатели) в настоящее время часто используются в потолочных вентиляторах и электрических движущихся транспортных средствах благодаря их плавному вращению. В отличие от других электродвигателей постоянного тока BLDC двигатели подключаются с помощью трех проводов, выходящих из них, при этом каждый провод образует свою собственную фазу, то есть получаем трехфазный мотор.
Хотя BLDC относятся к двигателям постоянного тока они управляются с помощью последовательности импульсов. Для преобразования напряжения постоянного тока в последовательность импульсов и распределения их по трем проводникам используется контроллер ESC (Electronic speed controller). В любой момент времени питание подается только на две фазы, то есть электрический ток заходит в двигатель через одну фазу, и покидает его через другую. Во время этого процесса запитывается катушка внутри двигателя, что приводит к тому, что магниты выравниваются по отношению к запитанной катушке. Затем контроллер ESC подает питание на другие два провода (фазы) и этот процесс смены проводов, на которые подается питание, продолжается непрерывно, что заставляет двигатель вращаться. Скорость вращения двигателя зависит от того как быстро подается энергия на катушку двигателя, а направление вращения – от порядка смены фаз, на которые поочередно подается питание.
Существуют различные типы BLDC двигателей – давайте рассмотрим основные из них. Различают Inrunner и OutRunner BLDC двигатели. В Inrunner двигателях магниты ротора находятся внутри статора с обмотками, а в OutRunner двигателях магниты расположены снаружи и вращаются вокруг неподвижного статора с обмотками. То есть в Inrunner (по этому принципу конструируется большинство двигателей постоянного тока) ось внутри двигателя вращается, а оболочка остается неподвижной. А в OutRunner сам двигатель вращается вокруг оси с катушкой, которая остается неподвижной. OutRunner двигатели особенно удобны для применения в электрических велосипедах, поскольку внешняя оболочка двигателя непосредственно приводит в движение колесо велосипеда, что позволяет обойтись без механизма сцепления. К тому же OutRunner двигатели обеспечивают больший крутящий момент, что делает их также идеальным выбором для применения в электрических движущихся средствах и дронах. Поэтому и в этой статье мы будем рассматривать подключение к платы Arduino двигателя OutRunner типа.
Примечание : существует еще такой тип BLDC двигателей как бесстержневой (coreless), который находит применение в «карманных» дронах. Эти двигатели работают по несколько иным принципам, но рассмотрение принципов их работы выходит за рамки данной статьи.
BLDC двигатели с датчиками (Sensor) и без датчиков (Sensorless). Для BLDC двигателей, которые вращаются плавно, без рывков, необходима обратная связь. Поэтому контроллер ESC должен знать позиции и полюса магнитов ротора чтобы правильно запитывать статор. Эту информацию можно получить двумя способами: первый из них заключается в размещении датчика Холла внутри двигателя. Датчик Холла будет обнаруживать магнит и передавать информацию об этом в контроллер ESC. Этот тип двигателей называется Sensor BLDC (с датчиком) и он находит применение в электрических движущихся транспортных средствах. Второй метод обнаружения позиции магнитов заключается в использовании обратной ЭДС (электродвижущей силы), генерируемой катушками в то время когда магниты пересекают их. Достоинством этого метода является то, что он не требует использования каких либо дополнительных устройств (датчик Холла) – фазовый провод самостоятельно используется в качестве обратной связи благодаря наличию обратной ЭДС. Этот метод используется в двигателе, рассматриваемом в нашей статье, и именно он чаще всего применяется в дронах и других летающих устройствах.
Контроллеры бесколлекторных моторов (ESC регуляторы)
Рис. 3. ESC регуляторы
Задача контроллера состоит в том, что бы передать энергию постоянного тока от аккумулятора к трехфазному бесколлекторному мотору. Для передачи энергии контроллер использует MOSFETы — силовые ключи, которые могут открываться и закрываться за долю секунды. Если мощности одного ключа недостаточно, используется несколько ключей, включенных параллельно. Попеременное включение/выключение фаз поддерживает вращение мотора. За переключением фаз следит микроконтроллер регулятора. Функциональная схема ESC регулятора показана на рис. 4
Рис. 4. Функциональная схема ESC регулятора
Подключение к плате Arduino
Схема подключения бесколлекторного двигателя с ESC-регулятором к плате Arduino показана на рис.5. Для подключения регулятора к плате Arduino используется 2 провода:
Красный провод регулятора является не входом, выходом с напряжением +5В, который можно использовать для питания платы Arduino.
Показания потенциометра будем использовать для управления скоростью мотора.
Рис. 5. Подключение бесколлекторного двигателя с ESC-регулятором к плате Arduino
Для управления регулятором будем использовать Arduino-библиотеку Servo. Минимальные и максимальные значения управляющего сигнала 800 мксек и 2300 мксек.
Содержимое скетча представлено в листинге 1.
После загрузки скетча на плату Arduino видим что мотор не запускается и не реагирует на повороты потенциометра. Регулятор необходимо откалибровать, чтобы он знал минимальные и максимальное значения. Для этого перед подачей питания на регулятор, выставляем потенциометр в максимальное значение. Подаем питание. Слышим «пиканье» двигателя. Переводим потенциометр в минимальное значение, слышим 3 «пика». Регулятор откалиброван. Теперь поворотом потенциометра можем регулировать скорость двигателя.
Работа схемы
Схема подключения BLDC двигателя и контроллера ESC к плате Arduino представлена на следующем рисунке.
Как видите, схема достаточно проста. Контроллеру ESC необходим источник питания с напряжением 12V и током как минимум 5A. Для питания схемы можно использовать адаптер или Li-Po батарейку. Три фазы (провода) BLDC двигателя необходимо подсоединить к трем выходным проводам контроллера ESC – неважно в каком порядке.
Предупреждение : у некоторых контроллеров ESC нет выходных проводов, в этом случае вам необходимо будет припаивать провода от BLDC двигателя к контактам контроллера ESC. Обязательно изолируйте эти оголенные места (пайки) с помощью изоляционной ленты потому что через эти провода возможно протекание достаточно больших токов и любое короткое замыкание может привести к повреждению двигателя и контроллера ESC.
Схема BEC (Battery Eliminator circuit) в контроллере ESC будет самостоятельно обеспечивать (регулировать) постоянное напряжение +5V, поэтому его можно непосредственно использовать для питания платы Arduino. Для управления скоростью вращения двигателя в схеме используется потенциометр, подключенный к контакту A0 платы Arduino.
Внешний вид собранной конструкции показан на следующем рисунке.
Управление щёточными моторами с Arduino
Как вы знаете, никакую нагрузку мощнее светодиода нельзя подключать к Ардуино напрямую, особенно моторчики. Ардуино, да и вообще любой микроконтроллер – логическое устройство, которое может давать только логические сигналы другим железкам, а те уже могут управлять нагрузкой. Кстати, урок по управлению мощной нагрузкой постоянного и переменного тока у меня тоже есть. “Драйвером” мотора могут быть разные железки, рассмотрим некоторые из них.
При помощи двойного модуля реле (или просто двух реле) можно включать мотор в одну или другую сторону, а также выключать:
Купить модуль реле можно на Aliexpress.
Мосфет
Вместо “голого” мосфета можно использовать готовый китайский модуль:
Купить мосфет модуль можно на Aliexpress.
Реле и мосфет
Если объединить реле и мосфет – получим весьма колхозную, но рабочую схему управления скоростью и направлением мотора:
Специальный драйвер
Лучше всего управлять мотором при помощи специального драйвера, они бывают разных форм и размеров и рассчитаны на разное напряжение и ток, но управляются практически одинаково. Рассмотрим основные драйверы с китайского рынка:
Драйвер | Vmot | Ток (пик) | Стоимость | Aliexpress |
L298N | 4-50V | 1A (2A) | 100р | Купить |
MX1508 | 2-9.6V | 1.5A (2.5A) | 20р | Купить |
TA6586 | 3-14V | 5A (7A) | 100р (чип 30р) | Купить, купить, купить чип |
L9110S | 2.5-12V | 0.8A (1.5A) | 50р | Купить |
TB6612 | 4.5-13.5V | 1.2A (3A) | 80р | Купить |
BTS7960 | 5.5-27V | 10A (43A) | 300р | Купить |
Большой | 3-36V | 10A (30A) | 700р | Купить |
Остальные драйверы смотри у меня вот тут. Схемы подключения и таблицы управления:
Помехи и защита от них
Индуктивный выброс напряжения
Мотор – это индуктивная нагрузка, которая в момент отключения создаёт индуктивные выбросы. У мотора есть щетки, которые являются источником искр и помех за счёт той же самой индуктивности катушки. Сам мотор потребляет энергию не очень равномерно, что может стать причиной помех по линии питания, а пусковой ток мотора так вообще сильно больше рабочего тока, что гарантированно просадит слабое питание при запуске. Все четыре источника помех могут приводить к различным глюкам в работе устройства вплоть до срабатывания кнопок на цифровых пинах, наведения помех на аналоговых пинах, внезапного зависания и даже перезагрузки микроконтроллера или других железок в сборе устройства.
Отсечь индуктивный выброс с мотора можно при помощи самого обычного диода, чем мощнее мотор, тем мощнее нужен диод, то есть на более высокое напряжение и ток. Диод ставится встречно параллельно мотору, и чем ближе к корпусу, тем лучше. Точно таким же образом рекомендуется поступать с электромагнитными клапанами, соленоидами, электромагнитами и вообще любыми другими катушками. Логично, что диод нужно ставить только в том случае, если мотор или катушка управляется в одну сторону. Важные моменты:
Помехи от щёток
Искрящиеся щетки мотора, особенно старого и разбитого, являются сильным источником электромагнитных помех, и здесь проблема решается установкой керамических конденсаторов с ёмкостью 0.1-1 мкФ на выводы мотора. Такие же конденсаторы можно поставить между каждым выводом и металлическим корпусом, это ещё сильнее погасит помехи. Для пайки к корпусу нужно использовать мощный паяльник и активный флюс, чтобы залудиться и припаяться как можно быстрее, не перегревая мотор.
Помехи по питанию, просадка
Мотор потребляет ток не очень равномерно, особенно во время разгона или в условиях переменной нагрузки на вал, что проявляется в виде просадок напряжения по питанию всей схемы. Беды с питанием решаются установкой ёмких электролитических конденсаторов по питанию, логично что ставить их нужно максимально близко к драйверу, то есть до драйвера. Напряжение должно быть выше чем напряжение питания, а ёмкость уже подбирается по факту. Начать можно с 470 мкф и повышать, пока не станет хорошо.
Разделение питания
Если описанные выше способы не помогают – остаётся только одно: разделение питания. Отдельный малошумящий хороший источник на МК и сенсоры/модули, и отдельный – для силовой части, в том числе мотора. Иногда ради стабильности работы приходится вводить отдельный БП или отдельный аккумулятор для надёжности функционирования устройства.
Экранирование
В отдельных случаях критичными являются даже наводки от питающих проводов моторов, особенно при управлении ШИМ мощными моторами и управлении мощными шаговиками в станках. Такие наводки могут создавать сильные помехи для работающих рядом чувствительных электронных компонентов, на аналоговые цепи, наводить помехи на линии измерения АЦП и конечно же на радиосвязь. Защититься от таких помех можно при помощи экранирования силовых проводов: экранированные силовые провода не всегда удаётся купить, поэтому достаточно обмотать обычные провода фольгой и подключить экран на GND питания силовой части. Этот трюк часто используют RC моделисты, летающие по FPV.
Как использовать двигатели постоянного тока в Arduino
Ozeki 10
В этом руководстве вы сможете получить некоторую информацию о двигателях постоянного тока Arduino.
Двигатель постоянного тока является самым простым из электродвигателей и используется во всех типах электроники для хобби.
В этом руководстве представлена основная информация о двигателях постоянного тока, а также о том, как их можно подключить.
его на Arduino и как вы можете использовать его с Ozeki 10. Документ также включает
диаграммы и видео, которые помогут вам понять концепцию двигателей постоянного тока. Итак, приступим.
Что такое двигатель постоянного тока Arduino?
Двигатель постоянного тока (двигатель постоянного тока) является наиболее распространенным типом двигателя. двигатели постоянного тока
обычно имеют только два вывода, один положительный и один отрицательный. Если вы соедините эти
два провода напрямую к аккумулятору, двигатель будет вращаться. Если вы поменяете проводников,
двигатель будет вращаться в противоположном направлении.
Как использовать двигатель постоянного тока Arduino?
Для работы с двигателями постоянного тока необходимо подключить три контакта, как на схеме подключения.
показывает это (рис. 1). Один нужно соединить с землей (Gnd), другой с
двигатель к контакту 5V. Третий контакт должен быть подключен к контакту PWM на вашем
Ардуино. С подключенным двигателем постоянного тока теперь вы сможете им управлять. Вы можете настроить
скорость вращения двигателя в диапазоне от 0 до 255.
Схема подключения двигателя постоянного тока Arduino
Рисунок 1 – Схема подключения двигателей постоянного тока Arduino
Как использовать двигатели постоянного тока Arduino в Ozeki
Контроллер двигателя постоянного тока подключает ваши двигатели постоянного тока к программному обеспечению Ozeki. Вы можете подключить до двух двигателей постоянного тока через любую микросхему драйвера двигателя L298N.
Этот чип интегрирован в плату контроллера двигателя постоянного тока LM298, а также в драйвер двигателя постоянного тока Ozeki.
Вы можете изменить направление движения и скорость обоих двигателей с помощью Ozeki.
Электродвигатели должны питаться от внешнего источника питания с максимальным напряжением 36 В.
Чтобы использовать двигатель постоянного тока в Ozeki, вам сначала нужно скачать Ozeki Robot Developer. озэки
Robot Developer установит библиотеки Arduino, необходимые для эффективного использования этого датчика.
Скачать Ozeki Robot Developer
После установки разработчика Ozeki Robot вам необходимо загрузить код управления двигателем постоянного тока.
к вашему Ардуино. Вы можете найти код и инструкции по загрузке на следующих страницах.
Процесс загрузки включает в себя два шага: сначала вам нужно отформатировать EEPROM Arduino,
затем вам нужно загрузить контрольный код. Процедура очень проста, требуется только
несколько секунд.
Загрузите код двигателя постоянного тока в Arduino Uno 9. 0030 Загрузить код двигателя постоянного тока в Arduino Mega 2560
Загрузить код двигателя постоянного тока в Arduino Nano
Загрузить код двигателя постоянного тока в Ozeki Matrix
Загрузить код двигателя постоянного тока в Raspberry Pi
Двигатели Arduino и Ozeki будут обмениваться данными через порт USB с использованием протокола двигателя постоянного тока Ozeki. Этот
Протокол позволяет вам использовать двигатель непосредственно на вашем ПК. Вы сможете управлять этим двигателем через веб-интерфейс.
пользовательский интерфейс или вы сможете общаться с ним с помощью Ozeki Chat. Вы можете прочитать больше об управлении чатом на следующей странице.
Как общаться с двигателем постоянного тока с помощью чата
Важно понимать управление чатом, потому что когда вы строите робота,
способ, которым вы хотите управлять этим двигателем, — это отправка и получение сообщений. если ты
откройте приложение Ozeki Robot Developer, вы увидите, кому вы можете написать C#. Net
программа для работы с этим мотором.
Этапы подключения
- Подключите двигатель постоянного тока к Arduino
- Подключите плату Arduino к компьютеру
- Проверьте COM-порты, чтобы узнать, подключен ли ваш Arduino
- Загрузите пример кода в Arduino
- Откройте https://localhost:9515 в браузере
- Выберите подключение вашего двигателя постоянного тока
- Настройка атрибутов двигателя постоянного тока
- Нажмите «Обновить», чтобы проверить двигатель постоянного тока
Обзор системы
Предлагаемая нами система состоит из двигателя постоянного тока, подключенного к аналоговому порту.
вашего Ардуино. Arduino будет отвечать за чтение данных с этого устройства.
в настоящее время. Мозг системы будет работать на ПК (рис. 2). На ПК Озеки
10 смогут управлять общением. Вы можете легко запустить Ozeki 10 с помощью веб-браузера.
Рис. 2. Конфигурация системы подключения двигателя постоянного тока к ПК с помощью Arduino
Предварительные условия
- 1 или 2 небольших двигателя постоянного тока
- Ozeki 10 установлен на вашем компьютере
- Программируемая плата (Arduino Mega/Nano/Uno, драйвер двигателя постоянного тока Ozeki или Raspberry Pi)
- Если вы не используете драйвер двигателя постоянного тока Ozeki, требуется плата контроллера двигателя постоянного тока LM298
Для подключения Arduino Mega/Nano/Uno, драйвера двигателя постоянного тока Ozeki к компьютеру необходим USB-кабель
Шаг 1.
Подключите двигатели постоянного тока к плате Arduino
Вы можете увидеть, как подключить двигатели постоянного тока.
на любую из следующих досок:
- Ардуино Мега 2560
- Ардуино Нано:
Ваш браузер не поддерживает видео тег.
- Ардуино Уно
- Драйвер двигателя постоянного тока Ozeki
- Малиновый Пи
(Если вы используете Raspberry Pi, перейдите к «Шаг 3»)
После подключения подключите плату к компьютеру!
Шаг 2. Загрузить код в микроконтроллер
(Вот код для загрузки)
Ваш браузер не поддерживает видео тег.
Шаг 3. Запустите Ozeki 10, чтобы попробовать двигатели постоянного тока
Ваш браузер не поддерживает видео тег.
Шаг 4. Настройка двигателей постоянного тока в Ozeki 10
Чтобы иметь возможность настроить ваши двигатели постоянного тока (подключенные к вашему Arduino) в Ozeki 10, который установлен
на вашем компьютере вам необходимо открыть графический интерфейс пользователя (GUI) Ozeki
10. Вы можете открыть графический интерфейс, введя URL-адрес компьютера в свой веб-браузер.
Например, если наш ПК имеет IP-адрес 192.168.1.5, мы бы
введите http://192.168.1.5:9513 в наш веб-браузер.
Шаг 5. Понимание протокола двигателей постоянного тока
Контроллер двигателя постоянного тока может связываться с Ozeki через
следующий протокол.
Каталожные номера:
https://www.dummies.com
https://www.tutorialspoint.com
Дополнительная информация
- Датчики и приводы Arduino
- Как использовать аналоговый датчик в Arduino
- Как использовать кнопочный контроллер в Arduino
- Как использовать зуммер в Arduino
- Как использовать датчик dht в Arduino
- Как использовать диспетчер EEPROM в Arduino
- Как использовать датчик гироскопа в Arduino
- Как использовать менеджер идентификаторов в Arduino
- Как использовать ИК-трансивер в Arduino
- Как использовать аналоговый джойстик в Arduino
- Как использовать клавиатуру в ардуино
- Как использовать ЖК-дисплей в Arduino
- Как использовать считыватель NFC в Arduino
- Как использовать оптический вентиль в Arduino
- Как использовать регистр в ардуино
- Как использовать приемопередатчик RF 433 МГц
- Как использовать приемопередатчик RF 2,4 ГГц
- Как использовать светодиод RGB в Arduino
- Как использовать датчик RGB в Arduino
- Как использовать поворотный энкодер в Arduino
- Как использовать серводвигатель в Arduino
- Как использовать шаговый двигатель в Arduino
- Как использовать переключатель в ардуино
- Как использовать датчик температуры в arduino
- Как использовать таймер в ардуино
- Как использовать ультразвуковой датчик в Arduino
Зуммер | Arduino Mega |
Как подключить двигатель к Arduino?
Spis treści:
- 1 С чего начать?
- 2 Какой двигатель для Arduino?
- 3 Подготовка Н-образного моста
- 4 Как подключить двигатель к Arduino?
Время чтения: < 1 мин.
Arduino — отличный пример оборудования, к которому можно подключить один или несколько двигателей, а затем управлять ими по своему усмотрению. Но как это сделать?
С чего начать?
Прежде всего, в основе этого типа операции лежит использование соответствующего Н-моста . Это схема, состоящая из подходящей комбинации транзисторов — в магазинах электроники можно найти множество готовых интегральных схем в удобных корпусах (выполненных по технологии THT или SMD). Использование готового решения — самый простой и быстрый способ, но для опытных электронщиков также возможна сборка собственного варианта Н-моста из транзисторов.
Вторым важным элементом является подготовка надлежащего источника питания . Все может быть основано на одном источнике, но гораздо лучшим решением будет подготовить источник питания для логической системы и аккумуляторы для самого двигателя. Два отдельных источника питания — это способ сделать всю систему более стабильной и безопасной. Также приобретите набор резисторов разного сопротивления и несколько конденсаторов (электролитических и керамических).
Плата Arduino с контактной пластиной
Для начала также пригодится набор инструментов , таких как контактная пластина и соединительные кабели . Это позволит вам легко и быстро модифицировать схему любым удобным для вас способом. Если это так, убедитесь, что ваша плата Arduino имеет правильную распиновку, чтобы вы могли легко подключиться к ней с помощью проводов. Полоса с золотым контактом, припаянная непосредственно к макетной плате, всегда работает лучше всего. С таким подготовленным оборудованием вы можете легко подключить двигатель к Arduino.
Какой двигатель для Arduino?
Чтобы узнать, как подключить двигатель, сначала необходимо точно знать какой двигатель вы собираетесь подключить . Наиболее распространенные двигатели, используемые в электронике, представляют собой обычные двигатели постоянного тока, и это будет служить примером. Вы можете использовать его, например, для управления отдельными суставами шагающего мобильного робота.
ПРОВЕРКА В МАГАЗИНЕ
Подготовка Н-моста
Используя Н-мост, вы сможете легко контролировать не только скорость вращения вала двигателя , но и его направление 15. После того, как вы выбрали двигатель постоянного тока, вы должны знать, какой максимальный ток он может генерировать (максимальная нагрузка). Исходя из этого, вы сможете выбрать подходящий Н-мост (с соответствующей пропускной способностью по току). Также подумайте, сколько двигателей вы хотели бы контролировать одновременно в вашем целевом проекте. Если вы выберете готовую схему H-моста, вы, вероятно, сможете использовать, например, двойные мосты (заключенные в один корпус).
Вместе со схемой вы скорее всего получите схему выводов от схемы (или она будет доступна на сайте производителя). Там вы найдете контакты, отвечающие за землю (все должны быть подключены к GND), контакты, к которым вы должны подключить источник питания, контакты, отвечающие за управление скоростью двигателя, и контакты, отвечающие за направление вращения двигателя. вал двигателя. Теперь, когда вы знаете расположение всех контактов, вы можете разместить H-мост в центре печатной платы.
Как подключить двигатель к Arduino?
Следующим шагом необходимо подключить все пины, отвечающие за массу, к «минусу» на контактной плате. Далее подключите все пины, отвечающие за управление отдельными параметрами двигателя, затем подключите выводы от H-моста напрямую к двигателю и подключите Arduino к H-мосту. Исключив возможные ошибки на этом этапе, можно защитить H-мост, моторы и самое главное плату Arduino от повреждений .
ПРОВЕРКА В МАГАЗИНЕ
Убедившись в правильности подключения, можно одинаково аккуратно подключить питание к моторам (например от 9В батареи), а затем к логике (например от компьютера через USB-кабель или от отдельного источника питания). Вы сможете управлять двигателем, правильно запрограммировав плату Arduino . Например, вы можете программно связать направление и скорость двигателя с подключенным потенциометром, который будет придавать двигателю различную скорость и направление пропорционально степени поворота.