Всем привет! Сегодня я покажу вам как подключить шаговый двигатель к Arduino.
В этом уроке использованы:
1. Плата Arduino Uno
2. Компьютер с установленной Arduino IDE и драйверами для плат
3. Соединительные провода
4. Шаговый двигатель 28byj-48 и драйвер ULN2003
Что такое шаговый двигатель
Само название шаговый двигатель говорит о том, что этот двигатель способен поворачиваться именно шагами, например, нам нужно чтобы он повернулся именно на 20 градусов, а не больше и не меньше. Шаговые двигатели применяются в принтерах, манипуляторах, робототехнике и в других устройствах, где нужна большая точность. Управляются шаговые двигатели с помощью драйвера. Для управления шаговым двигателем 28byj-48 был создан драйвер ULN2003. Также им можно управлять и с помощью драйвера L298N.
Управлять шаговым двигателем можно как с помощью библиотеки Stepper.h, которая уже идёт вместе с Arduino IDE, так и с помощью библиотеки AccelStepper.h. Я буду использовать библиотеку AccelStepper.h, так как она имеет больше возможностей.
Скачать библиотеку AccelStepper можно отсюда.
Схема подключения
IN1(ULN2003) - Pin2(плата Arduino)
IN2(ULN2003) - Pin3(плата Arduino)
IN3(ULN2003) - Pin4(плата Arduino)
IN4(ULN2003) - Pin5(плата Arduino)
+(ULN2003) - 5V(плата Arduino)
-(ULN2003) - Gnd(плата Arduino)
Внимание! При больших нагрузках на двигатель ни в коем случае не подавайте на драйвер питание от Arduino! Подключать его лучше к отдельному источнику питания!
Скетч
В этом примере мотор вращается сначала в одну сторону постепенно замедляясь, а затем останавливается и начинает вращаться в другую сторону.
#include <AccelStepper.h>
#define HALFSTEP 8
// Пины управления двигателем
int Pin1 = 2; // IN1 ULN2003
int Pin2 = 3; // IN2 ULN2003
int Pin3 = 4; // IN3 ULN2003
int Pin4 = 5; // IN4 ULN2003
// Инициализация двигателя
AccelStepper stepper_motor(HALFSTEP, Pin1, Pin3, Pin2, Pin4);
void setup(){
stepper_motor.setMaxSpeed(1000.0);
stepper_motor.setAcceleration(100.0);
stepper_motor.setSpeed(200);
stepper_motor.moveTo(20000);
}
void loop(){
// Изменение направления при достижении двигателем заданного положения
if(stepper_motor.distanceToGo()==0)
stepper_motor.moveTo(-stepper1.currentPosition());
stepper_motor.run();
}
Компилятор почему-то при копировании из Arduino-IDE ругался на строку #include <AccelStepper.h>. Чтобы от этого избавиться нужно написать её вручную.
Вывод
В этой статье вы научились подключать шаговый двигатель к Arduino и управлять им. А на этот раз всё, всем спасибо за внимание! Не забудьте оценить статью, для вас это не сложно, а для меня очень нужно. Пишите вопросы в комментариях, я постараюсь на них ответить.