Ардуино мотор. Управление двигателем постоянного тока с Arduino: пошаговое руководство

Как подключить двигатель постоянного тока к Arduino. Какую схему использовать для управления направлением вращения мотора. Как контролировать скорость двигателя с помощью ШИМ. Какой код нужно загрузить в Arduino для управления мотором.

Содержание

Основы работы двигателя постоянного тока

Двигатель постоянного тока (DC motor) — один из самых распространенных типов электродвигателей, используемых в робототехнике и электронных проектах. Его популярность обусловлена простотой конструкции и управления.

Основные характеристики DC двигателя:

  • Имеет всего 2 вывода — положительный и отрицательный
  • При подаче напряжения начинает вращаться
  • Направление вращения меняется при смене полярности питания
  • Скорость вращения зависит от величины подаваемого напряжения

Однако для полноценного управления двигателем в проектах на Arduino требуется дополнительная схема — так называемый H-мост.

Зачем нужен H-мост для управления двигателем?

H-мост — это электронная схема, позволяющая управлять направлением вращения двигателя постоянного тока без физического переключения проводов. Основные преимущества использования H-моста:


  • Возможность программно менять направление вращения
  • Управление скоростью двигателя с помощью ШИМ
  • Защита двигателя от перегрузок
  • Возможность одновременного управления несколькими моторами

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

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

Для управления DC моторами с помощью Arduino чаще всего используется микросхема L298N. Это готовый двухканальный H-мост со следующими характеристиками:

  • Напряжение питания: 5-35В
  • Максимальный ток: 2А на канал
  • Возможность управления 2 двигателями
  • Встроенная защита от перегрева
  • Управление направлением и скоростью для каждого мотора

L298N имеет 15 выводов, но для базового подключения одного двигателя достаточно использовать 6 из них.

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

Для управления одним DC мотором потребуется следующее подключение:

  1. Vcc и GND L298N подключаются к 5В и GND Arduino соответственно
  2. IN1 (вывод 5) L298N — к цифровому пину 8 Arduino
  3. IN2 (вывод 7) L298N — к цифровому пину 9 Arduino
  4. ENA (вывод 6) L298N — к ШИМ пину 2 Arduino
  5. Выводы OUT1 и OUT2 L298N — к выводам двигателя

Пины IN1 и IN2 отвечают за направление вращения, а ENA — за скорость (через ШИМ).


Логика управления направлением вращения

Направление вращения двигателя определяется комбинацией сигналов на входах IN1 и IN2:

IN1IN2Направление
00Стоп
10Вперед
01Назад
11Стоп

Таким образом, меняя значения на цифровых выходах Arduino, подключенных к IN1 и IN2, можно программно управлять направлением вращения мотора.

Управление скоростью с помощью ШИМ

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

В Arduino для установки ШИМ используется функция analogWrite(). Например, analogWrite(2, 128) установит 50% скорость на выводе 2.

Пример скетча для управления двигателем

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

«`cpp const int PWM_PIN = 2; // ШИМ-пин для управления скоростью const int IN1_PIN = 8; // Пин для управления направлением const int IN2_PIN = 9; // Пин для управления направлением void setup() { pinMode(PWM_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); } void loop() { // Вращение по часовой стрелке digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); analogWrite(PWM_PIN, 255); // Полная скорость delay(3000); // Торможение digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH); delay(1000); // Вращение против часовой стрелки digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); analogWrite(PWM_PIN, 128); // Половина скорости delay(3000); // Торможение digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH); delay(1000); } «`

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


  • Установка направления вращения через цифровые выходы
  • Управление скоростью через ШИМ
  • Реализация торможения
  • Циклическое изменение режимов работы

Советы по работе с DC моторами и Arduino

При разработке проектов с использованием двигателей постоянного тока и Arduino следует учитывать несколько важных моментов:

  1. Используйте отдельный источник питания для двигателей, не подключайте их напрямую к Arduino
  2. Добавьте защитные диоды параллельно двигателю для защиты от обратных токов
  3. При использовании мощных двигателей обеспечьте хорошее охлаждение микросхемы L298N
  4. Для точного контроля скорости используйте энкодеры обратной связи
  5. При необходимости управления несколькими двигателями рассмотрите использование специализированных драйверов моторов

Расширенные возможности управления DC моторами

Базовая схема на L298N позволяет решать большинство задач, связанных с управлением двигателями постоянного тока. Однако для более сложных проектов могут потребоваться дополнительные функции:

  • Плавный пуск и остановка двигателя
  • Точное позиционирование вала
  • Синхронизация нескольких моторов
  • Определение препятствий и защита от перегрузки

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


Заключение

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

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


Картонный робот-пылесос на Ардуино / Хабр

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

(много картинок)

Требуемые компоненты:

  • Модуль Ардуино
  • Motor-shield — модуль управления двигателями, также известный как H-Bridge
  • Два мотора с редукторами и проводами питания
  • Два колеса
  • Набор аккумуляторов, батареек или power-bank на 5 вольт
  • Турбинка охлаждения для компьютера (не вентилятор, а именно турбина) на 5 вольт (или на 12 вольт — с преобразователем напряжения 5 вольт — 12 вольт)
  • Набор сильных магнитов
  • Кабель с USB коннектором
  • Кабель с разъемом питания для Ардуино
  • Провода для соединения контактов Ардуино
  • Плотный картон
  • Клеевой пистолет с термоклеем
  • Кусочек жести (можно от консервной банки или алюминиевой банки из под сока)
  • Пластиковую коробку — емкость для собираемой пыли

Определяется примерное расположение компонент, вырезается из картонна круг подходящего размера — шасси робота:

В шасси вырезаются отверстия для колес надетых на оси редукторов и под входное отверстие турбинки. Моторы прикрепляются к шасси пластиковыми стяжками:

К шасси термоклеем приклеивается турбина:

Турбина — на верху шасси, моторы — внизу:

С нижней стороны шасси отмечается контур коробки (той, что для сбора пыли) и вокруг контура прокалываются насквозь отверстия, отмечая расположения магнитов — магнитами коробка будет удерживаться на шасси (простейший из испробованных ранее способов):

С верхней стороны шасси приклеиваются магниты на местах отметок-проколов. Если картон гофрированный — вырезается фрагмент верхнего слоя по размеру магнитов:

С нижней стороны шасси прикладываются магниты, подложив под них лист бумаги:

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

С верхней стороны шасси наклеиваются аккумуляторы или отсек с батареей и крепления для модуля Ардуино. В данном случае используются куски деревянных шпажек приклееных термоклеем.

Модуль Ардуино с motor-shield устанавливаются в крепления. Провода питания от аккумулятора и Ардуино отрезаются по размеру.
Провода питания скручиваются (еще лучше — спаиваются), изолируются и подключаются к турбине, Ардуино, motor-shield и аккумулятору.

Из полосок картона вырезаются, сгибаются и склеиваются полукругом бамперы:

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

Два проводника присоединяются к двум кусочкам жести (предварительно зачищенной для хорошего контакта) и фиксируются на них термоклеем:

Кусочки жести приклеиваются к бамперам, их провода будут подключены к Ардуино (к контактам 5 и 8 для приведенной программы). Напротив них приклеиваются контакты двух других проводников, присоединяемые к контактам GND Ардуино.

Для фильтрации пыли используется многослойная волокнистая синтетическая ткань (например прямоугольник вырезанный из салфетки вытирания столов на кухне) — фильтр кладется снизу на шасси и прижимается коробкой с приклеенными на нее магнитами:

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

Если у коробки слишком высокие стенки — их можно укоротить, переклеив магниты:

Программа для Ардуино и motor-shield на Github.

Мотор с редуктором — 100-200 оборотов в минуту (RPM). Редукторы к моторам можно распечатать на 3D принтере — вот так выглядит картонный робот с распечатанными мотор-редукторами. Желательно также припаять конденсаторы на 0.1 мкФ между контактами моторов (обычно на радиоутравляемых игрушках такие конденсаторы уже припаяны).
Турбина — 5 вольт, 0.2 А; 12 вольт, 0.2 А — лучше (она мощнее), но требует преобразователя 5 вольт — 12 вольт (Step-Up converter). Находится на ebay по словам «cooling blower fan 5V».
Ардуино motor-shield — в данном случае YFRobot на микросхеме L298P; другие motor-shield могут иметь другие номера контактов и программно управляться иначе — например, этот. Также возможно использование внешних модулей управления двигателями или просто микросхему L293D (последнее потребует пайки).

Самодельное колёсное шасси 4х4 с ардуино мотор редукторами часть 2 смотреть онлайн видео от Э+М в хорошем качестве.

12+

7 месяцев назад

Э+М110 подписчиков

В этом видео я покажу, как можно сделать самодельное колесное шасси 4х4 с ардуино мотор-редукторами и независимой подвеской.. ====================================================== Arduino шасси купить http://ali.pub/ty401 Arduino мотор-редуктор с колесом http://ali.pub/h3bd1 Аппаратура радиоуправления http://ali.pub/tp0sy ===================================================== ОТВЕТЫ НА ЧАСТЫЕ ВОПРОСЫ. 1) Наша группа ВК https://vk.com/epm_club 2) Программа 3D моделирования называется Autodesk Inventor 3) Коврик зелёный на столе называется (CUTTING MAT) http://ali.pub/p0zxa 4) Электродвигатель 3V (круглый) http://ali.pub/jq8zv продается без шкива. 5) Электродвигатель 3V (плоский) http://ali. pub/1xeft 6) Шкив ведущий на двигатель http://ali.pub/vmwo0 заказывать надо под ось 2мм. 7) Аппаратура радиоуправления для машинки http://ali.pub/2nrul 8) Аппаратура радиоуправления для танка http://ali.pub/tp0sy ========================================================== ТОПОВЫЕ ТОВАРЫ ДЛЯ САМОДЕЛОК. 1) Arduino UNO R3, на МК(MEGA328P) http://ali.pub/p8mk9 2) Arduino NANO Ch440, на МК(MEGA328p)http://ali.pub/8ejap 3) Arduino мотор-редуктор с колесом (колесо хорошее, редуктор так себе) http://ali.pub/h3bd1 4) Arduino мотор-редуктор (редуктор нормальный) http://ali.pub/kzqai 5) Провода для Arduino http://ali.pub/9dgqy 6) Джойстик для Arduino http://ali.pub/begiz 7) Гироскоп 3-оси, модуль для Arduino, на МС(MPU 6050) http://ali.pub/3rxaw 8) Лазерный модуль KY-008 для Arduino http://ali.pub/o81q2 9) Лазерная головка 5V, 5mW, 650nm http://ali.pub/xvyfa 10) Датчики холла, модуль для Arduino http://ali.pub/wncr1 11) Повышающий напряжение DC-DC модуль, на МС(XL6009) http://ali.pub/49ok0 12) Повышающий напряжение DC-DC модуль, на МС(MT3608) http://ali. pub/nt3yh 13) Li-ion аккумуляторы 18650 http://ali.pub/9sqpa http://ali.pub/zj5lo http://ali.pub/0ek6x 14) Модуль для зарядки Li-ion аккумуляторов 18650, на МС(TP4056) http://ali.pub/rnpzb 15) Боксы для аккумуляторов 18650 http://ali.pub/ku3mt 16) Элементы Пельтье TEC12705 http://ali.pub/ea8dj 17) Радио модуль NRF24L01+ http://ali.pub/h7jpg 18) Сервопривод SG90 http://ali.pub/xqw0b 19) Контроллера электродвигателей на МС(L298N) http://ali.pub/8l35c =========================================================== ИНСТРУМЕНТ И ВСПОМОГАТЕЛЬНЫЕ МАТЕРИАЛЫ. 1) Коврик для пайки огнеупорный силиконовый http://ali.pub/pszaq 2) Патрон для мини-дрели (зажим цанга) на вал 2мм http://ali.pub/uijeh 3) Мини-дрели с патроном и цангами http://ali.pub/65uvt ====================================================== Композиция «Real Bad Girl» принадлежит исполнителю Audionautix. Лицензия: Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/). Исполнитель: http://audionautix.com/ ===================================================== Отблагодарить автора за его труд, чертежи и уроки:) Яндекс. Деньги 410014334017254 https://money.yandex.ru/to/410014334017254 WebMoney (Z343563415592; R350733365372) Bitcoin — 1ET2cmbjsKCMP98dKNj7NxqnR9T9djgqPd

Робот: Управление двигателем | CoderDojo York

Arduino и схемы среднего уровня — 1 час

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

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

Вам понадобится…

  • SparkFun RedBot (или что-то подобное)
  • Arduino Uno в роботе
  • USB-кабели и ноутбук

Нулевой шаг: Запустите редактор кода Arduino

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

Шаг первый: Соберите робота

Если вы в CoderDojo York, это уже сделано! Запишите PIN-коды, используемые для управления выходом двигателя и обратной связью.

Шаг второй: Заставьте двигатели двигаться

Подключите Arduino к ноутбуку с помощью USB-кабеля. Чтобы заставить двигатель двигаться, нам нужно отправить аналоговый сигнал на PIN-код, к которому он подключен. Размер этого аналогового сигнала определяет, насколько «сильно» будет вращаться двигатель, но он будет иметь максимальное значение. Используйте следующий код, чтобы повернуть левый двигатель. Измените PIN-коды, если двигатели подключены по-разному.

Загрузите этот скетч Arduino и убедитесь, что моторы двигаются

Шаг третий: прочтите показания пульса

Чтобы узнать, как далеко мы продвинулись вперед (или назад), нам нужно выяснить, насколько далеко сдвинулись колеса. Мы можем сделать это с помощью чего-то, что называется Rotary Encoder.

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

Чтобы прочитать этот сигнал двигателя, мы используем еще немного кода Arduino…

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

Шаг четвертый: Немного переместите двигатель

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

Задание I: Левые повороты

Напишите код для левого поворота, просто повернув правое колесо, а не левое, сделайте это как можно ближе к прямому повороту!

Задание II: Двигайтесь по квадрату

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

Это руководство будет иметь несколько разделов, добавленных позже0066 Creative Commons Attribution-NonCommercial 4.0 Международная лицензия.
Коммерческое использование нашего материала запрещено

Как управлять двигателем постоянного тока с помощью Arduino

Ариба Аршад

15 232 просмотра Двигатель постоянного тока

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

Как управлять вращением?

Если мы хотим управлять вращением двигателя постоянного тока без изменения подключения провода, то подходящим вариантом является использование Н-моста . H-мост представляет собой небольшую электронную схему, способную вращать двигатель как по часовой стрелке, так и против часовой стрелки. H-мост имеет различные применения, наиболее важным из которых является управление двигателями в роботе. Он называется H-мост, так как в нем используются 4 транзистора, поэтому схема выглядит как H.9.0004

Чтобы управлять двигателем постоянного тока с помощью Arduino, мы будет использовать L298 H-Bridge IC. ИС L298 управляет как скорость и направление двигателей постоянного тока. Он может даже управлять 2 двигателями одновременно.

Hardware Components

S.no Component Qty
1. Breadboard 1
2. Connecting Wires 1
3. Ардуино Мега2560 1
4. H-Bridge IC L298 1
5. DC Motor 1
L298 IC Pinout

Controlling 2 Motors

  • 3 inputs are available для каждого мотора.
  • Для двигателя 1 входные контакты включают IN1, IN2 и ENA
  • Для двигателя 2 входные контакты включают IN3, IN4 и ENB
  • Однако здесь мы покажем, как подключить один двигатель постоянного тока с L298 IC.
  • Сначала мы подключим Arduino к IN1 (контакт 5), IN2 (контакт 7) и Enable1 (контакт 6). стороны, контакт 6 требует сигнала PWM для достижения контроля скорости.
  • При изменении значений входа 1 и входа 2 направление вращения двигателя также будет изменено.

См. следующее таблицу для дальнейшего уточнения.

Вход 1 Input 2 Direction of rotation
0 0 Stop
1 0 Forward
0 1 Backward
1 1 Стоп
  • Контакт 8 Arduino подключен к контакту IN1 микросхемы L298
  • Контакт № 9 подключен к контакту IN2 L298 ИК.
  • Эти два цифровых контакта 8 и 9 Arduino управляют направлением вращения двигателя постоянного тока.
  • Контакт 2 Arduino подключен к EN. 8 и 9,
  • Мы будем использовать аналоговую функцию Write() для установки значения вывода 2

Код Arduino

 const int pwm = 2 ; //инициализация вывода 2 как ШИМ
константный интервал in_1 = 8 ;
константа int_2 = 9 ;
//Для обеспечения логики L298 IC для выбора направления двигателя постоянного тока
недействительная установка ()
{
pinMode(ШИМ,ВЫХОД) ; //мы должны установить вывод ШИМ в качестве выхода
pinMode(in_1,OUTPUT) ; //Логические выводы также устанавливаются как выходные
pinMode(in_2,OUTPUT) ;
}
пустой цикл ()
{
//Для движения по часовой стрелке in_1 = High, in_2 = Low
digitalWrite(in_1,HIGH) ;
цифровая запись (in_2, LOW) ;
аналогЗапись(ШИМ,255) ;
/* установка pwm двигателя на 255
мы можем изменить скорость вращения
изменяя вход ШИМ, но мы только
используя arduino, поэтому мы используем самый высокий
значение для привода двигателя */
// По часовой стрелке в течение 3 секунд
задержка(3000) ;
//Для тормоза
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
задержка(1000) ;
//Для движения против часовой стрелки - IN_1 = LOW, IN_2 = HIGH
цифровая запись (in_1, LOW) ;
digitalWrite(in_2,HIGH) ;
задержка(3000) ;
//Для тормоза
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
задержка(1000) ;
 }
 
Шаги для управления двигателем постоянного тока Arduino
  • Подключите 5 В и GND микросхемы L298 к 5 В и GND Arduino.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *