Существует множество способов, чтобы подключить малые электродвигатели к Arduino. И самым популярным, а также самым простым из них является подключение двигателя через мост типа H либо через транзисторы. Подключая электродвигатель к платформе Arduino, следует помнить о том, что подключение не должно осуществляться непосредственным способом, поскольку это может привести к повреждению программной платформы.
Зачем электродвигатели подключают к Arduino
Внедрение электродвигателей в создаваемые контуры и управление при помощи Arduino открывает много разнообразных возможностей. Основной целью подключения двигателей является возможность запуска в движение элементов создаваемых систем, создание транспортных средств и даже роботов. Благодаря Arduino, возможно управление как направлением вращения вала двигателя, так и скоростью вращения.
Подключение двигателя к Arduino должно осуществляться опосредствованно
Непосредственное подключение программной платформы не только грозит перегоранием выходного порта Arduino, но также ограничивает возможность управления, созданной таким образом системой, до минимума.
Arduino через каждый выходной порт может подавать ток силой около 20 мA, а каждый, даже самый маленький электродвигатель, доступный на рынке, для правильного функционирования требует от десятикратно до тысячекратно большего потребления. Поэтому необходимо подключение электродвигателя к Arduino опосредствованным способом, через соответствующий контроллер, который урегулирует силу подаваемого тока.
Какие двигатели можно подключить к Arduino и на что следует обращать внимание в процессе их выбора
Программная платформа Arduino обеспечивает включение всех низкоамперных электродвигателей, представленных на рынке. К Arduino можно подключить:
- бесщёточные двигатели BLDC с коммутатором,
- щёточные двигатели DC, которые являются самыми простыми электродвигателями с питанием током DC,
- вибрационные двигатели, которые посредством движения вала генерируют вибрацию,
- шаговые двигатели, обеспечивающие высокую точность управления посредством импульсного движения вала,
- туннельные приводы EDF, состоящие из ротора и двигателя с корпусом,
- линейные серводвигатели, обеспечивающие линейное движение,
- сервомеханизмы.
Параметры, на которые следует обратить внимание при выборе электродвигателя для Arduino, зависят от типа двигателя.
Несмотря на это, среди наиболее существенных из них следует указать:
- сила потребляемого тока [A]: параметр характеризует силу тока, который требуется для правильного запуска двигателя;
- номинальное напряжение [В]: это значение напряжения, на котором будет функционировать система; стандартно системы с Arduino работают на напряжении 12В;
- крутящий момент [Нм]: ключевой параметр электродвигателя (и не только), определяющий его мощность; чем больший крутящий момент генерирует двигатель, тем он мощнее;
- скорость вращения [об./мин]: параметр, определяющий скорость вращения вала двигателя,
- масса и габариты [г и мм]: эти параметры являются существенными особенно при создании лёгких систем, в которых принимаются во внимание размеры двигателя,
- разрешающая способность [количество шагов]: этот параметр касается исключительно шаговых двигателей и определяет точность, с которой может двигаться вал шагового двигателя,
- линейная скорость [мм/с]: этот параметр касается исключительно линейных двигателей и характеризует скорость, с которой двигатель может выдвигать вал в линейном направлении.
Как подключить электродвигатель к Arduino
Зная виды двигателей, которые можно подключить к Arduino, и параметры, на которые следует обратить внимание во время их подбора, мы можем приступить к работам по подключению. Легче всего подключить стандартные щёточные двигатели DC, вибрационные двигатели и сервомеханизмы. Несколько сложнее подключаются линейные серводвигатели, шаговые двигатели и насосы.
Щёточные двигатели DC и вибрационные двигатели являются наиболее простыми, они чаще всего бывают представлены в системах и одновременно являются самыми лёгкими в подключении электродвигателями. Стандартно к программной платформе подключаются двигатели с силой тока 1-5A, работающие на напряжении 5-9В. Для более мощных двигателей с большими параметрами применяются специальные контроллеры.
Щёточные двигатели DC и вибрационные двигатели можно подключить при помощи системы с транзистором либо через мост типа H. Первый метод позволяет осуществлять управление только скоростью вращения вала двигателя, а метод подключения через мост обеспечивает управление как скоростью, так и направлением вращения вала. Поэтому также следует подобрать соответствующий метод подключения согласно собственным потребностям и целям.
Подключение щёточного двигателя DC и вибрационного двигателя через транзистор
Подключение щёточного двигателя DC и вибрационного двигателя при помощи транзистора является очень простым и требует только трёх компонентов: ограничивающего резистора, выпрямительного диода и транзистора. В системе можно использовать, например: выпрямительный диод 1N4148 или 1N4007, транзистор 2N2222 и ограничивающий резистор с сопротивлением 10 кОм. Работы по подключению следует начать с выбора контакта Arduino с соответствующим выходным напряжением.
Контакт Arduino подсоединяем на контактной плате к резистору и в самом конце — к базе транзистора. Эмиттер транзистора мы заземляем, а его коллектор подключаем к двигателю через параллельно подключённый выпрямительный диод. С другой стороны двигатель следует подключить к питанию. Резистор в схеме ограничивает силу тока, который поступает к транзистору, а выпрямительный диод ограничивает риск возникновения обратных токов и выбросов (скачков напряжения), которые имеют место при включении системы. Обратные токи и пики могли бы привести к повреждению программной платформы.
Подключение через мост типа H
Этот способ подключения гарантирует возможность управления не только скоростью, но и направлением вращения вала двигателя. Насколько в случае вибрационных двигателей управление направлением вращения их вала обычно является необоснованным (поскольку они будут генерировать вибрацию вне зависимости от направления вращения вала), настолько управление валом щёточного двигателя DC обычно является ключевой функциональностью системы.
Более того, через мост типа H можно также подключить линейный серводвигатель, если его конструкция основывается на двигателе DC. Мосты типа H можно самостоятельно построить из нескольких транзисторов либо приобрести готовые системы. Их основным заданием является приём сигнала, который посылается Arduino, и трансформация его параметров на выходе моста. Если мы хотим подключить щёточные двигатели DC, вибрационные либо линейные двигатели, необходимо оснастить его ограничивающим резистором (например, с сопротивлением 10 кОм), переключателем и готовой системой моста типа H (например, SN754410, L29NE или L293D).
Мост типа H следует подобрать к системе в плане интенсивности потребляемого двигателем тока во время его максимальной нагрузки – этот параметр носит название токовой эффективности моста. Каждый мост типа H может характеризоваться несколько отличным строением и выводом контактов, поэтому перед тем, как приступить к работам по подключению, следует верифицировать схему вывода контактов в техническом описании моста. Чтобы выяснить способ подключения электродвигателя к Arduino, мы используем мост L293D. Мост L293D оснащен следующими контактами:
- контакт 1: отвечает за управление скоростью двигателя,
- контакты 2 и 7: отвечают за направление вращения вала двигателя,
- контакт 8: питание VC до 36 В,
- контакт 9: может управлять скоростью второго подключённого двигателя,
- контакты 10 и 15: могут управлять направлением вращения вала второго подключённого двигателя,
- контакт 16: питание VCC до 5 В,
- контакты: 4, 5, 12 и 13: заземляемые (подключаемые к земле (GND)).
Первым шагом подключения является размещение моста типа H на контактной плате. После этого следует подключить массу моста к питанию, а затем подключить питание двигателя (или двигателей). Предпоследним этапом работ по подключению является электропитание логической системы управления мостом, последним этапом — подключение контактов, отвечающих за управление работой двигателя (либо двигателей).
Перед началом подключения следует помнить о том, что система моста типа H с электрическим двигателем может быть запитана от одного либо двух напряжений. Если мы запитаем её от одного напряжения, необходимо будет использование источника питания, имеющего соответствующую хорошую фильтрацию, которая ограничит риск возникновения помех.
Лучшим, более популярным и безопасным решением является питание системы от двух источников. Тогда работа двигателя будет запитана от моста, а логическая часть моста (управляющая рабой двигателя) будет запитана от другого независимого источника. Поэтому 5-вольтный контакт Arduino стоит подключить к логичной части моста, а остальное питание к контактам моста, которые отвечают за управление двигателем.
Подключение сервомеханизмов
Подключение сервомеханизмов является чрезвычайно простым, поскольку их выходы всегда одинаковы. Подключение сервомеханизма к Arduino следует начать с подключения массы питания двигателя и питания системы (обычно это два 5-вольтных источника питания).
Следующим шагом является подключение выхода PWM Arduino (обозначенного знаком «~») к контакту, который управляет сервомеханизмом. После проведения работ по подключению, следует только записать соответствующую библиотеку. Подключение шаговых двигателей через выделенный контроллер Шаговые двигатели подключаются к Arduino опосредствованно через специальные контроллеры. Эти элементы следует подобрать друг к другу с учётом максимальной интенсивности тока и номинального напряжения, а сам контроллер должен соответствовать как напряжению питания двигателя, так и напряжению питания системы.
Токовая эффективность контроллера должна быть выше, чем максимальная интенсивность тока, потребляемого двигателем. Для потребностей текста следует исходить из того, что необходимо подключить к Arduino шаговый двигатель с напряжением 12В. К нему подходит, например, контроллер A4988.
Сначала мы устанавливаем контроллер на контактной плате, после чего контакты GND и VDD подключаем к питанию контроллера (3-5,5В). Контакты GMD и VMOT подключаются к питанию двигателя, а контакт SLP — к RST. Контакты 1A, 2A, 1B и 2B подключаются к двигателю.
От вида шагового двигателя (того, является ли он биполярным или униполярным) зависит способ подключения контактов 1A, 2A, 1B и 2B. В биполярных двигателях контакт 1A подключается к чёрному кабелю двигателя, контакт 2A — к красному кабелю, контакт 1B — к зелёному кабелю, а контакт 2B — к голубому кабелю. Униполярные двигатели имеют шесть проводов, но жёлтый и белый кабель можно не подключать.
Правильное подключение шагового двигателя к Arduino приводит к тому, что для высокого положения вал двигателя вращается вправо, а для низкого положения — влево. Для нарастающего фронта вал двигателя делает один шаг, а его направление зависит от подключения контакта DIR.