Schrittmotor Nema17 funktioniert nicht?
Hallo,
Ich habe mittels einem Raspberry Pi 3b und einem Treiber A4988 einen Schrittmotor angeschlossen. Ich habe alle Komponenten so angesteckt, dass sie passen müssten.
Alle gpos richtig und am Treiber auch richtig.
Der Motor dreht sich allerdings nur stocken und sehr langsam und hört dann einfach auf.
Warum ist das so bitte um hilfe.
Hier ein bsp mit einem arduino Ich habe aber einen rasp genommen
Hier der Code
3 Antworten
Die 12V Stromversorgung habe ich auf Vmot angeschlossen. Die 5V auf VDD. sowie jeweils auf gnd. Den Strombegrenzer auf Ca 1.2 V eingestellt. Auch Step und Dir richtig angeschlossen.
Wie bzw wo soll ich die MS1 bis 3 anschließen.
Ich bin leider kompletter Anfänger und musste mir das für ein Projekt selber lernen.
Hast du wirklich eine externe Motor-Versorgung (VMOT) von typischerweise 12 V (oder 24 V) angeschlossen – und nicht versehentlich die 5 V deines Raspberry Pi?
Dann ist da noch der Strombegrenzer (Vref‐Poti) auf dem A4988. Wenn der nicht – sagen wir mal – auf einen Wert eingestellt ist, der deinem Motor entspricht, liefert der Treiber entweder zu wenig oder zu viel Strom.
Ach ja, und ganz wichtig: Sleep und Reset des A4988 gehören verbunden, Enable (EN) sollte auf GND liegen, damit der Treiber nicht in den Ruhestand geht. Ebenso MS1–MS3 je nach gewünschtem Mikrostep-Modus auf High/Low. Wenn die auf Floating stehen, passiert bisweilen gar nichts.
Wie bzw wo soll ich die MS1 bis 3 anschließen.
Du verbindest jeden MS‑Pin entweder mit GND (Low) oder mit 3,3 V vom Raspberry Pi (High). Wichtig: Wenn du VDD am A4988 mit 5 V versorgst, erkennt der Treiber ein 3,3 V‑Signal vom Pi oft nicht als High – darum nimm für alle Logik‑Pins (VDD, STEP, DIR, MS1–3, ENABLE…) besser die 3,3 V‑Spannung des Pi.
Im Allegro A4988‑Datenblatt (Tabelle 1 auf Seite 5) stehen die genauen Pegel für die fünf Mikro‑Schritt‑Modi:
a4988_dmos_microstepping_driver_with_translator.pdf
Low = GND
High = 3,3 V vom Pi
Vielleicht hilft das:
Der A4988 hat auf STEP und DIR keine internen Pull-Downs oder -Ups. Solange dein Raspberry-Pi-GPIO diesen Pins beim Einschalten keinen definierten Zustand vorgibt, „schweben“ sie. Jegliches elektrische Rauschen etc. sorgt dann für unbeabsichtigte Pulse – der Motor macht ein paar Schritte und bleibt dann stehen.
Evtl. kannst du das damit in deine Python-Code so beheben:
...
GPIO.setmode(GPIO.BCM)
Zuerst als Input mit internem Pull-Down^^
GPIO.setup(DIR, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(STEP, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
Dann direkt als Output und auf LOW setzen^^
GPIO.setup(DIR, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(STEP, GPIO.OUT, initial=GPIO.LOW)
So sollte das “Schweben” verhindert werden und der Motor dreht sich nur, wenn du explizit GPIO.output(STEP, HIGH/LOW) aufrufst.
Sollten die STEP und DIR Pins nicht D2 und D3 im Sketch heissen?
Sollte die Drahtfarben-Reihenfolge von oben nach unten schwarz, grün, rot, blau sein?
Die 12V Stromversorgung habe ich auf Vmot angeschlossen. Die 5V auf VDD. sowie jeweils auf gnd. Den Strombegrenzer auf Ca 1.2 V eingestellt. Auch Step und Dir richtig angeschlossen.
Wie bzw wo soll ich die MS1 bis 3 anschließen.
Ich bin leider kompletter Anfänger und musste mir das für ein Projekt selber lernen.