webwinkelkeur logo

4.7 gem.

5101+ beoordelingen
webwinkelkeur logoBekijk alles

5101+ beoordelingen

5101+ beoordelingen

Bestel voor 16:00 voor dezelfde dag verzending

14 dagen retour

NL

Particulier

Zakelijk

GPIO Project 7 - Stepper motor intro

Beginner
30 Minuten
114,90

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.

Aansluitschema

  1. Verbind de steppermotor met de ULN2003 driver:
    • Sluit de connector van de steppermotor aan op de header van de ULN2003-driver.
  2. Verbind de ULN2003 driver met de Raspberry Pi:
    • IN1: Verbind met GPIO 17 (pin 11).
    • IN2: Verbind met GPIO 27 (pin 13).
    • IN3: Verbind met GPIO 22 (pin 15).
    • IN4: Verbind met GPIO 23 (pin 16).
  3. Voeding voor de ULN2003 driver:
    • VCC: Verbind met 5V (pin 2).
    • GND: Verbind met GND (pin 6).

Pinout Referentie

GPIO

Pin #

Functie

Aansluiting

GPIO 17Pin 11IN1ULN2003-driver
GPIO 27Pin 13IN2ULN2003-driver
GPIO 22Pin 15IN3ULN2003-driver
GPIO 23Pin 16IN4ULN2003-driver
5VPin 2VoedingULN2003-driver
GNDPin 6Aarde (Ground)ULN2003-driver

Python-code in Thonny

Stap 1: Installeer RPi.GPIO

Controleer of de RPi.GPIO-bibliotheek is geïnstalleerd. Dit is meestal standaard in Raspberry Pi OS aanwezig.

pip install RPi.GPIO

Stap 2: Schrijf je code

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

Stap 3: Sla het bestand op

Klik op Bestand > Opslaan als en noem het bestand stepper_motor_intro.py.

Stap 4: Voer het script uit

Klik op de groene Run-knop (▶) bovenin de Thonny-interface.

 

Hoe werkt het?

  1. Stap-sequentie:
    • De motor draait door de sequenties in de step_sequence-lijst te activeren.
    • De step_motor()-functie controleert hoeveel stappen de motor draait en de snelheid van de stappen.
  2. Snelheid aanpassen:
    • Pas de waarde van delay aan in de step_motor()-functie om de snelheid van de motor te veranderen.
  3. Richting aanpassen:
    • Gebruik een negatieve waarde voor steps om de motor in de andere richting te draaien.

Resultaat

  • Vooruit draaien: De steppermotor draait 512 stappen vooruit (één volledige rotatie).
  • Achteruit draaien: De steppermotor draait 512 stappen achteruit.

Experimenteren

  1. Snelheid aanpassen:
    • Verander de waarde van delay in step_motor() (bijvoorbeeld 0.001 voor sneller of 0.005 voor langzamer draaien).
  2. Aantal stappen aanpassen:
    • Pas het aantal stappen aan om een halve rotatie (256 stappen) of meerdere rotaties uit te voeren.
  3. Gecombineerde bewegingen:
    • Combineer vooruit- en achteruitbewegingen in verschillende snelheden om complexe bewegingen te creëren.