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

Один из подписчиков решил сделать привод для телескопа, и попросил меня помочь с написанием скетча.

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

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

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

Плата Arduino UNO, модуль двух осевой джойстик, два униполярных шаговых двигателя 28BYJ-48 5V, два драйвера на базе микросхемы ULN2003 и соединительные провода.

Загрузите на плату Arduino UNO этот скетч.

В скетче есть 4 настройки!

Переменная t12 отвечает за скорость вращения первого шагового двигателя при первоначальном отведении джойстика.

Переменная t11 отвечает за скорость вращения первого шагового двигателя при отведении джойстика в крайнее положение.

Переменная t22 отвечает за скорость вращения второго шагового двигателя при первоначальном отведении джойстика.

Переменная t21 отвечает за скорость вращения второго шагового двигателя при отведении джойстика в крайнее положение.

Чем больше значение этих переменных тем медленнее скорость вращения шагового двигателя!

//Начало скетча

//Конец скетча

После настройки и загрузки скетча соберите все согласно этой схемы.

Проверьте! И если все верно, то можете подключить устройство к блоку питания, павербанку или USB компьютера.

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

Чтобы инвертировать направление вращения вала шагового двигателя:

Поменяйте местами контакты 5, 6 или 4, 7 для 1 шагового двигателя.

Поменяйте местами контакты 11, 12 или 10, 13 для 2 шагового двигателя.

Чтобы поменять местами оси X, Y поменяйте местами контакты A0, A1.

Видео:Управление двумя униполярными шаговыми моторами по Bluetooth на базе Arduino nano. Проекты Arduino.Скачать

Управление двумя униполярными шаговыми моторами по Bluetooth на базе Arduino nano. Проекты Arduino.

Видео версия проекта «Управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.»

Творческая мастерская Мастер Колотушкин 2021

Проекты на базе Arduino для начинающих, электронные самоделки своими руками.

Видео:Управление двумя униполярными шаговыми двигателями с помощью джойстика на базе Arduino uno.Скачать

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

Драйверы двигателя L298N, L293D и Arduino Motor Shield

Драйвер двигателя выполняет крайне важную роль в проектах ардуино, использующих двигатели постоянного тока или шаговые двигатели. C помощью микросхемы драйвера или готового шилда motor shield можно создавать мобильных роботов, автономные автомобили на ардуино и другие устройства с механическими модулями. В этой статье мы рассмотрим подключение к ардуино популярных драйверов двигателей на базе микросхем L298N и L293D.

Видео:Уроки Arduino. Управление моторами с библиотекой GyverMotorСкачать

Уроки Arduino. Управление моторами с библиотекой GyverMotor

Драйвер двигателя в проектах ардуино

Для чего нужен драйвер двигателя?

Как известно, плата ардуино имеет существенные ограничения по силе тока присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода – и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока, превышающие этот предел.

Как же тогда подключить двигатель к ардуино? Есть несколько вариантов действий:

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

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

Читайте также: Не заводится мотор 406 нет искры

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

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

Микросхема или плата расширения Motor Shield

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

Принцип действия H-моста

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

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

Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.

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

Q1Q2Q3Q4Состояние
1001Поворот мотора вправо
0110Поворот мотора влево
0000Свободное вращение
0101Торможение
1010Торможение
1100Короткое замыкание
0011Короткое замыкание

Видео:Управление двумя dc моторами на l293d и arduinoСкачать

Управление двумя dc моторами на l293d и arduino

Драйвер двигателя L298N

Модуль используется для управления шаговыми двигателями с напряжением от 5 до 35 В. При помощи одной платы L298N можно управлять сразу двумя двигателями. Наибольшая нагрузка, которую обеспечивает микросхема, достигает 2 А на каждый двигатель. Если подключить двигатели параллельно, это значение можно увеличить до 4 А.

Плата выглядит следующим образом:

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

Распиновка микросхемы L298N:

  • Vcc – используется для подключения внешнего питания;
  • 5В;
  • Земля GND;
  • IN1, IN2, IN3, IN4 – используется для плавного управления скоростью вращения мотора;
  • OUT1, OUT2 – используется для выхода с первого двигателя;
  • OUT3, OUT4 – используется для выхода со второго двигателя;
  • S1 – переключает питание схемы: от внешнего источника или от внутреннего преобразователя;
  • ENABLE A, B – требуются для раздельного управления каналами. Используются в двух режимах – активный, при котором каналами управляет микроконтроллер и имеется возможность изменения скорости вращения, и пассивный, в котором невозможно управлять скоростью двигателей (установлено максимальное значение).

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

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

Читайте также: Ямаха лодочные моторы технические характеристики расход топлива

Видео:Управление моторами с ArduinoСкачать

Управление моторами с Arduino

Драйвер двигателя L293D

L293D – является самой простой микросхемой для работы с двигателями. L293D обладает двумя H-моста, которые позволяют управлять двумя двигателями. Рабочее напряжение микросхемы – 36 В, рабочий ток достигает 600 мА. На двигатель L293D может подавать максимальный ток в 1,2 А.

В схеме имеется 16 выходов. Распиновка:

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

Для подключения к микроконтроллеру Arduino Uno нужно соединить выходы In1 на L293D и 7 пин на Ардуино, In2 – 8, In3 – 2, In4 – 3, En1 – 6, En2 – 5, V – 5V, Vmotor – 5 V, 0V – GND. Пример подключения одного двигателя к Ардуино показан на рисунке.

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

Видео:Драйвер двигателей L298N - Обзор, Тест, Подключение к ArduinoСкачать

Драйвер двигателей L298N - Обзор, Тест, Подключение к Arduino

Драйвер двигателя на микросхеме HG7881

HG7881 – двухканальный драйвер, к которому можно подключить 2 двигателя или четырехпроводной двухфазный шаговый двигатель. Устройство часто используется из-за своей невысокой стоимости. Драйвер используется только для изменения направления вращения, менять скорость он не может.

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

Плата содержит 2 схемы L9110S, работающие как H-мост.

Характеристики драйвера HG7881:

  • 4-контактное подключение;
  • Питание для двигателей от 2,5 В до 12 В;
  • Потребляемый ток менее 800 мА;
  • Малые габариты, небольшой вес.

Распиновка:

  • GND – земля;
  • Vcc – напряжение питания 2,5В – 12В;
  • A-IA – вход A(IA) для двигателя A;
  • A-IB – вход B (IB) для двигателя A;
  • B-IA – вход A(IA) для двигателя B;
  • B-IB – вход B (IB) для двигателя B.

В зависимости от поданного сигнала на выходах IA и IB будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.

IAIBСостояние мотора
00Остановка
10Двигается вперед
01Двигается назад
11Отключение

Подключение одного двигателя к Ардуино изображено на рисунке.

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

Сравнение модулей

Модуль L293D подает максимальный ток в 1,2А, в то время как на L298N можно добиться максимального тока в 4 А. Также L293D обладает меньшим КПД и быстро греется во время работы. При этом L293D является самой распространенной платой и стоит недорого. Плата HG7881 отличается от L293D и L298N тем, что с ее помощью можно управлять только направлением вращения, скорость менять она не может. HG7881 – самый дешевый и самый малогабаритный модуль.

Видео:Согласованная работа двух шаговых двигателей на ардуино.Скачать

Согласованная работа двух шаговых двигателей на ардуино.

Подключение L298N к Arduino

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

Нужно присоединить источник питания. + подключается к пину 4 на плате L298N, минус (GND) – к 5 пину. Затем нужно соединить выходы с L298N и пины на Ардуино, причем некоторые из них должны поддерживать ШИМ-модуляцию. На плате Ардуино они обозначены

. Выходы с L298N IN1, IN2, IN3 и IN4 подключить к D7, D6, D5 и D4 на Ардуино соответственно. Подключение всех остальных контактов представлено на схеме.

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

Направление вращения задается с помощью сигналов HIGH и LOW на каждый канал. Двигатели начнут вращаться, только когда на 7 пине для первого мотора и на 12 пине для второго на L298N будет сигнал HIGH. Подача LOW останавливает вращение. Чтобы управлять скоростью, используются ШИМ-сигналы.

Читайте также: Лодочный мотор гибрид что это такое

Для управления шаговым двигателем в Arduino IDE существует стандартная библиотека Stepper library. Чтобы проверить работоспособность собранной схемы, можно загрузить тестовый пример stepper_oneRevolution. При правильной сборке вал двигателя начнет вращаться.

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

Видео:Уроки Arduino - управление бесколлекторным моторомСкачать

Уроки Arduino - управление бесколлекторным мотором

Управление несколькими шаговыми двигателями Nema 17 одновременно или NemaStepper

Я думаю что вы, если работали с arduino+nema 17, знаете, что запустить несколько двигателей одновременно бывает очень затруднительно.

Есть разные способы решения этой проблемы, самый простой, пожалуй — использование библиотеки NemaStepper. Библиотека упрощает данную задачу во много раз, главное преимущество — она не останавливает выполнение программы. Устанавливается она также, как и все остальные библиотеки. Распространяется по MIT лицензии.

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

Мы будем использовать Simple Nema 17 с алиэкспресса за 500 рублей, драйвер L298N и arduino uno. Вот они:

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

Итак, подключаем мотор к драйверу:

Библиотека является объектно — ориентированной. Давайте рассмотрим пример включения одного мотора:

О всех методах библиотеки можно узнать из файлов исходного кода библиотеки (в шапке библиотеки есть описание).

*Подробнее о коде в примере.

А теперь переходим к примеру.

В библиотеке есть встроенный пример (на данный момент он там один), который позволяет управлять сразу тремя моторами с Serial.

Данный пример принимает на порт команды, указанные ниже.

Начнем с шапки — подключения библиотек:

Далее объявляются три мотора, со следующими параметрами:

1. Первый пин
2. Второй пин
3. Третий пин
4. Четвертый пин
5. Количество шагов за оборот — у большинства моторов Nema 17 это 200.
6. Стартовая скорость
7. Значение указывающее, нужно ли удерживать вал после остановки (при true драйверы превращаются в барбекю)

Далее инициализация порта:

Затем, ВАЖНО! В главном цикле нужно обновлять положение двигателей командой Step()

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

И так, давайте попробуем загрузить ее в плату.

Тогда заходим в монитор порта и вводим команды из кода.
Каждая команда заканчивается символом /.
Первые три символа — название команды.
То, что между названием и / — параметры.
Давайте включим моторы командой «EMS/» (Enable MotorS).
Затем укажем мотору 1 скорость 60 командой «SS160/» (Set Speed), где 60 — скорость.
И наконец, включим первый мотор командой «MV1100/», (MoVe) где 100 — количество оборотов.
Все работает. Ура.

Тоже самое с остальными моторами.

Ну и где взять библиотеку.

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

Спасибо за прочтение, надеюсь вам помогла моя статья.

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

  • Свежие записи
    • Чем отличается двухтактный мотор от четырехтактного
    • Сколько масла заливать в редуктор мотоблока
    • Какие моторы бывают у стиральных машин
    • Какие валы отсутствуют в двухвальной кпп
    • Как снять стопорную шайбу с вала


    💡 Видео

    Управление двигателем постоянного тока. Схема управления мотором Ардуино проекты.Скачать

    Управление двигателем постоянного тока. Схема управления мотором Ардуино проекты.

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

    Привод для жалюзи на базе Arduino uno своими руками. Управление шаговыми моторами с помощью кнопок.

    Управление двигателем постоянного тока NodeMCU + MX1508Скачать

    Управление двигателем постоянного тока  NodeMCU + MX1508

    Управление шаговыми моторами по Bluetooth при помощи Arduino и Android смартфона. Привод для камеры.Скачать

    Управление шаговыми моторами по Bluetooth при помощи Arduino и Android смартфона. Привод для камеры.

    ПОДКЛЮЧАЕМ ШАГОВЫЙ ДВИГАТЕЛЬ К ARDUINO [Уроки Ардуино #14]Скачать

    ПОДКЛЮЧАЕМ ШАГОВЫЙ ДВИГАТЕЛЬ К ARDUINO [Уроки Ардуино #14]

    Управление мотором ардуиноСкачать

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

    Arduino Nano + расширитель пинов + управление двигателем актуатораСкачать

    Arduino Nano + расширитель пинов + управление двигателем актуатора

    Управление двигателем постоянного тока, линейным приводом. АрдуиноСкачать

    Управление двигателем постоянного тока, линейным приводом. Ардуино

    ЭЛЕКТРОНИКА - Обзор драйвера моторов MX1508 для ArduinoСкачать

    ЭЛЕКТРОНИКА - Обзор драйвера моторов MX1508 для Arduino

    Ардуино пульт 433мГц управление двумя моторамиСкачать

    Ардуино пульт 433мГц управление двумя моторами

    NEMA17 Управление шаговым двигателем - Stepper motor with ArduinoСкачать

    NEMA17 Управление шаговым двигателем  - Stepper motor with Arduino

    два мотора от одного контроллераСкачать

    два мотора от одного контроллера
Поделиться или сохранить к себе:
Технарь знаток