Hallo, der Schrittmotor ist ein kleiner Nema17 und darf etwas mehr als 1A pro Wicklung an Strom ziehen. Angeschlossen ist er an 12V aus einem Labornetzteil. Der Treiber ist ein DRV8825, alles angeschlossen, wie im Bild zu sehen. Wenn jetzt der STEP Pin zwischen high und low wechselt, ruckt der Motor nur ganz kurz, dreht sich aber nicht. Ich hoffe, das ist ein bekanntes Phänomen für einen einfach zu behebenden Fehler :-) edit: Nur für mein Verständnis: Mit so einem Schrittmotortreiber, der als Input DIR (direction) und STEP hat, sollte sich der Motor ja auch nur mit einem Taster drehen lassen, oder?
:
Bearbeitet durch User
Enable vielleicht auf Low legen? Was sagt die Doku der Platine?
Kolja L. schrieb: > edit: Nur für mein Verständnis: > Mit so einem Schrittmotortreiber, der als Input DIR (direction) und STEP > hat, sollte sich der Motor ja auch nur mit einem Taster drehen lassen, > oder? Bei jedem STEP dreht der Motor ein Stück.
Vielleicht prellt der Taster, so dass der Stepper gar nicht schnell genug mitkommt. Ansonsten - die Wicklungen mal auf Durchgang prüfen, ob die tatsächlich richtig angeschlossen sind - Reset, sleep usw. fest auf das Potential legen, dass für den Betriebszustand erforderlich ist - s. Datenblatt - die beiden GND sollten verbunden sein
Haha, okay ich erkenne etwas unglückliche Beschreibung. Der µC gibt schon ein ständiges high-low Signal auf den STEP-Pin, aber der Motor reagiert nur auf das erste Mal, nachdem er angeschlossen ist. Das Skript ist hier zu finden: https://github.com/Axel-Germany/Micropython_Pico_DRV8825/blob/main/Pico-DRV8825.py
Beitrag #7033534 wurde vom Autor gelöscht.
Kolja L. schrieb: > Wenn jetzt der STEP Pin zwischen high und low wechselt, ruckt der Motor > nur ganz kurz, dreht sich aber nicht. Erwartes du jetzt, daß die Leser nachschauen im Manual, wie M0..3 verschaltet werden müssen? W.S.
Kolja L. schrieb: > Der µC gibt schon ein ständiges high-low Signal auf den STEP-Pin Vermutest du das oder hast du das gemessen? Wie sieht dieses Signal aus? Passt es zu dem, was der Treiber erwartet? > der Motor reagiert nur auf das erste Mal, nachdem er angeschlossen ist. Wie meinst du das?
tg schrieb: > die Wicklungen mal auf Durchgang prüfen, ob die tatsächlich richtig > angeschlossen sind Ja, zwei voneinander unabhängige Kreise. tg schrieb: > Reset, sleep usw. fest auf das Potential legen, dass für den Betriebszustand erforderlich ist - s. Datenblatt Sind sie: Aus dem DB: https://www.ti.com/lit/ds/symlink/drv8825.pdf RESET: Active-low reset input initializes the indexer logic and disables the H-bridge outputs. Internal pulldown. SLEEP: Logic high to enable device, logic low to enter low-power sleep mode input mode. Internal pulldown. tg schrieb: > die beiden GND sollten verbunden sein Sind verbunden. W.S. schrieb: > Erwartes du jetzt, daß die Leser nachschauen im Manual, wie M0..3 verschaltet werden müssen? Alle auf LOW ist Vollschritt, von daher nein. Ich hoffe,: Kolja L. schrieb: > ... das ist ein bekanntes Phänomen für einen einfach zu behebenden Fehler Eben genau so etwas, wie tg geschrieben hat, ich aber nicht gewusst habe.
aus dem Stand von 0 auf 2,5 U/s macht der Schrittmotor nicht. Wenn du an M0-M2 nichts angeschlossen hast, macht der Treiber Fullsteps. Du toggelst jetzt mit 1kHz den Step Pin, was bei 200Steps/U zu schnell ist. Entweder du musst eine Rampe fahren, du musst auf Mikrosteps umschalten, oder die Pause verlängern.
Lothar M. schrieb: > Vermutest du das oder hast du das gemessen? Wie sieht dieses Signal aus? Passt es zu dem, was der Treiber erwartet? Nein, messen kann ich es nicht. Aber dabei:
1 | pSTEP.on() # set pin to high level |
2 | sleep(uS * usDelay) |
3 | pSTEP.off() # set pin to lowlevel |
4 | sleep(uS * usDelay) |
sollte nicht so viel schief gehen. Du hast aber Recht, ich versuche das nochmal zu verifizieren. Lothar M. schrieb: > Wie meinst du das? Irgendwann bekommt der Motor ja zum ersten mal mit der Spannung in Kontakt. Entweder weil das ganze System versorgt wird, oder ich den Motor an den schon im Betrieb befindlichen Controller anschließe. Und dann ruckt er. Ist kaum zu sehen, aber zur fühlen und über die Schreibtischplatte zu hören.
Kolja L. schrieb: > tg schrieb: >> Reset, sleep usw. fest auf das Potential legen > Sind sie: Aus dem DB: ... Internal pulldown. Für später, wenn das Ding dann unerwartet herumzickt: ein "internal pulldown" mit irgendwas um 50kOhm ist ewig weit weg von "fest auf Masse gelegt". Frag beim Burst-Test mal deinen EMV-Spezi... Kolja L. schrieb: > sollte nicht so viel schief gehen. So kannst du argumentieren, wenn du kein Problem hast. Du hast aber offenbar eins, genau an dieser Stelle. > Irgendwann bekommt der Motor ja zum ersten mal mit der Spannung in Kontakt. Und das ist jetzt der geeignete Zeitpunkt für das Oszilloskop. Hast du eines?
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Hast du eines? Nein, hab zu Uni-Zeiten verpasst mir eins zu besorgen - schon öfter bereut... Lothar M. schrieb: > So kannst du argumentieren, wenn du kein Problem hast. Du hast aber offenbar eins, genau an dieser Stelle. Ja, daher suche ich gerade ne LED und schaue ob ich die dimmen kann. Dann stimmt zumindest der Pin und das Skript arbeitet.
:
Bearbeitet durch User
Kolja L. schrieb: > Ja, daher suche ich gerade ne LED und schaue ob ich die dimmen kann. Wenn du ein Multimeter hast, dann kannst du einfach den Pin für 1s aus und für 1s einschalten und mit dem Multimeter messen. Bei der Gelegenheit kannst du dann auch noch messen, ob die Spannung halbwegs zu dem passt, was sein sollte. BTW: du merkst, dass ich laufend was von "messen" schreibe?
Den Pin muss man doch nicht unbedingt messen. Einfach mit einem Stück Draht von dem Step Pin abwechseln Ground und VCC berühren. Vollschritte sieht und hört man. Edit: Natürlich ohne den Pin am Mikrocontroller verbunden zu haben. Ansonsten noch meinen letzten Beitrag beachten.
:
Bearbeitet durch User
Gerald M. schrieb: > Einfach mit einem Stück Draht von dem Step Pin abwechseln Ground und > VCC berühren. Vollschritte sieht und hört man. Es reicht sogar, wenn mit dem Stück Draht Vcc berührt wird, weil auch der STEP Pin einen "internal pulldown" hat.
Gerald M. schrieb: > Den Pin muss man doch nicht unbedingt messen. Einfach mit einem Stück > Draht von dem Step Pin abwechseln Ground und VCC berühren. Vollschritte > sieht und hört man. Danke, das war meine Frage :-)
So, da haben wir es: der Motor dreht sich nicht, sondern ruckt nur etwas mehr. Kann ich jetzt davon ausgehen, dass der Motortreiber defekt ist?
Wenn du das 200 mal machst, hat er sich dann einmal im Kreis durchgeruckt? Ist die Pinbelegung der Spulen korrekt? Ansonsten, wie ist die Ref-Spannung am Modul eingestellt? (Ja, die muss man jetzt wirklich messen.)
Kolja L. schrieb: > Mit so einem Schrittmotortreiber, der als Input DIR (direction) und STEP > hat, sollte sich der Motor ja auch nur mit einem Taster drehen lassen, > oder? Nö, Taster prellen, so schnell macht der Motor nicht mit. Man muss schon entprellen.
Nein, er dreh sich nicht, kein Stück. Ref-Spannung ist auf 450mV, der Motor kann etwas mehr als 1A. Und ja, Pinbelegung des Motors habe ich auch nachgemessen :-P
Kolja L. schrieb: > So, da haben wir es: der Motor dreht sich nicht, sondern ruckt nur etwas > mehr. Jedes Mal wenn du Vcc berührst? Oder wie bisher nur 1x beim Einschalten? Kolja L. schrieb: > Und ja, Pinbelegung des Motors habe ich auch nachgemessen :-P Dann miss doch mal mit dem Multimeter, ob überhaupt durch beide Spulen ein Strom fließt. Besser wären natürlich 2 Multimeter... > Kann ich jetzt davon ausgehen, dass der Motortreiber defekt ist? Ab Werk sind die Dinger normalerweise nicht kaputt. Was hast du schon alles damit angestellt? Mit angelegter Spannung irgendwelche Leitungen umgesteckt?
Kolja L. schrieb: > der Schrittmotor ist ein kleiner Nema17 und darf etwas mehr als 1A pro > Wicklung an Strom ziehen. ... Der Treiber ist ein DRV8825, ... Das ist der falsche Ansatz. Bei einem DRV8825 als Treiber bekommt der Motor den Wicklungsstrom zugeteilt, d.h. nicht der Motor zieht ihn, sondern der Treiber zwingt ihn ihm auf.
Hab oft genug mit den Dingern gearbeitet. GRÖßter Fehler ist, dass man die Verbindung zwischen Treiber und Motor einfach trennt, bevor man die Versorgungsspannung ausgeschaltet hat und "Enable" noch aktiv ist. Motor verhält sich wie Spule -> Induktion hoher Spannung -> Treiber schrott. Wenn ENABLE bei dir noch nicht auf GND gezogen worden ist, das noch probieren. Ich glaube aber, Treiber ist hinüber.
Timo N. schrieb: > Wenn ENABLE bei dir noch nicht auf GND gezogen worden ist, das noch > probieren. > Ich glaube aber, Treiber ist hinüber. Dann hat man es zu weit getrieben...
Waldemar Rennbootlenker schrieb: > Dann hat man es zu weit getrieben... Ja, wobei auch immer :-) Hab jetzt einen anderen, baugleichen Treiber genommen und damit macht der Motor schon mal überhaupt so etwas wie eine Drehung. Allerdings sehr ruckelig, und nicht immer freiwillig, d.h. ich muss ihn etwas anschubsen. Zum Testen nutze ich den simpelsten Sketch den es dafür wohl gibt:
1 | while True: |
2 | pSTEP.on() |
3 | sleep(Delay) |
4 | pSTEP.off() |
5 | sleep(Delay) |
Mit einem Delay von 0.001 Sekunden funktioniert es am "Wenigsten schlecht". Das Wechseln der Richtung funktioniert auch nicht. DIR, SLP und RST liegen auf den 3.3V des µC, M0,M1,M2 und EN auf GND. Was kann die Ursache sein, dass der Motor so zögerhaft und ruckelig läuft?
Das hört sich alles sehr nach Kontaktproblemen an, beim Steckbrett oder bei den Verbinungskabeln. Ein Wackelkontakt in einem der Kabel wäre auch eine gute Erklärung für den defekten Treiber... Am Besten steckst du noch einen Elko (>=100µF) auf dein Steckbrett, nahe an den Versorgungspins des Motorshields. Gruß Tom
Kolja L. schrieb: > Zum Testen nutze ich den simpelsten Sketch den es dafür wohl gibt: > ... Nachteil ist, dass der so einfach ist, dass ein Schrittmotor damit kaum vernünftig zu betreiben ist, da damit keine Beschleunigungs- und Bremsrampen gefahren werden und eventuell zusätzlich das Timing noch instabil ist.
Klingt nach Problemen mit der Motorstromversorgung. Mache mal deine 9V Block-Batterie weg und ein ordentliches Netzteil mit Bumms ran.
:
Bearbeitet durch User
Kolja L. schrieb: > der Schrittmotor ist ein kleiner Nema17 Schon wieder? Nema17 ist keine Bezeichnung für einen Motor! Kannst du mir bei einem SCHUKO Staubsauger helfen? Oder bei einem VESA Monitor?
Wolfgang schrieb: > Nachteil ist, dass der so einfach ist, dass ein Schrittmotor damit kaum > vernünftig zu betreiben ist, da damit keine Beschleunigungs- und > Bremsrampen gefahren werden und eventuell zusätzlich das Timing noch > instabil ist. Jeder Schrittmotor hat eine Startgeschwindigkeit, bei der er auf Anhieb läuft. Die gilt es zu unterbieten, dann kann das Timing wackeln wie es will. Das liegt nur eher bei 50Hz als bei 500Hz. Gruß Klaus (der soundsovielte)
Guten morgen zusammen, tom schrieb: > Am Besten steckst du noch einen Elko (>=100µF) auf dein Steckbrett, nahe > an den Versorgungspins des Motorshields. Gute Idee, danke. Cyblord -. schrieb: > Mache mal deine 9V Block-Batterie weg und ein ordentliches Netzteil mit > Bumms ran. Das NT kann bis 5A. Klaus S. schrieb: > Jeder Schrittmotor hat eine Startgeschwindigkeit, bei der er auf Anhieb > läuft Danke, d.h. um auf die volle Geschwindigkeit zu kommen muss ich eine Rampe fahren? Wo finde ich solche grundlegenden infos?
Kolja L. schrieb: > Wo finde ich solche grundlegenden infos? https://ww1.microchip.com/downloads/en/Appnotes/doc8017.pdf Solch ein Dokument, gerne auf deutsch.
Kolja L. schrieb: > Solch ein Dokument, gerne auf deutsch. In Google nach "Schrittmotor Tutorial" suchen bringt z.B. https://www.heise.de/developer/artikel/Schritt-fuer-Schritt-3227165.html und viele weitere, alles auf deutsch. Thorsten Ostermann, der sich hier auch ab und an meldet, hat viel Info ins Netz gestellt: http://www.ostermann-net.de/electronic/i_schritt.htm
Kolja L. schrieb: > Danke, d.h. um auf die volle Geschwindigkeit zu kommen muss ich eine > Rampe fahren? Ja. Die einfachste Rampe ist dabei das "Trapez", die Geschwindigkeit steigt linear vom Startwert zum Endwert. Dabei ist die Beschleunigung konstant.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.