Подключение шагового двигателя к ESP32

Биполярный шаговый двигатель

Шаговый двигатель к ESP32 подключают через драйвер: вывод платы не может питать обмотки. В симуляторе четыре фазы A+, A−, B+, B− идут на плату напрямую для простоты.

Схема подключения шагового двигателя к ESP32

Шаговый двигательESP32
A+GPIO14
A-GPIO27
B+GPIO26
B-GPIO25

Схема из примера «Шаговый двигатель».

Шаговый двигатель

Открыть пример целиком

Выводы Шаговый двигатель

ВыводНазначение
A+обмотка A, начало
A-обмотка A, конец
B+обмотка B, начало
B-обмотка B, конец

Код для ESP32

const int PINS[4] = {14, 27, 26, 25};

// Полношаговая последовательность: две обмотки под током одновременно.
const int SEQ[4][4] = {
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1},
};

void step(int phase) {
  for (int i = 0; i < 4; i++) digitalWrite(PINS[i], SEQ[phase][i]);
}

void setup() {
  for (int i = 0; i < 4; i++) pinMode(PINS[i], OUTPUT);
}

void loop() {
  for (int i = 0; i < 200; i++) { step(i % 4); delay(5); }   // оборот вперёд
  delay(500);
  for (int i = 200; i > 0; i--) { step(i % 4); delay(5); }   // и назад
  delay(500);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на ESP32

В железе

В симуляторе обмотки подключены к выводам напрямую — так видна последовательность шагов. В железе так нельзя: обмотке нужны сотни миллиампер, вывод даёт двадцать. Ставят драйвер: A4988 или DRV8825 (контроллер даёт STEP и DIR) для NEMA17, ULN2003 для маленького 28BYJ-48.

Частые ошибки при подключении к ESP32

Другие детали для ESP32