Jak sterować silnikiem krokowym za pomocą Raspberry Pi

D

Daniel Zhang

Ostatnia aktualizacja Aug 17, 2026

  1. Wprowadzenie

Raspberry Pi to popularny komputer jednopłytkowy szeroko stosowany w projektach hobbystycznych i przemysłowych. Jest to w zasadzie mały komputer wielkości karty kredytowej. Jest szeroko wykorzystywany w różnych projektach, w tym do sterowania silnikami krokowymi — co jest częstym zadaniem w aplikacjach sterowania ruchem. W tym artykule dowiesz się, jak używać języka programowania Python i biblioteki RPi.GPIO do sterowania silnikiem krokowym, wraz z odpowiednimi instrukcjami dotyczącymi okablowania.

  1. Wymagane materiały
  1. Raspberry Pi (zalecany Raspberry Pi 3B+ lub nowszy)
  2. Silnik krokowy (np. NEMA 17)
  3. Moduł sterownika silnika krokowego (np. DRV8825 lub A4988)
  4. Przewody połączeniowe (złącza DuPont)
  5. Zasilacz DC 12V
  6. Płytka stykowa (opcjonalnie)
  7. Kondensator odsprzęgający (np. elektrolityczny 100 µF)
  1. Instrukcje dotyczące okablowania

Uwaga dotycząca bezpieczeństwa: Zawsze podłączaj okablowanie silnika i sterownika przed podaniem zasilania. Sprawdź dwukrotnie wszystkie połączenia, aby uniknąć uszkodzenia Raspberry Pi lub modułu sterownika.

  1. Podłącz cztery przewody silnika krokowego do pinów A1, A2, B1 i B2 na module sterownika silnika.
  2. Podłącz dodatni biegun zasilacza 12V do pinu VMOT na module sterownika, a biegun ujemny do pinu GND. Umieść kondensator odsprzęgający (np. elektrolityczny 100 µF) między pinami VMOT i GND, jak najbliżej modułu sterownika, aby tłumić przepięcia.
  3. Podłącz pin zasilania 5V Raspberry Pi (fizyczny pin 2 lub pin 4) do pinu VCC na module sterownika, a pin GND (np. fizyczny pin 6) do pinu GND na module sterownika.
  4. Podłącz następujące piny GPIO BCM na Raspberry Pi do odpowiednich pinów na module sterownika:
GPIO Raspberry Pi (BCM) Pin fizyczny Pin modułu sterownika
GPIO 17 Pin 11 DIR
GPIO 18 Pin 12 STEP
GPIO 27 Pin 13 MS1
GPIO 22 Pin 15 MS2
GPIO 23 Pin 16 ENABLE

Wskazówka: Pin ENABLE na większości modułów A4988/DRV8825 jest aktywny w stanie niskim. Podanie stanu LOW na ten pin włącza wyjście sterownika.

  1. Implementacja kodu w Pythonie

Najpierw zainstaluj bibliotekę RPi.GPIO. Wprowadź następujące polecenia w terminalu:

sudo apt-get update
sudo apt-get install python3-rpi.gpio

Następnie utwórz plik Python o nazwie stepper_motor.py i wprowadź następujący kod:

import time
import RPi.GPIO as GPIO

# Definicja pinów (numeracja BCM)
DIR = 17
STEP = 18
MS1 = 27
MS2 = 22
ENABLE = 23

# Ustawienie trybu GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.setup(MS1, GPIO.OUT)
GPIO.setup(MS2, GPIO.OUT)
GPIO.setup(ENABLE, GPIO.OUT)

# Włączenie sterownika i ustawienie kierunku
GPIO.output(ENABLE, GPIO.LOW)   # Włączenie sterownika (aktywny w stanie niskim)
GPIO.output(DIR, GPIO.HIGH)     # Kierunek zgodny z ruchem wskazówek zegara

# Ustawienie trybu krokowego w zależności od modelu sterownika (np. A4988)
GPIO.output(MS1, GPIO.HIGH)     # 1/4 kroku
GPIO.output(MS2, GPIO.LOW)

# Sterowanie obrotem silnika
steps = 200
delay = 0.001  # Krótsze opóźnienie oznacza większą prędkość

for _ in range(steps):
    GPIO.output(STEP, GPIO.HIGH)
    time.sleep(delay)
    GPIO.output(STEP, GPIO.LOW)
    time.sleep(delay)

# Czyszczenie GPIO
GPIO.cleanup()

Na koniec zapisz plik i uruchom go w terminalu:

python3 stepper_motor.py
  1. Podsumowanie

W tym artykule przedstawiono, jak używać Raspberry Pi do sterowania silnikiem krokowym, w tym instrukcje dotyczące okablowania oraz kod w Pythonie wykorzystujący bibliotekę RPi.GPIO. Postępując zgodnie z tymi krokami, można łatwo osiągnąć sterowanie silnikiem. Dostosuj parametry w kodzie (takie jak liczba kroków, opóźnienie i ustawienia mikrokroku) zgodnie z wymaganiami projektu.