Raspberry Pi - Stappenmotor

Deze handleiding leert u hoe u met een Raspberry Pi een stappenmotor aanstuurt met een L298N Driver. We gaan in detail bekijken:

Deze tutorial is toepasbaar op alle typen bipolaire stappenmotoren met vier draden. We gebruiken een NEMA 17 stappenmotor als voorbeeld.

Raspberry Pi Stappenmotor L298N Driver

Wilt u een ander type stappenmotor aansturen? Bekijk dan onze Raspberry Pi - 28BYJ-48 Stappenmotor handleiding.

Hardware Benodigdheden

1×Raspberry Pi 5
1×Stappenmotor Nema 17
1×L298N Motordriver Module
1×12V Voedingsadapter
1×DC Voedingsaansluiting
1×Jumperdraden
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Stappenmotor

Er bestaan twee voorkomende typen stappenmotoren:

  • bipolair: deze motor heeft vier draadjes
  • unipolair: deze motor heeft vijf of zes draadjes

Bij een 6-draads unipolaire stappenmotor kunnen we vier van de zes draadjes gebruiken en deze aansturen alsof het een bipolaire stappenmotor is.

Voor een 5-draads unipolaire stappenmotor verwijzen we u naar Raspberry Pi - aansturen 28BYJ-48 stappenmotor met ULN2003 driver.

In deze tutorial concentreren we ons uitsluitend op de bipolaire stappenmotor.

Bipolaire Stappenmotor pinout

De bipolaire stappenmotor heeft vier pennen en de naamgeving van deze pennen varieert per fabrikant. De volgende tabel geeft een overzicht van de meest voorkomende namen:

PIN NR Naam 1 Naam 2 Naam 3
1 A+ A A
2 A- A C
3 B+ B B
4 B- B D
Bipolaire Stappenmotor pinout

De uitlijning van de pennen, de kleurcodering en de labels kunnen verschillen per fabrikant. Om de correcte koppeling tussen draadkleur en pinnaam te achterhalen, raadpleegt u de datasheet of handleiding. Afbeelding hierboven toont details van twee verschillende motors met verschillende labelingen en kleuren.

Stappen per Omwenteling

De specificatie van de motor geeft de DEG_PER_STEP aan (graden per stap). Afhankelijk van de besturingstechniek kan het aantal STEPS_PER_REVOLUTION worden berekend met onderstaande tabel:

Besturingsmethode Stappen per Omwenteling Werkelijk aantal graden per stap
Volledige stap STEPS_PER_REVOLUTION = 360 / DEG_PER_STEP DEG_PER_STEP
Halve stap STEPS_PER_REVOLUTION = (360 / DEG_PER_STEP) * 2 DEG_PER_STEP / 2
Microstap (1/n) STEPS_PER_REVOLUTION = (360 / DEG_PER_STEP) * n DEG_PER_STEP / n

Bijvoorbeeld, als in de datasheet staat dat de motor 1.8 graden per stap draait:

Besturingsmethode Stappen per Omwenteling Werkelijk aantal graden per stap
Volledige stap 200 stappen/omwenteling 1.8°
Halve stap 400 stappen/omwenteling 0.9°
Microstap (1/n) (200 * n) stappen/omwenteling (1.8 / n)°

Hoe een stappenmotor aansturen met Raspberry Pi

Raspberry Pi kan signalen genereren om de stappenmotor aan te sturen, maar deze signalen voldoen niet qua spanning en/of stroomsterkte om de stappenmotor direct te laten werken. Daarom is een hardware driver nodig tussen Raspberry Pi en de stappenmotor. Deze driver heeft twee functies:

  • Het versterken van de aansturingssignalen van Raspberry Pi in stroom en spanning
  • Het beschermen van de Raspberry Pi tegen de hogere stroom en spanning die de stappenmotor vereist

Er zijn verschillende hardware drivers beschikbaar om stappenmotoren aan te sturen. Een van de meest gebruikte drivers voor stappenmotoren is de L298N Driver.

Over L298N Driver

Een L298N Driver kan twee DC-motoren of een stappenmotor aansturen. In deze handleiding leren we hoe u deze kunt gebruiken om een stappenmotor te regelen.

L298N Driver Pinout

L298N Driver pinout

De L298N Driver heeft 11 pennen en drie jumpers:

  • VCC pin: Levert de voedingsspanning voor de motor, dit kan variëren van 5 tot 35V.
  • GND pin: Dit is de gemeenschappelijke massa (0V), deze moet verbonden zijn met GND.
  • 5V pin: Levert voeding voor de L298N module zelf; kan worden gevoed via 5V van de Raspberry Pi.
  • IN1, IN2, IN3, IN4 pennen: Deze verbinden met de Raspberry Pi GPIO om stuurpulsen te ontvangen voor aansturing van de stappenmotor.
  • OUT1, OUT2, OUT3, OUT4 pennen: Deze verbinden met de aansluitingen van de stappenmotor.
  • ENA, ENB jumpers: Gebruikt om de stappenmotor aan te zetten; beide jumper's ENA en ENB moeten geplaatst zijn.
  • 5V-EN jumper: Als deze geplaatst blijft, wordt de interne module voeding van VCC afgenomen en hoeft de 5V pin niet aangesloten te worden. Wordt deze jumper verwijderd, dan moet de module voeding via de 5V pin worden gevoed.

De L298N driver heeft twee voedingen:

  • Eén voor de stappenmotor (via VCC en GND pennen): 5 tot 35 V.
  • Eén voor de interne werking van het module (5V en GND pennen): 5 tot 7 V. Als de 5V-EN jumper geplaatst is, hoeft deze voeding niet apart aangesloten te worden.

Aansluitschema

Raspberry Pi Stappenmotor L298N Driver aansluitschema

This image is created using Fritzing. Click to enlarge image

※ Notiz:

  • Houd de drie jumpers op de L298N module geplaatst als de voedingsspanning van de motor 12V of lager is.
  • De pinuitgangen van stappenmotoren kunnen verschillen per fabrikant. Raadpleeg onderstaande tabellen voor de correcte aansluiting.

Tabel aansluiting tussen Raspberry Pi en L298N Driver

Raspberry Pi pins L298N pins
12 IN1
16 IN2
20 IN3
21 IN4

Tabel aansluiting tussen L298N Driver en Stappenmotor

Belangrijk!: Let niet op de volgorde van de draden van de stappenmotor in het aansluitschema hierboven; dit is slechts een illustratie. De pinpositie van aansluitingen kan verschillen per fabrikant. Volg de tabel hieronder voor juiste aansluiting:

L298N pennen Stappenmotor pennen Of Of
OUT1 A+ A A
OUT2 A- A C
OUT3 B+ B B
OUT4 B- B D

Voordat u een stappenmotor aanschaft, adviseren wij de datasheet of specificatie van de motor te controleren. Zorg dat er een koppeling is tussen pin kleur en naam. Bijvoorbeeld, deze stappenmotor heeft onderstaande kleurcodering zoals in de afbeelding getoond:

Stappenmotor spoel kleurcodering

Op basis van die kleurcodering ziet de aansluitings-tabel er als volgt uit:

L298N pennen Stappenmotor pennen Draadkleur
OUT1 A zwarte draad
OUT2 C groene draad
OUT3 B rode draad
OUT4 D blauwe draad

※ Notiz:

In de aansluitings-tabellen tussen stappenmotor en L298N Driver zijn er meerdere mogelijke bedradingen. Zo kunnen OUT1 en OUT2, evenals OUT3 en OUT4 onderling gewisseld worden. Let op: hiermee verandert mogelijk de draairichting van de motor (van rechtsom naar linksom of andersom).

Raspberry Pi Code - Stappenmotor Code

De volgende code:

  • Laat de motor één omwenteling met de klok mee draaien
  • Pauzeert de motor 5 seconden
  • Draait vervolgens één omwenteling tegen de klok in
  • Pauzeert weer 5 seconden
  • Herhaalt dit proces oneindig lang

Snelle stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem op uw Pi hebt geïnstalleerd.
  • Controleer dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat de Raspberry Pi internettoegang heeft als u bibliotheken wilt installeren.
  • Als dit uw eerste keer is dat u een Raspberry Pi gebruikt, bekijk dan de Raspberry Pi aan de slag gids voor de basis.
  • Maak verbinding met uw Raspberry Pi via SSH met behulp van de ingebouwde SSH client op Linux/macOS of PuTTY op Windows. Zie de handleiding hoe uw pc verbinden met Raspberry Pi via SSH.
  • Controleer of de RPi.GPIO bibliotheek geïnstalleerd is. Zo niet, installeer deze met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python scriptbestand aan met de naam stepper.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-stepper-motor import RPi.GPIO as GPIO import time # Define GPIO pins for L298N driver IN1 = 12 IN2 = 16 IN3 = 20 IN4 = 21 # Set GPIO mode and configure pins GPIO.setmode(GPIO.BCM) GPIO.setup(IN1, GPIO.OUT) GPIO.setup(IN2, GPIO.OUT) GPIO.setup(IN3, GPIO.OUT) GPIO.setup(IN4, GPIO.OUT) # Constants for stepper motor control DEG_PER_STEP = 1.8 STEP_PER_REVOLUTION = int(360 / DEG_PER_STEP) # Function to move the stepper motor one step forward def step_forward(delay, steps): for _ in range(steps): GPIO.output(IN1, GPIO.HIGH) GPIO.output(IN2, GPIO.HIGH) GPIO.output(IN3, GPIO.LOW) GPIO.output(IN4, GPIO.LOW) time.sleep(delay) GPIO.output(IN1, GPIO.LOW) GPIO.output(IN2, GPIO.HIGH) GPIO.output(IN3, GPIO.HIGH) GPIO.output(IN4, GPIO.LOW) time.sleep(delay) # Function to move the stepper motor one step backward def step_backward(delay, steps): for _ in range(steps): GPIO.output(IN1, GPIO.LOW) GPIO.output(IN2, GPIO.LOW) GPIO.output(IN3, GPIO.HIGH) GPIO.output(IN4, GPIO.HIGH) time.sleep(delay) GPIO.output(IN1, GPIO.HIGH) GPIO.output(IN2, GPIO.LOW) GPIO.output(IN3, GPIO.LOW) GPIO.output(IN4, GPIO.HIGH) time.sleep(delay) try: # Set the delay between steps delay = 0.001 while True: # Move the stepper motor one revolution in a clockwise direction step_forward(delay, STEP_PER_REVOLUTION) # Pause for 5 seconds time.sleep(5) # Move the stepper motor one revolution in an anticlockwise direction step_backward(delay, STEP_PER_REVOLUTION) # Halt for 5 seconds time.sleep(5) except KeyboardInterrupt: print("\nExiting the script.") finally: # Clean up GPIO settings GPIO.cleanup()
  • Sla het bestand op en start het script met het volgende commando in de terminal:
python3 stepper.py

Het script draait in een oneindige lus tot u met Ctrl + C in de terminal stopt.

Door de waarde van de variabele delay in de code te wijzigen, kunt u de snelheid van de stappenmotor aanpassen.

U zult het volgende waarnemen:

  • De stappenmotor draait één omwenteling met de klok mee.
  • De stappenmotor pauzeert 5 seconden.
  • De stappenmotor draait vervolgens één omwenteling tegen de klok in.
  • De motor pauzeert weer 5 seconden.
  • Dit proces wordt continu herhaald.

Uitleg van de Code

Lees de regel-voor-regel uitleg in de commentaren van de broncode!

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en praktische tips die het begrip van de stappenmotor en L298N driver zullen versterken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!