5101+ beoordelingen
Bestel voor 16:00 voor dezelfde dag verzending
14 dagen retour
NL
Particulier
Zakelijk
In dit project leer je hoe je een steppermotor aanstuurt met behulp van een Raspberry Pi. Een steppermotor draait in precieze stappen, waardoor je nauwkeurig bewegingen kunt controleren. Dit project gebruikt een 28BYJ-48 steppermotor en een ULN2003 driver.
GPIO | Pin # | Functie | Aansluiting |
GPIO 17 | Pin 11 | IN1 | ULN2003-driver |
GPIO 27 | Pin 13 | IN2 | ULN2003-driver |
GPIO 22 | Pin 15 | IN3 | ULN2003-driver |
GPIO 23 | Pin 16 | IN4 | ULN2003-driver |
5V | Pin 2 | Voeding | ULN2003-driver |
GND | Pin 6 | Aarde (Ground) | ULN2003-driver |
Controleer of de RPi.GPIO-bibliotheek is geïnstalleerd. Dit is meestal standaard in Raspberry Pi OS aanwezig.
pip install RPi.GPIO
Open de Thonny Python IDE en voer de volgende code in:
import RPi.GPIO as GPIO
from time import sleep
# GPIO-pinnen koppelen aan ULN2003 IN-pinnen
IN1 = 17
IN2 = 27
IN3 = 22
IN4 = 23
# Pinnen instellen
GPIO.setmode(GPIO.BCM)
GPIO.setup(IN1, GPIO.OUT)
GPIO.setup(IN2, GPIO.OUT)
GPIO.setup(IN3, GPIO.OUT)
GPIO.setup(IN4, GPIO.OUT)
# Stepper motor sequence (4-fase stappen)
step_sequence = [
[1, 0, 0, 0],
[1, 1, 0, 0],
[0, 1, 0, 0],
[0, 1, 1, 0],
[0, 0, 1, 0],
[0, 0, 1, 1],
[0, 0, 0, 1],
[1, 0, 0, 1]
]
def set_step(w1, w2, w3, w4):
"""Stel de status van de motorpinnen in."""
GPIO.output(IN1, w1)
GPIO.output(IN2, w2)
GPIO.output(IN3, w3)
GPIO.output(IN4, w4)
def step_motor(steps, delay, reverse=False):
"""Draai de motor een aantal stappen."""
if reverse:
sequence = step_sequence[::-1] # Keer de sequentie om
else:
sequence = step_sequence
for _ in range(abs(steps)):
for step in sequence:
# Zorg ervoor dat elke stap 4 waarden bevat
if len(step) == 4:
set_step(*step)
else:
raise ValueError("Step sequence must contain exactly 4 values")
sleep(delay)
try:
print("Stepper motor draait vooruit...")
step_motor(512, 0.002) # Draai 512 stappen vooruit
sleep(1)
print("Stepper motor draait achteruit...")
step_motor(512, 0.002, reverse=True) # Draai 512 stappen achteruit
sleep(1)
except KeyboardInterrupt:
print("\nProgramma gestopt.")
finally:
GPIO.cleanup() # Reset de GPIO-instellingen
Klik op Bestand > Opslaan als en noem het bestand stepper_motor_intro.py.
Klik op de groene Run-knop (▶) bovenin de Thonny-interface.