Jak podłączyć sterownik silnika krokowego do Arduino

D

Daniel Zhang

Ostatnia aktualizacja Aug 17, 2026

Wykonaj poniższe kroki, aby podłączyć sterownik silnika krokowego do Arduino.

Kroki podłączenia

  1. Podłącz piny PUL+ i DIR+ sterownika do pinów cyfrowych Arduino. Na przykład użyj pinu 9 dla PUL+ i pinu 8 dla DIR+.
  2. Podłącz piny PUL− i DIR− sterownika do pinu GND Arduino, aby ustanowić wspólną masę.
  3. Napisz program na komputerze, przypisując pin 9 jako wyjście impulsowe (PUL), a pin 8 jako wyjście kierunku (DIR).
  4. Wgraj program do Arduino i zasil Arduino za pomocą zasilacza 5 V.

Ważne: Upewnij się, że Arduino i sterownik silnika krokowego mają wspólną masę (GND). Przed włączeniem systemu sprawdź, czy wszystkie poziomy napięć są kompatybilne.

Schemat

Poniższy schemat przedstawia podstawowe połączenia między Arduino, sterownikiem silnika krokowego, zasilaczem i silnikiem krokowym.

Przykładowy kod

int x;

void setup() {
  pinMode(9, OUTPUT); // Pin 9 jako PUL (impuls)
  pinMode(8, OUTPUT); // Pin 8 jako DIR (kierunek)
}

void loop() {
  digitalWrite(8, HIGH); // Ustawienie kierunku: HIGH
  for (x = 0; x < 400; x++) { // 400 kroków (jeden obrót przy ustawieniu sterownika 400 impulsów/obrót)
    digitalWrite(9, HIGH);
    delayMicroseconds(500); // Steruje prędkością obrotową
    digitalWrite(9, LOW);
    delayMicroseconds(500); // Steruje prędkością obrotową
  }
  delay(1000); // Pauza 1 sekunda

  digitalWrite(8, LOW); // Ustawienie kierunku: LOW
  for (x = 0; x < 400; x++) {
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
  }
  delay(1000); // Pauza 1 sekunda
}

Wyjaśnienie kodu

  • Funkcja pinMode() konfiguruje pin 9 jako wyjście impulsowe (PUL), a pin 8 jako wyjście kierunku (DIR).
  • Funkcja loop() zawiera dwie pętle for, z których każda generuje 400 kroków. Pierwsza pętla ustawia DIR na HIGH i obraca silnik w jednym kierunku; druga pętla ustawia DIR na LOW i obraca go w przeciwnym kierunku. Funkcje digitalWrite() i delayMicroseconds() razem generują ciąg impulsów i sterują prędkością obrotową.
  • Wywołanie delay(1000) po każdej pętli for wstrzymuje program na 1 sekundę przed zmianą kierunku.