Liebe Forenmitglieder, ich steuere einen Nema17-Schrittmotor (HS174417) über einen EasyDriver (mit A3967 chip) an um eine Kamera im Fokus meines Teleskops zu halten. Dazu ist nicht viel Drehmoment nötig, es gibt keine langen Fahrten, die besondesr schnell sein müssen. Wichtig ist aber vorher festgelegte Positionen möglichst genau anzufahren. Dazu zählt die Anwendung die Schritte, weil kein Encoder vorhanden ist. Der Motor wird mit 12V versorgt (zieht ungefähr 400mA aus dem Netzteil) und der Regler auf dem Easydriver-Board für die Stromstärke ist bis zum Maximum hochgedreht (lt. Easydriver-Spezifikation: 750 mA pro Phase) und es wird 1/8-Microstepping genutzt um den Motor möglichst ruhig und präzse laufen zu lassen. Das STEP-Signal wird über die PWM-Hardware des Arduino's erzeugt. Der Schrittmotor hat einen Schrittwinkel von 1,8 Grad. Damit wäre zu erwarten, dass 1600 STEP-Signale exakt eine volle Umdrehnung bewirken. Meine Experimente zeigen, dass es von der Frequenz des PWM-Signals abhängt, wie viele Schritte verloren gehen. An der oberen Grenze (ca. 1,4 kHz) sind es erwartungsgemäß besonders viele (>10Grad pro Umdrehung), aber auch bei langsamen Bewegungen (< 500Hz) gehen viele Schritte(5-10 Grad pro Umdrehung) verloren. Dazwischen gibt es aber auch einzelne Frequenzwerte, bei denen der Motor recht exakt läuft. Nun ist mir bekannt, dass Schritte verloren gehen können, wenn's zu schnell geht. Mir ist aber auch aufgefallen, dass bei manchen Frequenzen der Motor mehr als eine Umdrehnung macht. Wenn ich full step Modus verwende sind die Effekte teils noch viel übler. Es wäre super, wenn ihr mir Hinweise geben könnt, wie ich exakt besimmen kann, welche Frequenz (ggf. auch Stromstärke) ich nutzen muß, damit der Motor möglichst exakt läuft. Ich kann mir die Effekte nicht erklären. Woran liegt diese Frequenzabhängigkeit? Schon mal vielen Dank im voraus
Andreas S. schrieb: > An der oberen Grenze (ca. 1,4 kHz) sind es erwartungsgemäß besonders > viele (>10Grad pro Umdrehung), aber auch bei langsamen Bewegungen > (< 500Hz) gehen viele Schritte(5-10 Grad pro Umdrehung) verloren. Es ist eine Schande, dass überhaupt Schritte verloren gehen. Welche Nennspannung ist für den Motor angegeben? Wie erzeugst du mit der "PWM-Hardware" vernünftige Beschleunigungsrampen? > Woran liegt diese Frequenzabhängigkeit? Das können Resonanzen sein. Was hast du als Dämpfung auf der Motorachse?
Brauch es Beschleunigungsrampen? Wie schwer ist die Kamerakonstuktion und wie schnell drehst du?
Ich glaube nicht, dass hier der Motor Schritte verliert. In den meisten Fällen kommt der Motor dabei geänzlich aus dem Tritt. Insbesondere zuviele Schritte sind unüblich. Entweder stimmen die Brems- und Beschleunigungsrampen nicht, und die Lastmasse ist groß im Vergleich zur Massenträgheit des Motors. Dann wird der Motor u.U. über das Ziel hinaus "geschoben". Oder das Taktsignal zum Shield ist elektrisch gestört. Das erscheint mir auf den ersten Blick hier am wahrscheinlichsten. Mit freundlichen Grüßen Thorsten Ostermann
Wolfgang schrieb: > Es ist eine Schande, dass überhaupt Schritte verloren gehen. > Welche Nennspannung ist für den Motor angegeben? 2,55V > Wie erzeugst du mit der "PWM-Hardware" vernünftige > Beschleunigungsrampen? Dazu gibt's z.B. eine Application Note von Atmel. Schau mal nach AVR446. > >> Woran liegt diese Frequenzabhängigkeit? > Das können Resonanzen sein. Was hast du als Dämpfung auf der Motorachse? Ich mache die Messungen aktuell ohne jede Last oder Dämpfung auf der Achse. Aus welchem Grund könnte das ein Problem sein?
Kurt schrieb: > Brauch es Beschleunigungsrampen? ich arbeite im Moment ohne Beschleunigungsrampen für die Messungen um es nicht noch komplexer zu machen. > Wie schwer ist die Kamerakonstuktion und wie schnell drehst du? Ich möchte gerne gerne mit 1 kHz drehen.
Naja... Nema17 sagt was über die Bauform aus, aber nicht viel über den Strom usw... Meine Nema 17 sind mit 1,7A bei 3V, o.ä.spezifiziert. Deine A3967 wären da gnadenlos unterdimensioniert.
Thorsten O. schrieb: > Ich glaube nicht, dass hier der Motor Schritte verliert. In den meisten > Fällen kommt der Motor dabei geänzlich aus dem Tritt. Insbesondere > zuviele Schritte sind unüblich. Entweder stimmen die Brems- und > Beschleunigungsrampen nicht, und die Lastmasse ist groß im Vergleich zur > Massenträgheit des Motors. Dann wird der Motor u.U. über das Ziel hinaus > "geschoben". Oder das Taktsignal zum Shield ist elektrisch gestört. Das > erscheint mir auf den ersten Blick hier am wahrscheinlichsten. > > Mit freundlichen Grüßen > Thorsten Ostermann Danke für die Hinweise. Die Rampen habe ich aktuell nicht konfiguriert. Ich probiere es dann mal mit Rampen. Gestörtes Taktsignal würde ich ausschließen, das habe ich mit dem Oszilloskop nachgeprüft. Mit vielen Grüßen Andreas Scholz
Andreas S. schrieb: > Der Motor wird mit 12V versorgt (zieht ungefähr 400mA aus dem Netzteil) > und der Regler auf dem Easydriver-Board für die Stromstärke ist bis zum > Maximum hochgedreht (lt. Easydriver-Spezifikation: 750 mA pro Phase) und > es wird 1/8-Microstepping genutzt um den Motor möglichst ruhig und > präzse laufen zu lassen. Das STEP-Signal wird über die PWM-Hardware des > Arduino's erzeugt. Falsch. WENN du Mikroschritte haben willst, muss der Maximalstrom BEGRENZT sein, sonst kann z.B. 45 Grad nicht das 0.7-fache davon sein. Da ich zu deiner Typennummer HS174417 kein Datenblatt finde, kann man den richtigen Strom/Spannung nicht nennen.
Hallo, versuche als erstes Mal die Rampen. Wobei ich hier meinem Vorredner zustimme. Daran wird es nicht liegen. Wenn du mit 1/8 Microschritten fährst und dein Taktsignal 1,6kHz hat, dann macht der Motor 1 Umdrehung pro Sekunde (bei 1,8°). Das ist nicht so schnell. Es kann an deinem Aufbau liegen. Bedenke, dass der Treiber den Strom durch deine Motorwicklungen begrenzt. Diese werden angesteuert wie bei einem Schaltregler. Wenn die Leitungen zum Motor recht lang und durcheinander sind oder große Schleifen bilden kann dein Treiber hier vermutlich nicht mehr sauber arbeiten. Wie ist das denn angeschlossen? Kannst du mal ein Bild machen? Die Motorleitungen gehören alle zusammen verdrillt angeschlossen. Ein anderes Problem kann der Motor sein. Die Treiber haben manchmal ein Problem, wenn ein ungünstiges Verhältnis von Widerstand und Induktivität in den Spulen herrschen. Aber das kann man ohne Datenblatt nicht weiter eingrenzen. Hast du das Datenblatt? Kannst du das zur Verfügung stellen? Gruß, Jens
Für einen ruhigen, vibrationsarmen Lauf ist es ratsam, den Strom nicht auf den max. Wert einzustellen, sondern auf einen Wert, der für die erforderliche Kraft ausreicht. Hier ein Beispiel, was auch auf einem UNO R3 läuft: http://mino-elektronik.de/Generator/takte_impulse.htm#bsp7 Es lassen sich Drehzahl und Anfahrpositionen vorgeben; die Rampen werden automatisch generiert. http://mino-elektronik.de/progs/avr/step_m328/stepper_a4982.ino
Andreas S. schrieb: > Gestörtes Taktsignal würde ich > ausschließen, das habe ich mit dem Oszilloskop nachgeprüft. Dann guck dir mal am Shunt den Chopper Betrieb an. Dann siehst du, ob es eventuell am Treiber liegt. Die China driver haben immer irgendwelche Probleme mit decay oder osc resistance.
m.n. schrieb: > Für einen ruhigen, vibrationsarmen Lauf ist es ratsam, den Strom nicht > auf den max. Wert einzustellen, sondern auf einen Wert, der für die > erforderliche Kraft ausreicht eher Spannung. >...auch auf einem UNO R3 läuft oder grbl: https://github.com/grbl/grbl
Andreas S. schrieb: >> >>> Woran liegt diese Frequenzabhängigkeit? >> Das können Resonanzen sein. Was hast du als Dämpfung auf der Motorachse? > Ich mache die Messungen aktuell ohne jede Last oder Dämpfung auf der > Achse. Aus welchem Grund könnte das ein Problem sein? Das ist Resonanz. Jeder Schrittmotor hatt mindestenz eine Resonanzfrequenz besonders wenn seine Last an einem längeren Hebel hängt. Als Erstes lohnt es sich ein paar Versuche mit verschiedenen Schrittfrequenzen zu machen. Im Optimum ist der Motor leise und der Stromverbrauch ist minimal. Danach experimentiert man mit der Strombegrenzung vom Treiber, auch dort kann noch optimiert werden. Falls Du Möglichkeiten hasst einen Laserpointer radial zur Welle anzubringen kannst Du damit ziemlich gut das Optimum finden
Herzlichen Dank an alle, die sich die MÜhe gemacht haben zu antworten und sorry an alle, die ich mit dem Schreibfehler beim Typ der Motors verwirrt habe es muss natürlich heißen 17HS4417. Nach ewigem herumprobieren mit Rampen usw. war die Lösung am Ende doch ganz einfach: Der Easydriver war offentlichtlich kaputt. Habe ihn jetzt ersetzt durch einen China-Clone (!). Seit dem keine Frequenzabhängigkeit mehr. Bei allen Geschwindigkeiten im spezifizierten Bereich (+/- 5% = +/- 1 Schritt pro Umdrehung). Wenn ich alle vier Vollumdrehungen jeweils einen Extra-Schritt dazugebe, dann läuft der Motor rund und exakt. Zu viele Schritte habe ich gar nicht mehr beobachtet. Nochmal Danke -> gelöst.
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.