Урок 22: Шаговый Двигатель
1. Введение
Шаговый двигатель — это электромеханическое устройство, которое может преобразовывать электрические импульсы в дискретные механические движения. Вал или шпиндель шагового двигателя вращается на дискретные шаги, когда на него подаются электрические управляющие импульсы в правильной последовательности.
Вращение мотора имеет несколько прямых связей с этими приложенными входными импульсами: - Последовательность импульсов определяет направление вращения. - Частота импульсов — скорость вращения. - Количество импульсов — угол поворота.
Одно из главных преимуществ шагового двигателя — точное управление в системе с открытым контуром (без обратной связи). Это упрощает и удешевляет систему.

2. Необходимое оборудование
Кол-во |
Деталь |
---|---|
1 |
Плата Arduino UNO |
1 |
Шаговый двигатель (например, 28BYJ-48) |
1 |
Драйвер шагового двигателя (ULN2003) |
4 |
Перемычки |
1 |
USB-кабель |
3. Особенности шаговых двигателей
Угол вращения пропорционален входному импульсу
Полный крутящий момент на месте (если обмотки возбуждены)
Точное позиционирование и повторяемость
Отличный отклик на запуск/остановку/смену направления
Нет контактных щёток — высокая надёжность
Простое управление с открытым контуром
Возможна очень низкая скорость вращения
Широкий диапазон скоростей
4. Параметры двигателя 28BYJ-48
Параметр |
Значение |
---|---|
Модель |
28BYJ-48 |
Номинальное напряжение |
5VDC |
Число фаз |
4 |
Соотношение редуктора |
1/64 |
Угол шага |
5.625°/64 |
Частота |
100Hz |
Сопротивление |
50Ω ±7% (25℃) |
Частота холостого хода |
>600Hz |
Частота внешнего хода |
>1000Hz |
Крутящий момент втягивания |
>34.3mN·m (120Hz) |
Собственный крутящий момент |
>34.3mN·m |
Трение |
600–1200 gf·cm |
Крутящий момент удержания |
300 gf·cm |
Сопротивление изоляции |
>10MΩ (500V) |
Электрическая прочность |
600VAC / 1mA / 1s |
Класс изоляции |
A |
Повышение температуры |
<40K (120Hz) |
Шум |
<35dB (120Hz, без нагрузки, 10см) |
5. Подключение

Подключите шаговый двигатель к драйверу ULN2003.
IN1–IN4 драйвера — к пинам 8, 9, 10, 11 Arduino.
Питание двигателя — 5V.
6. Пример кода
//Шаговый Двигатель
#include <Stepper.h>
#define STEPS 100
Stepper stepper(STEPS, 8, 9, 10, 11);
int previous = 0;
void setup(){
stepper.setSpeed(90);
}
void loop(){
int val = analogRead(0);
stepper.step(val - previous);
previous = val;
}
7. Частые ошибки
Двигатель не вращается — проверьте питание и подключение IN1–IN4.
Двигатель дёргается — перепутаны провода или недостаточно питания.
Arduino перезагружается — двигатель питается от платы, используйте внешний источник.
Двигатель сильно греется — не отключён после работы, используйте sleep/disable.
8. Практические задачи
Управляйте скоростью вращения с помощью потенциометра.
Реализуйте реверс направления кнопкой.
Сделайте шаговый индикатор или стрелочный прибор.
9. Идеи для расширения
Использование библиотеки AccelStepper для плавного разгона/торможения
Управление несколькими шаговыми двигателями
Применение в 3D-принтерах, ЧПУ, робототехнике
Подробнее о библиотеке Stepper: https://www.arduino.cc/en/Reference/Stepper