Урок 22: Шаговый Двигатель

1. Введение

Шаговый двигатель — это электромеханическое устройство, которое может преобразовывать электрические импульсы в дискретные механические движения. Вал или шпиндель шагового двигателя вращается на дискретные шаги, когда на него подаются электрические управляющие импульсы в правильной последовательности.

Вращение мотора имеет несколько прямых связей с этими приложенными входными импульсами: - Последовательность импульсов определяет направление вращения. - Частота импульсов — скорость вращения. - Количество импульсов — угол поворота.

Одно из главных преимуществ шагового двигателя — точное управление в системе с открытым контуром (без обратной связи). Это упрощает и удешевляет систему.

Внешний вид шагового двигателя 28BYJ-48

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. Подключение

Схема подключения шагового двигателя к Arduino через ULN2003
  • Подключите шаговый двигатель к драйверу ULN2003.

  • IN1–IN4 драйвера — к пинам 8, 9, 10, 11 Arduino.

  • Питание двигателя — 5V.

6. Пример кода

stepper_motor.ino
//Шаговый Двигатель

#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