Как подключить драйвер шагового двигателя к Arduino

D

Daniel Zhang

Обновлено Aug 17, 2026

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

Шаги подключения

  1. Подключите выводы PUL+ и DIR+ драйвера к цифровым выводам Arduino. Например, используйте Pin 9 для PUL+ и Pin 8 для DIR+.
  2. Подключите выводы PUL− и DIR− драйвера к выводу GND Arduino для обеспечения общей земли.
  3. Напишите программу на компьютере, в которой Pin 9 назначен как выход импульсов (PUL), а Pin 8 — как выход направления (DIR).
  4. Загрузите программу в Arduino и подайте питание через источник 5 В.

Важно: Убедитесь, что Arduino и драйвер шагового двигателя имеют общую землю (GND). Перед включением системы проверьте совместимость всех уровней напряжения.

Схема подключения

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

Пример кода

int x;

void setup() {
  pinMode(9, OUTPUT); // Pin 9 как PUL (импульс)
  pinMode(8, OUTPUT); // Pin 8 как DIR (направление)
}

void loop() {
  digitalWrite(8, HIGH); // Установка направления: HIGH
  for (x = 0; x < 400; x++) { // 400 шагов (один оборот при настройке драйвера 400 импульсов/об)
    digitalWrite(9, HIGH);
    delayMicroseconds(500); // Управление скоростью вращения
    digitalWrite(9, LOW);
    delayMicroseconds(500); // Управление скоростью вращения
  }
  delay(1000); // Пауза 1 секунда

  digitalWrite(8, LOW); // Установка направления: LOW
  for (x = 0; x < 400; x++) {
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
  }
  delay(1000); // Пауза 1 секунда
}

Пояснение к коду

  • Функция pinMode() настраивает Pin 9 как выход импульсов (PUL), а Pin 8 — как выход направления (DIR).
  • Функция loop() содержит два цикла for, каждый из которых выполняет 400 шагов. Первый цикл устанавливает DIR в HIGH и вращает двигатель в одном направлении; второй цикл устанавливает DIR в LOW и вращает его в противоположном направлении. Функции digitalWrite() и delayMicroseconds() совместно формируют последовательность импульсов и управляют скоростью вращения.
  • Вызов delay(1000) после каждого цикла for приостанавливает программу на 1 секунду перед сменой направления.