Сегодня в уроке подключим шаговый двигатель 28BYJ-48 к Arduino и научимся вращать вал двигателя в разные стороны и изменять скорость вращения с помощью потенциометра и энкодера KY-040.
Кратко, что такое шаговый двигатель (ШД) - это двигатель, который способен осуществлять вращение на 1 шаг. Шаг — это угол, который обусловлен устройством каждого конкретного шагового двигателя.
Характеристики шагового двигателя 28BYJ-48:
Вот так выглядит схема шагового двигателя 28BYJ-48
Подавая сигналы в определённом порядке на выводы двигателя, двигатель можно вращать по часовой стрелке.
Для шагового режима.
Для полушагового режима.
Для урока понадодиться:
В связи с тем, что двигатель 28BYJ-48 работает от 5в и при небольших токах, его можно подключить на прямую к Arduino.
Схема подключения к Arduino UNO будет следующая.
Для вращения ШД достаточно подавать сигналы по схеме, которую мы рассмотрели выше.
Для этого можно сделать массив подачи сигнала на пины микроконтроллера.
И в цикле выполнять каждую строчку массива. Но есть решение с более компактным кодом. Нашел я данный пример на канале Дмитрия Осипова. За что ему отельное спасибо!
Код для вращения в одну и в другую сторону будет вот таким.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Также у Дмитрия Осипова есть код для изменения скорости вращения с помощью потенциометра. Я его немного доработал, сделал обработку нажатия кнопки без задержки в 500 мс. Сейчас двигатель стал вращаться в обратную сторону без видимой задержки.
Для подключения буду использовать модуль SBT0811 на драйвере ULN2003.
Драйвер
устроен вот таким образом.
Подключим все по схеме и загрузим код в Arduino NANO.
Схема подключения для Arduino UNO будет аналогичной.
Как видим, двигатель без проблем вращается по часовой стрелке и против часовой, при нажатии на кнопку вращается в противоположном направлении. При вращении потенциометра в одну сторону - скорость уменьшается, при вращении в противоположном направлении скорость увеличивается.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Для уменьшения количества элементов в схеме решил заменить потенциометр и тактовую кнопку на энкодер вращения KY-040. Как подключить энкодер вращения к Arduino рассказывал в предыдущем уроке.
Подключаем шаговый двигатель 28BYJ-48 и энкодер к Arduino по схеме.
Проводим небольшую доработку кода и получим вот такой результат.
Если нажать на энкодер, меняется направление вращения. А при вращении энкодера по часовой стрелке - скорость увеличивается. Если вращать против часовой стрелки - скорость снижается.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Вы также можете без проблем воспользоваться примером из стандартной библиотеки Stepper, которая позволит сделать тоже самое и при меньшем объёме кода. Но библиотека не даст вам понять, как это все устроено.
Пишите в комментариях, что бы вы хотели сделать на шаговых двигателях, и какие примеры вас интересуют. Чем больше будет откликов, тем чаше будут выходить проекты и уроки на сайте.
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
![]() |
управления шаговым двигателем 28BYJ-48 с помощью Энкодера.ino | 4 Kb | 2302 | Скачать |
![]() |
управления шаговым двигателем 28BYJ-48 с помощью кнопки и потенциометра .ino | 5 Kb | 2285 | Скачать |
![]() |
с использованием библиотеки Stepper.ino | 1 Kb | 1809 | Скачать |
![]() |
Даташит на шаговый двигатель 28BYJ-48.pdf | 193 Kb | 1184 | Скачать |
Вернуться в раздел: Уроки Arduino: Подключение датчиков и модулей к Arduino Дата публикации 6 марта , 2020
Читайте также
Добрый день. Весьма требуется собрать схему управления шаговым двигателем с помощью энкодера. двигатель с драйвером sbt0811, хочу сделать так, чтобы при вращении энкодера в одну сторону двигатель вращался влево, при вращении энкодера в другую сторону- двигатель вращался вправо. Сломал всю голову, уже сил нет никаких)) помогайте)
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.