Акции
Блог
О 3DiY
  • О компании
  • Реквизиты
  • Партнеры
  • Клиенты
  • Вакансии
Оплата
Доставка
Гос. закупки
Товары под заказ
ВК Видео
Отзывы
Услуги
  • 3D печать
    • 3D печать пластиком FDM/FFF
    • 3D печать фотополимером
Контакты
  • Как до нас добраться
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    3DIY
    Войти
    0Сравнение
    0Избранное
    0Корзина
    3D принтеры3D сканерыПластик для 3D принтераФотополимерыКомплектующие 3DКомплектующие ЧПУЗапчасти 3D принтеров по брендам3D печать на заказ
    3DIY
    Войти
    0Сравнение
    0Избранное
    0Корзина
    3DIY
    Телефоны
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    0
    0
    0
    • Кабинет
    • 0Сравнение
    • 0Избранное
    • 0Корзина
    • Бренды
    • Акции
    • Услуги
      • Услуги
      • 3D печать
        • 3D печать
        • 3D печать пластиком FDM/FFF
        • 3D печать фотополимером
    • Компания
      • Компания
      • О компании
      • Реквизиты
      • Партнеры
      • Клиенты
      • Вакансии
    • Блог
    • Информация
      • Информация
      • Гарантия на товар
      • Возврат товара
      • Положение о персональных данных
      • Политика конфиденциальности
      • Согласие на получение рекламы
      • Пользовательское соглашение
      • Согласие на обработку персональных данных
      • Использование cookie-файлов
      • Договор-оферта
    • Контакты
      • Контакты
      • Как до нас добраться
    8 (800) 500-45-93отдел продаж Россия
    • Телефоны
    • 8 (800) 500-45-93 отдел продаж Россия
    • 8 (495) 565-35-93 отдел продаж Москва
    • info@3d-diy.ru — отдел продаж

      print@3d-diy.ru — 3D печать на заказ

      support@3d-diy.ru — тех. поддержка

      buh@3d-diy.ru — Бухгалтерия
    • Москва, Павелецкая набережная, 2с1
      Как до нас добраться, см. тут
    • пн - пт 09:00—18:00
    Главная
    Блог
    Arduino механика
    Шаговый двигатель 28BYJ-48

    Шаговый двигатель 28BYJ-48

    Шаговый двигатель 28BYJ-48
    Arduino механика 4 января 2024

    Содержание

    • Обзор двигателя
    • Режимы работы
    • Подключение к Arduino
    • Пример использования
    • Часто задаваемые вопросы

    Обзор шагового двигателя 28BYJ-48

    Шаговые двигатели применяют в механических системах точного позиционирования – ЧПУ станках, 3d-принтерах, принтерах, роботах-манипуляторах. Шаговые двигатели преобразуют электрические импульсы в перемещение вала на определенный угол. Минимально возможный угол перемещения шагового двигателя, называется шагом. 

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

    stepper-motor-28BYJ-48-01.jpg

    Рисунок 1. Шаговый двигатель 28BYJ-48 с драйвером на микросхеме ULN2003.

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

    • Напряжение питания – 5В или 12В;
    • Число фаз – 4;
    • Коэффициент редукции – 1/63.68395;
    • Количество шагов ротора – 64;
    • Номинальная скорость вращения – 15 оборот/мин;
    • Крутящий момент – 450 г*см;
    • Размеры (диаметр,высота) –25x18 мм; 
    • Вес – 40 грамм.

    Принципиальная схема шагового двигателя 28BYJ-48 приведена на рис. 2.

    stepper-motor-28BYJ-48-02.jpg

    Рисунок 2. Принципиальная схема шагового двигателя 28BYJ-48.


    Режимы работы двигателя

    Для управления шаговым двигателем 28BYJ 48 используют один из двух режимов подключения.

    • полношаговый режим – 4 ступени импульсов на 1 шаг;

    stepper-motor-28BYJ-48-13.jpg 

    tablica-1.JPG

    • полушаговый режим – 8 ступеней импульсов на 1 шаг.

    stepper-motor-28BYJ-48-14.jpg

    tablica-2.JPG

    Сервоприводы, шаговые двигатели... Различные механические запчасти Arduino можно купить в нашем магазине 3DIY!


    Подключение 28BYJ-48к плате Arduino

    Драйвер двигателя состоит из 7 пар транзисторов Дарлингтона и является усилителем.   Выводы IN1 – IN7 предназначены для подключения к микроконтроллеру, GND и VCC – для питания шагового двигателя. Схема подключения драйвера к плате Arduino показана на рисунке 3.

    stepper-motor-28BYJ-48-03.jpg

    Рисунок 3. Подключение драйвера к плате Arduino.

    Для управления шаговыми двигателями в Arduino IDE есть встроенная библиотека – Stepper. Данная библиотека осуществляет только полношаговый режим коммутации.

    stepper-motor-28BYJ-48-04.jpg

    Рисунок 4. Библиотека Stepper

    Загрузим на плату Arduino пример – скетч stepper_oneRevolution из Examples (см. листинг 1).

    Листинг 1

    // подключение библиотеки #include <Stepper.h> // создание экземпляра объекта: #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 Stepper s28BYJ-48(4076, IN1, IN2, IN3, IN4); void setup() { // установка скорости s28BYJ-48.setSpeed(60); // запуск последовательного порта Serial.begin(9600); } void loop() { // движение в направлении по часовой 1 оборот s28BYJ-48.step(4076); delay(1000); // движение в направлении против часовой 1 оборот s28BYJ-48.step(-4076); delay(1000); } 

    К сожалению, данный скетч отрабатывает неверно, двигатель движется только в одном направлении. Для правильной работы необходимо использовать альтернативные библиотеки, например Accel Stepper. Библиотека Accel Stepper поддерживает не только равномерное движение, но и замедление/ускорение двигателя и работу с несколькими двигателями. Загружаем на плату Arduino скетч из листинга 2.

    Листинг 2

    // подключение библиотеки #include <AccelStepper.h> // создаем экземпляр AccelStepper #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 AccelStepper s28BYJ-48(8, IN1, IN3, IN2, IN4); void setup(){ s28BYJ-48.setMaxSpeed(900.0); s28BYJ-48.setAcceleration(100.0); s28BYJ-48.setSpeed(200); s28BYJ-48.moveTo(2000); } void loop(){ // Изменяем направление, если пройдено заданное число шагов if(s28BYJ-48.distanceToGo()==0) s28BYJ-48.moveTo(-stepper1.currentPosition()); s28BYJ-48.run(); } 

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

    stepper-motor-28BYJ-48-05.jpg

    Рисунок 5. Схема в сборе


    Пример использования

    В качестве примера создадим проект управления шаговым двигателем кнопками, подключенными к плате Arduino.

    Будем использовать следующие компоненты:

    • Плата Arduino Uno – 1;
    • Шаговый двигатель 28BYJ-48 с драйвером – 1;
    • Резистор 10 кОм – 3;
    • Кнопка – 3;
    • Провода.

    Схема соединения представлена на рисунке 6.

    stepper-motor-28BYJ-48-06.jpg

    Рисунок 6. Схема соединений

    Реакция на нажатие кнопок:

    • кнопка 3 – движение двигателя по часовой стрелке;
    • кнопка 1 – против часовой стрелки;
    • кнопка 2 – останов.

    Скетч показан в листинге 3.

    Листинг 3

    // подключение библиотеки #include <AccelStepper.h> // создаем экземпляр AccelStepper #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 AccelStepper s28BYJ-48(8, IN1, IN3, IN2, IN4); // клавиши выбора режима int pinBut []={5,6,7}; int lBut []={0,0,0}; int cBut[]={0,0,0}; // boolean go=false; void setup(){ Serial.begin(9600); s28BYJ-48.setMaxSpeed(1000); s28BYJ-48.setAcceleration(100); s28BYJ-48.setSpeed(-500); Serial.begin(9600); } void loop() { // проверка нажатия кнопок выбора программ for(int i=0;i<3;i++) { cBut[i] = deb(lBut[i],pinButtons[i]); // если нажатие... if (lastButtons[i] == 0 && currentBut[i] == 1) { switch(i) { case 0: // против часовой s28BYJ-48.setSpeed(500); go=true; Serial.println("CW"); break; case 1: // стоп s28BYJ-48.stop(); go=false; Serial.println("stop"); break; case 2: // по часовой s28BYJ-48.setSpeed(-500); go=true; Serial.println("CCW"); break; default: break; } } lBut[i] = cBut[i]; } if(go==true) s28BYJ-48.runSpeed(); } // устранение дребезга int deb (int l,int pin){ int c = digitalRead(pin); if (l != c) { // если изменение delay(5); c = digitalRead(pin); return c; } } 

    Комментарий от нашего читателя:
    "В последнем скетче (листинг 3) я обнаружил неточность в функции устранения дребезга контактов, которая мешает корректной работе программы. Более корректно вынести оператор «return с» за рамки цикла «if». Иначе могут обрабатываться ложные срабатывания в случае использования кнопок без фиксации."

    Имеется сейчас:
    // устранение дребезга int deb (int l,int pin){ int c = digitalRead(pin); if (l != c) { // если изменение delay(5); c = digitalRead(pin); return c; } } 
    Более корректно:
    // устранение дребезга int deb (int l,int pin){ int c = digitalRead(pin); if (l != c) { // если изменение delay(5); c = digitalRead(pin); } return c; } 

    Загружаем скетч на плату Arduino и проверяем работу.

    stepper-motor-28BYJ-48-07.jpg

    Рисунок 7. Схема в сборе.

    stepper-motor-28BYJ-48-08.jpg

    Рисунок 8. Вывод данных в последовательный порт.


    Часто задаваемые вопросы

    1. Нет перемещения шагового двигателя
    • Проверьте правильность подключения драйвера к плате Arduino.
    • Проверьте наличие достаточного внешнего питания для шагового двигателя.


    Товары из статьи

    Быстрый просмотр
    Шаговый двигатель 28BYJ-48 5Вimage
    199 ₽
    Шаговый двигатель 28BYJ-48 5В
    0
    0
    Нет в наличии
    Быстрый просмотр
    Шаговый двигатель 28BYJ-48 12В
    299 ₽
    358.80 ₽
    -17%
    Шаговый двигатель 28BYJ-48 12В
    0
    0
    Нет в наличии

    Документы

    28BYJ-48-listing-01.ino
    591 байт
    28BYJ-48-listing-02.ino
    615 байт
    28BYJ-48-listing-03.ino
    1 Кб

    Это интересно

    Мотор постоянного тока с редуктором 1:48
    Arduino механика
    Мотор постоянного тока с редуктором 1:48
    6 января 2024
    Сервопривод MG995
    Arduino механика
    Сервопривод MG995
    5 января 2024
    Шаговый двигатель 28BYJ-48
    Arduino механика
    Шаговый двигатель 28BYJ-48
    4 января 2024
    Бесколлекторные моторы
    Arduino механика
    Бесколлекторные моторы
    3 января 2024
    Миниатюрный водяной насос-помпа RS-360SH
    Arduino механика
    Миниатюрный водяной насос-помпа RS-360SH
    2 января 2024
    Линейные актуаторы (приводы)
    Arduino механика
    Линейные актуаторы (приводы)
    1 января 2024
    • Комментарии
    Загрузка комментариев...
    Назад к списку
    • Все публикации277
      • 3D принтеры59
      • 3D печать64
      • ЧПУ10
      • Датчики27
      • Модули38
      • 3D сканеры1
      • Arduino механика6
      • Arduino платы8
      • Дисплеи6
      • Кейсы1
      • Компоненты13
      • Мировые новости35
      • Проекты7
      • Сопутствующие2
    Связаться с нами
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Магазин
    Бренды
    Акции
    Каталог
    Услуги
    Компания
    О компании
    Реквизиты
    Партнеры
    Клиенты
    Вакансии
    Информация
    Гарантия на товар
    Возврат товара
    Положение о персональных данных
    Политика конфиденциальности
    Согласие на получение рекламы
    Пользовательское соглашение
    Согласие на обработку персональных данных
    Использование cookie-файлов
    Договор-оферта
    Помощь
    Условия оплаты
    Условия доставки
    Товары под заказ
    Гос. закупки
    Как сделать заказ
    Вопрос-ответ
    2013 - 2026 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники
    Конфиденциальность
    Оферта
    ГлавнаяКаталог0Корзина0ИзбранныеКабинет0Сравнение
    d =
    Наш сайт использует куки. Продолжая им пользоваться, вы соглашаетесь на обработку персональных данных в соответствии с политикой конфиденциальности.
    Согласен