В этой статье мы поговорим о шаговых двигателях в проектах Ардуино на примере очень популярной модели 28BYJ-48. Так же как и сервоприводы, шаговые моторы являются крайне важным элементом автоматизированных систем и робототехники. Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора. В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.
- Шаговый двигатель – принцип работы
- Где купить шаговый двигатель
- Драйвер для управления шаговым двигателем
- Драйвер шагового двигателя на базе L298N
- Драйвер шагового двигателя ULN2003
- Другие драйвера
- Подключение шагового двигателя к Ардуино
- Обзор основных моделей шаговых двигателей для ардуино
- Описание библиотеки для работы с шаговым двигателем
- Пример скетча для управления
- Заключение
- Управление шаговым мотором с джойстика ардуино
- //Начало скетча
- //Конец скетча
- Видео версия проекта «Управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.»
- Управление шаговым двигателем с помощью джойстика
- Sketch code
- 💥 Видео
Видео:Управление двумя униполярными шаговыми двигателями с помощью джойстика на базе Arduino uno.Скачать
Шаговый двигатель – принцип работы
Шаговый двигатель – это мотор, перемещающий свой вал в зависимости от заданных в программе микроконтроллера шагов и направления. Подобные устройства чаще всего используются в робототехнике, принтерах, манипуляторах, различных станках и прочих электронных приборах. Большим преимуществом шаговых двигателей над двигателями постоянного вращения является обеспечение точного углового позиционирования ротора. Также в шаговых двигателях имеется возможность быстрого старта, остановки, реверса.
Шаговый двигатель обеспечивает вращения ротора на заданный угол при соответствующем управляющем сигнале. Благодаря этому можно контролировать положение узлов механизмов и выходить в заданную позицию. Работа двигателя осуществляется следующим образом – в центральном вале имеется ряд магнитов и несколько катушек. При подаче питания создается магнитное поле, которое воздействует на магниты и заставляет вал вращаться. Такие параметры как угол поворота (шаги), направление движения задаются в программе для микроконтроллера.
Упрощенные анимированные схемы работы шагового двигателя
Основные виды шаговых моторов:
- Двигатели с переменными магнитами (применяются довольно редко);
- Двигатели с постоянными магнитами;
- Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).
Видео:Управление моторами с ArduinoСкачать
Где купить шаговый двигатель
Самые простые двигатели Варианты на сайте AliExpress:
Видео:ПОДКЛЮЧАЕМ ШАГОВЫЙ ДВИГАТЕЛЬ К ARDUINO [Уроки Ардуино #14]Скачать
Драйвер для управления шаговым двигателем
Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Для управления биполярным шаговым двигателем чаще всего используется драйверы L298N и ULN2003.
Работа двигателя в биполярном режиме имеет несколько преимуществ:
- Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
- Возможность применения двигателей с любой конфигурацией фазной обмотки.
Но существенным минусов в биполярном режиме является сложность самого драйвера. Драйвер униполярного привода требует всего 4 транзисторных ключа, для обеспечения работы драйвера биполярного привода требуется более сложная схема. С каждой обмоткой отдельно нужно проводить различные действия – подключение к источнику питания, отключение. Для такой коммутации используется схема-мост с четырьмя ключами.
Драйвер шагового двигателя на базе L298N
Этот мостовой драйвер управляет двигателем с током до 2 А и питанием до 46В. Модуль на основе драйвера L298N состоит из микросхемы L298N, системы охлаждения, клеммных колодок, разъемов для подключения сигналов, стабилизатора напряжения и защитных диодов.
Драйвер двигателя L298N
Драйвер шагового двигателя ULN2003
Шаговые двигателями с модулями драйверов на базе ULN2003 – частые гости в мастерских Ардуино благодаря своей дешевизне и доступности. Как правило, за это приходится платить не очень высокой надежностью и точностью.
Читайте также: Что заливать в мотор авео
Другие драйвера
Существует другой вид драйверов – STEP/DIR драйверы. Это аппаратные модули, которые работают по протоколу STEP/DIR для связи с микроконтроллером. STEP/DIR драйверы расширяют возможности:
- Они позволяют стабилизировать фазные токи;
- Возможность установки микрошагового режима;
- Обеспечение защиты ключа от замыкания;
- Защита от перегрева;
- Оптоизоляция сигнала управления, высокая защищенность от помех.
В STEP/DIR драйверах используется 3 сигнала:
- STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
- DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
- ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.
Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.
Видео:Подключение двигателя без электроники и Ардуино!Скачать
Подключение шагового двигателя к Ардуино
Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.
Подключение шагового двигателя к Ардуино
Еще один вариант схемы с использованием L298:
Подключение шагового двигателя к Ардуино на базе L298
Схема подключения на базе ULN2003 изображена на рисунке ниже. Управляющие выходы с драйвера IN1-IN4 подключаются к любым цифровым контактам на Ардуино. В данном случае используются цифровые контакты 8-11. Питание подключается к 5В. Также для двигателя желательно использовать отдельный источник питания, чтобы не перегрелась плата Ардуино.
Подключение шагового двигателя к Ардуино
Принципиальная схема подключения.
Принципиальная схема подключения шагового двигателя
Еще одна схема подключения биполярного шагового двигателя Nema17 через драйвер L298 выглядит следующим образом.
Видео:Управление ШД джойстиком.Скачать
Обзор основных моделей шаговых двигателей для ардуино
Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.
Основные характеристики двигателя:
- Угловой шаг 1,8°, то есть на 1 оборот приходится 200 шагов;
- Двигатель – двухфазный;
- Рабочие температуры от -20С до 85С;
- Номинальный ток 1,7А;
- Момент удержания 2,8 кг х см;
- Оснащен фланцем 42 мм для легкого и качественного монтажа;
- Высокий крутящий момент – 5,5 кг х см.
28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.
- Номинальное питание – 5В;
- 4-х фазный двигатель, 5 проводов;
- Число шагов: 64;
- Угол шага 5,625°;
- Скорость вращения: 15 оборотов в секунду
- Крутящий момент 450 г/сантиметр;
- Сопротивление постоянного тока 50Ω ± 7% (25 ℃).
Видео:Управление шаговым двигателем. Драйвер A4988, подключение и настройкаСкачать
Описание библиотеки для работы с шаговым двигателем
В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:
- Stepper(количество шагов, номера контактов). Эта функция создает объект Stepper, которая соответствует подключенному к плате Ардуино двигателю. Аргумент – контакты на плате, к которым подключается двигатель, и количество шагов, которые совершаются для полного оборота вокруг своей оси. Информацию о количестве шагов можно посмотреть в документации к мотору. Вместо количества шагов может быть указан угол, который составляет один шаг. Для определения числа шагов, нужно разделить 360 градусов на это число.
- Set Speed(long rpms) – функция, в которой указывается скорость вращения. Аргументом является положительное целое число, в котором указано количество оборотов в минуту. Задается после функции Step().
- Step(Steps) –поворот на указанное количество шагов. Аргументом может быть либо положительное число – поворот двигателя по часовой стрелке, либо отрицательное – против часовой стрелки.
Читайте также: Мотор греется в жару
Видео:Шаговые двигатели, и как ими управлять с помощью микроконтроллераСкачать
Пример скетча для управления
В наборе примеров библиотеки Stepper.h существует программа stepper_oneRevolution, в которой задаются все параметры для шагового двигателя – количество шагов, скорость, поворот.
Видео:NEMA17 Управление шаговым двигателем - Stepper motor with ArduinoСкачать
Заключение
В этой статье мы с вами узнали, что такое шаговый двигатель, как можно его подключить к ардуино, что такое драйвер шагового двигателя. Мы также рассмотрели пример написания скетча, использующего встроенную библиотеку Stepper. Как видим, ничего особенно сложного в работе с шаговыми моторами нет и мы рекомендуем вам обязательно поэкспериментировать самостоятельно и попробовать включить его в своих проектах Arduino.
Видео:🕹️ Подключение ДЖОЙСТИКА к ARDUINOСкачать
Управление шаговым мотором с джойстика ардуино
Один из подписчиков решил сделать привод для телескопа, и попросил меня помочь с написанием скетча.
Раз уж скетч написан, то будет не лишним рассказать что для этого понадобится, и предоставить схему для сборки устройства.
Так выглядит устройство для управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.
Для его сборки понадобится:
Плата Arduino UNO, модуль двух осевой джойстик, два униполярных шаговых двигателя 28BYJ-48 5V, два драйвера на базе микросхемы ULN2003 и соединительные провода.
Загрузите на плату Arduino UNO этот скетч.
В скетче есть 4 настройки!
Переменная t12 отвечает за скорость вращения первого шагового двигателя при первоначальном отведении джойстика.
Переменная t11 отвечает за скорость вращения первого шагового двигателя при отведении джойстика в крайнее положение.
Переменная t22 отвечает за скорость вращения второго шагового двигателя при первоначальном отведении джойстика.
Переменная t21 отвечает за скорость вращения второго шагового двигателя при отведении джойстика в крайнее положение.
Чем больше значение этих переменных тем медленнее скорость вращения шагового двигателя!
//Начало скетча
//Конец скетча
После настройки и загрузки скетча соберите все согласно этой схемы.
Проверьте! И если все верно, то можете подключить устройство к блоку питания, павербанку или USB компьютера.
Так как устройство в режиме вращения вала шагового двигателя потребляет около 350 миллиампер, то источник питания должен быть минимум на 500 миллиампер.
Читайте также: 406 мотор не идет зарядка
Чтобы инвертировать направление вращения вала шагового двигателя:
Поменяйте местами контакты 5, 6 или 4, 7 для 1 шагового двигателя.
Поменяйте местами контакты 11, 12 или 10, 13 для 2 шагового двигателя.
Чтобы поменять местами оси X, Y поменяйте местами контакты A0, A1.
Видео:Шаговый Двигатель Без Драйвера Stepper Motor Run Without DriverСкачать
Видео версия проекта «Управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.»
Творческая мастерская Мастер Колотушкин 2021
Проекты на базе Arduino для начинающих, электронные самоделки своими руками.
Видео:Подключаем к Arduino джойстик. Управление servo сервоприводомСкачать
Управление шаговым двигателем с помощью джойстика
Вывод 9 подключен к Steps драйвера EasyDriver
Вывод 8 подключен к Direction
Вывод 12 подключен к SLEEP
Вывод А0 подключенн к выводу джойстика Х
Вывод 4 подключен к Key и концевиком
Выводы 2 и 3 к выводу выходу (OUT) концевиков
Питание драйвера Easy Driver подключено к 12V отдельного блока питания
Питание Arduino и драйвера разделено Easy Driver
В программе не требуется использование дополнительных библиотек
Схема подключения |
Видео:Обзор копеечной платы управления шаговым двигателем.Скачать
Sketch code
#define step_pin 9 // Pin 9 connected to Steps pin on EasyDriver
#define dir_pin 8 // Pin 8 connected to Direction pin
#define MS1 10 // Pin 10 connected to MS1 pin
#define MS2 11 // Pin 11 connected to MS2 pin
#define SLEEP 12 // Pin 12 connected to SLEEP pin
#define X_pin A0 // Pin A0 connected to joystick x axis
#define Joy_switch 4 // Pin 4 connected to joystick switch
#define Limit01 2 // Pin 2 connected to Limit switch out
#define Limit02 3 // Pin 3 connected to Limit switch out
int step_speed = 10; // Speed of Stepper motor (higher = slower)
if (analogRead(X_pin) > 712) // check if limit switch is activated
digitalWrite(dir_pin, LOW); // (HIGH = anti-clockwise / LOW = clockwise)
digitalWrite(step_pin, HIGH);
delay(step_speed);
digitalWrite(step_pin, LOW);
delay(step_speed);
>
>
if (analogRead(X_pin) Скопируйте код и вставьте в Arduino IDE
- Свежие записи
- Чем отличается двухтактный мотор от четырехтактного
- Сколько масла заливать в редуктор мотоблока
- Какие моторы бывают у стиральных машин
- Какие валы отсутствуют в двухвальной кпп
- Как снять стопорную шайбу с вала
💥 Видео
Уроки Arduino. Управление моторами с библиотекой GyverMotorСкачать
Драйвер двигателей L298N - Обзор, Тест, Подключение к ArduinoСкачать
Как подключить шаговый двигатель к ArduinoСкачать
Простое управление оборотами шагового двигателя.Скачать
Ардуино. Управление двигателем через джойстикСкачать
Подключение джойстика к Arduino Управление сервоприводами.Скачать
Шаговый двигатель эксперимент запуск без контроллера\драйвераСкачать
4 НЕ СТАНДАРТНЫХ способа запуска шаговых двигателей. Быстрый запуск для проверки.Скачать