Ардуино как включить мотор

Делаем на основе Arduino двигатель своими руками

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

Включение детали в проект – непростая задача, которая требует максимума усилий и внимания. Особенно сложно дело обстоит у начинающих электронщиков, не разбирающихся с приводами.

Ниже мы подробно расскажем читателю о моторе, сконструированном на микропроцессоре Aрдуино, и поможем построить прибор правильно.

Назначение двигателя Aрдуино и принцип работы

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

Ардуино как включить мотор

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

Сборка двигателя

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

Ардуино как включить мотор

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

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

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

Ардуино как включить мотор

Необходимые инструменты и материалы

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

Список необходимых инструментов и материалов для конструирования:

  1. Arduino Uno.
  2. Макет.
  3. Транзистор.
  4. Двигатель постоянного тока.
  5. Диод.
  6. Резистор 2,2 кОм.
  7. Переходные провода.

Для питания прибора подается 5V через него, а затем на землю. Это напряжение вращает устройства, но пользователь контролирует его. Чтобы передать Arduino управление мощностью прибора и, следовательно, вращение, устанавливается транзистор сразу после мотора.

Значения драйвера в составе устройства и работа с ним

L298N – это двойной драйвер H-Bridge, который позволяет одновременно управлять скоростью и направлением двух приспособлений постоянного тока. Модуль может приводить в действие приборы постоянного тока с напряжением от 5 до 35 В с пиковым током до 2А.

Давайте подробнее рассмотрим распиновку модуля L298N и объясним, как это работает. Модуль имеет два винтовых клеммных блока для A и B и еще одну винтовую клеммную колодку для заземляющего контакта, VCC для двигателя и вывод 5 В, который может быть либо входом, либо выходом.

Ардуино как включить мотор

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

Здесь можно отметить, что эта ИС уменьшает падение напряжения примерно на 2 В. Так, например, если мы используем источник питания 12 В, напряжение на клеммах двигателей будет составлять около 10 В, а это означает, что мы не сможем получить максимальную скорость от нашего 12-вольтового двигателя постоянного тока.

Ардуино как включить мотор

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

Ардуино как включить мотор

Затем штифты Input 1 и Input 2 используются для управления направлением вращения двигателя A, а входы 3 и 4 – для двигателя B. Используя эти контакты, мы фактически управляем переключателями H-Bridge внутри IC L298N. Если вход 1 LOW, а вход 2 – HIGH, приспособление будет двигаться вперед, и наоборот, если вход 1 HIGH, а вход 2 LOW, агрегат будет двигаться назад. Если оба входа одинаковы, либо LOW, либо HIGH, прибор остановится. То же самое относится ко входам 3,4 прибора B.

Установка программного обеспечения

Постройте схему, как показано на рисунке, и откройте новый эскиз Arduino. Выберите кнопку «Сохранить» и сохраните эскиз с запоминающимся именем, например myMotor; введите следующий код:

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

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

Если это не так, вам следует дважды проверить свою проводку:

  1. Убедитесь, что вы используете вывод № 9.
  2. Убедитесь, что ваш диод обращен правильно, при этом лента обращена к соединению 5v.
  3. Проверьте соединения на макете. Если провода или компоненты не подключены с использованием правильных строк в макете, они не будут работать.

Запуск и настройка устройства

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

Ардуино как включить мотор

Помещаем кнопку на макет, оседлав центр. Провод соединяет цифровой контакт 2 с одной ногой кнопки. Ножка кнопки, не подключенная к плате Aрдуино, должна быть подключена к источнику питания на 5 вольт.

Подключаем контакт или пин 9 на Arduino к базовому выходу TIP120 . Если смотрите на транзистор, чтобы металлический язычок был обращен от вас, базовый штифт находится на левой стороне транзистора. Это контакт, который управляет открытием или закрытием. Транзисторный коллектор соединяется с одним выводом двигателя.

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

Тестирование

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

В этом примере используется TIP120, который может переключаться до 60 В на 5 А.

Подключение моторчика к Ардуино

Ардуино как включить мотор

Подключение мотора к Ардуино ► потребуется при сборке машинки или катера. Рассмотрим различные варианты подключения коллекторного двигателя к Arduino.

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

Ардуино как включить мотор

Управление двигателем на Ардуино

Коллекторный моторчик может быть рассчитан на разное напряжения питания. Если двигатель работает от 3-5 Вольт, то можно моторчик подключать напрямую к плате Ардуино. Моторы для машинки с блютуз управлением, которые идут в комплекте с редукторами и колесами рассчитаны уже на 6 Вольт и более, поэтому ими следует управлять через полевой (биполярный) транзистор или через драйвер L298N.

Ардуино как включить мотор

Принцип работы и устройство мотора постоянного тока

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

Как подключить моторчик к Arduino

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • мотор постоянного тока (Motor DC);
  • транзистор полевой/биполярный;
  • драйвер двигателей L298N;
  • провода «папа-папа», «папа-мама».

Перед выбором способа управления двигателем от Arduino Uno r3, уточните на какое напряжение рассчитан ваш моторчик. Если питание требуется более 5 Вольт, то следует использовать транзистор или драйвер. Распиновка транзисторов может отличаться от приведенного примера (следует уточнить распиновку для своего типа). Драйвер L298N позволит не только включать мотор, но и изменять направление вращения.

Скетч. Подключение мотора через транзистор

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

Ардуино как включить мотор

Подключение FA-130 мотора постоянного тока — Motor DC Arduino

Пояснения к коду:

  1. при необходимости можно подключить два мотора FA-130 к Ардуино;
  2. в зависимости от характеристик, двигатель подключается к 3,3 или 5 Вольтам.

Скетч. Подключение мотора через драйвер

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

Как подключить электродвигатель к Arduino

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

Для проекта нам понадобятся:

1 Что такое драйвер двигателей и для чего он нужен

Максимальный ток на выводах Arduino слаб (около 50 мА) для такой мощной нагрузки как электромотор (десятки и сотни миллиампер). Поэтому напрямую к выводам Arduino подключать электродвигатель нельзя: есть риск сжечь вывод, к которому подключён двигатель. Для безопасного подключения электродвигателей разных типов к Arduino необходим самодельный или промышленно изготовленный т.н. драйвер двигателей. Драйверы двигателей бывают разные, для их работы часто используются микросхемы типа HG788, L9110S, L293D, L298N и другие. Драйверы двигателей имеют выводы подачи питания, выводы для подключения электродвигателей, а также управляющие выводы.

Ардуино как включить мотор

Различные варианты исполнения драйверов двигателей

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

2 Схема подключения коллекторного двигателяи драйвера двигателей к Arduino

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

Давайте подключим двигатель по приложенной схеме. Питание драйвера двигателя – 5 В от Arduino, для управления скоростью вращения ротора мотора управляющие контакты подключаем к выводам Ардуино, поддерживающим ШИМ (широтно-импульсную модуляцию).

Ардуино как включить мотор

Схема подключения коллекторного двигателя к Arduino с помощью драйвера двигателей

Должно получиться что-то подобное:

Ардуино как включить мотор

Двигатель подключён к драйверу двигателей и Arduino

3 Скетч для управления коллекторным двигателем

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

Загрузим скетч в память Arduino. Запустим его. Вал двигателя не вращается. Чтобы задать скорость вращения, нужно передать в последовательный порт значение от 0 до 255. Направление вращения определяется знаком числа.

Подключимся с помощью любой терминалки к порту, передадим число «100» – двигатель начнёт вращаться со средней скоростью. Если подадим «минус 100», то он начнёт вращаться с той же скоростью в противоположном направлении.

Ардуино как включить мотор

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

А вот так выглядит подключение подключение коллекторного двигателя к Arduino в динамике:

4 Управление шаговым двигателем с помощью Arduino

Шаговый двигатель позволяет вращать ротор на определённый угол. Это бывает полезно, когда необходимо задать положение какому-либо механизму или его узлу. Шагом двигателя называется минимальный угол, на который можно повернуть ротор двигателя. Угол поворота и направление движения задаются в управляющей программе. Существует большое разнообазие шаговых двигателей. Рассмотрим работу с ними на примере двигателя 28BYJ-48 с драйвером ULN2003.

Ардуино как включить мотор

Шаговый двигатель с контроллером —>

Ардуино как включить мотор

Шаговый двигатель с контроллером

Характеристики двигателя 28BYJ-48:

ХарактеристикаЗначение
Количество фаз4
Напряжение питанияот 5 до 12 В
Число шагов64
Размер шага5,625°
Скорость вращения15 об./сек
Крутящий момент450 г/см

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

Ардуино как включить мотор

Модуль с драйвером ULN2003

На входы IN1…IN4 подаются управляющие сигналы от Arduino. Используем любые 4 цифровых пина, например, D8…D11. На вход питания необходимо подать постоянное напряжение от 5 до 12 В. Двигателю желательно обеспечить отдельное питание. Но в данном случае, т.к. не планируется использовать двигатель на постоянной основе, можно подать питание и от Arduino. Перемычка «Вкл/выкл» просто разрывает «плюс» питания, подаваемого на драйвер. В «боевом» изделии сюда можно, например, коммутировать питание с помощью реле, когда это необходимо, чтобы снизить потребление всего изделия. Итак, схема подключения будет такой:

Ардуино как включить мотор

Схема подключения шагового двигателя с драйвером ULN2003 к Arduino

Ардуино как включить мотор

Подключение шагового двигателя 28BYJ-48 к Arduino

Для Arduino «из коробки» существует готовая библиотека для управления шаговыми двигателями. Она называется Stepper. Можно посмотреть готовые примеры в среде разработки для Arduino: File Examples Stepper. Они позволяют управлять шаговым двигателем, изменяя скорость и направление движения, поворачивать ротор на заданный угол. Как говорится – бери и пользуйся. Но давайте попробуем разобраться с принципом работы шагового двигателя самостоятельно, не применяя никаких библиотек.

Двигатель 28BYJ-48 имеет 4 фазы. Это означает, что у него имеются 4 электромагнитные катушки, которые под действием электрического тока притягивают сердечник. Если напряжение подавать на катушки поочерёдно, это заставит сердечник вращаться. Рисунок иллюстрирует данный принцип.

Ардуино как включить мотор

Схема работы шагового двигателя

Здесь на (1) напряжение подано на катушки A и D, на (2) – на A и B, (3) – B и С, (4) – C и D. Далее цикл повторяется. И таким образом ротор двигателя вращается по кругу.

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

Простейший скетч управления шаговым двигателем (разворачивается)

Как можно догадаться, задержка del определяет скорость вращения двигателя. Уменьшая или увеличивая её можно ускорять или замедлять двигатель.

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

Скетч управления шаговым двигателем (разворачивается)

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

Финальный скетч управления шаговым двигателем (разворачивается)

Вот теперь совсем другое дело! Мы можем управлять скоростью шагового двигателя, задавая задержку после каждой фазы. Мы можем менять направление движения ротора двигателя. И, наконец, мы умеем поворачивать ротор на некоторый угол. Осталось только определить, какое число необходимо передавать в функции поворота rotateClockwise() и rotateCounterClockwise(), чтобы ротор шагового двигателя 1 раз провернулся на 360° вокруг своей оси. Собственно, дальнейшие наработки – вопрос фантазии или необходимости.

Источник