Schrittmotor richtig ansteuern mit DRV8825 und Arduino Uno

Hallo Zusammen

Ich beschäftige mich seit einigen Tagen mit Schrittmotoren und habe mir nun auch einen bestellt mit einer Steuerplatine (DRV8825) von Pololu. Der Motor ist ein bipolarer Stepper von Pololu (10V, 0.5A pro Phase).

Nun wollte ich nachfragen, ob mir jemand eine genau Erklärung zu den Pinbelegungen der Steuerplatine geben kann und wie ich den dann mit dem Arduino Uno ansteuern kann, da ich noch unsicher bin.
Welche Anschlüsse werden gebraucht? Was wird wo angeschlossen? Wie steuer ich die Platine mit dem Arduino an? usw.

Ich wäre euch super dankbar :slight_smile:

Freundliche Grüsse

Schaltbilder gibts auf der Herstellerseite.

Dort gibts die passende Library inkl. Testprogramm GitHub - laurb9/StepperDriver: Arduino library for A4988, DRV8825, DRV8834, DRV8880 and generic two-pin (DIR/STEP) stepper motor drivers

asdf1414:
Der Motor ist ein unipolarer Stepper von Pololu (10V, 0.5A pro Phase).

Pololu: "This breakout board for TI’s DRV8825 microstepping bipolar stepper motor driver ..."

Sorry, da paßt was nicht.

Oder hast Du den: Stepper Motor: Bipolar, 200 Steps/Rev, 35×28mm, 10V, 0.5 A/Phase, dann brauchst Du um die 30V Versorgungsspannung.

Zur Ansteuerung kannst Du die Programmbibliothek AccelStepper verwenden.

Damit willkommen im Forum.

Ich glaube Du hast den falschen Motor.
Du brauchst einen Bipolar-Motor mit einer kleinen Nennspannung.
Grüße Uwe

uwefed:
Ich glaube Du hast den falschen Motor.

Ach Uwe, “falsch” klingt so demotivierend, “möglicherweise nicht optimal” fände ich besser, wenn es ein bipolarer ist. Ich habe einen 12V Motor, den ich testweise mit 12V versorge. Im Leerlauf dreht der seine Runden ohne Probleme. Als Anfänger habe ich mich sehr über diesen Erfolg gefreut :slight_smile: Soweit ich das verstehe, geht es hier um solche Grundlagen.

Wenn dann die Frage “warum reicht das Drehmoment nicht” im Raum steht, ist es Zeit für Optimierungen.

Finde ich :slight_smile:

So schiebt man den Frust nur einen Schritt weiter nach hinten.
Und damit ist nicht viel gewonnen.

Außerdem wird dann das falsche gelernt/gelehrt.
Und das, wollen wir doch nicht.

Es ist schon richtig:
Entweder ist das der falsche Motor, oder der falsche Treiber.

Zu dem genannten Treiber passt ein 3V 1,5A Motor ganz gut.
Der Treiber sollte dann mit 24V betreiben werden.
Wenn nicht so viel Drehmoment und Geschwindigkeit gefordert ist, gehts auch mit 12V

combie:
So schiebt man den Frust nur einen Schritt weiter nach hinten.

Meine Sicht: Ein großer Schritt führt ins Ziel oder weit daneben, viele kleine Schritte erlauben Kurskorrekturen und führen sicherer ins Ziel.

"Motivation anstelle Frust - wie ermuntere ich Newbies" wäre ein schönes Arduino Stammtischthema. Nach dem x-ten Bier wären wir uns einig, nur könnten wir uns am nächsten Tag nicht mehr an das Ergebnis erinnern ;D

nur könnten wir uns am nächsten Tag nicht mehr an das Ergebnis erinnern

Vielleicht!

Meine Sicht:
Wenn ein Forenmitglied ein anderes Forenmitglied, sehenden Auges, und wider besseren Wissens, ins offene Messer rennen lässt.....
Wer solche Freunde hat, braucht keine Feinde mehr.

:grin: :grin: :grin:

agmue:
"Motivation anstelle Frust - wie ermuntere ich Newbies" wäre ein schönes Arduino Stammtischthema. Nach dem x-ten Bier wären wir uns einig, nur könnten wir uns am nächsten Tag nicht mehr an das Ergebnis erinnern ;D

Und wo steht denn geschrieben, dass man sich für/bei solchen diskussionen sinn- und hirnlos bis zum gehtnichtmehr mit Alk zuschütten muss?

Dachte bisher immer, dass auch ohne Alk ganz brauchbare ergebnisse mit solchen Diskussionen erreichbar wären. Zumindest wäre es für minderjährige Mitleser von Vorteil, den Eindruck zu erwecken, dass soetwas auch ohne Bier zu erreichen ist!

LG Stefan

(der kein Antialkoholiker ist, aber auch nix davon hält, sich sinlos die Birne zuzuschütten bis auch noch die letzte Hirnzelle im Alk ersäuft)

Also 2. Anlauf

Hat der Motor 5 oder 6 Kabel?

Wenn er 6 Kabel hat kann man ihn als Bipolarmotor verwenden indem man die beiden Mittelanzapfungen der Wicklungen nicht verwendet (isoliert)

Mit dem angegebene Treiber kann der Motor in Vollschritt angesteuert werden. Microschritte werden nicht ordentlich funktionieren.

Grüße Uwe

So besser?

@combie: Uwe schreibt, man benötigt die mehrfache Nennspannung des Motors als Versorgungsspannung. Ausgehend von der Annahme, es handelt sich um den bipolaren Motor aus #2, sind 30 bis 40 V Versorgungsspannung durchaus ausreichend (#5: 12 ist das Vierfache von 3). Wo also versteckt sich das "Messer"?

uwefed:
So besser?

:grin:

Ich bezog mich auf den Motor des TO: "(10V, 0.5A pro Phase)."
Der Treiber muß die Versorgungsspannung des Motors aushalten. Ok der DRV8825 kann 45V also wäre 40V auch noch drin.

40V sind eine ungewöhnliche auch wenn nicht unmögliche Spannung.

Als Beispiel die Pololu DRV8825 Platine Pololu - DRV8825 Stepper Motor Driver Carrier, High Current
Diese hat einen Strommeßwiderstand von 0,1Ohm Bei 0,5A sind das 0,05 V. Der interne Verstärker bingt die Spannung auf 0,25V.
U Ref muß damit mittels des Trimmers auf 0,25V gesetzt werden.

Im Datenblatt http://www.ti.com/lit/ds/symlink/drv8825.pdf Seite 4 "7.3 Recommended Operating Conditions" ist als Vref eine Spannung zwischen 1V und 3,5V empfohlen (Recommended Operating Conditions) .

Somit währen wir mit 0,5A Für dese Platine außerhalb des empfohlenen Bereichs.

Ok man könnte die Strommeßwiderstände durch solche mit 0,4-0,5Ohm ersetzen, aber das setzt einiges an Lötkunst voraus.

Grüße Uwe

Hallo Uwe,
bei Vref von 1V wäre der maximale Strom 2A, bei 3,5V dann 7A.

Die Beschreibung von Pololu sagt aber was anderes, Zitate:

"Current Limit = VREF × 2

So, for example, if you have a stepper motor rated for 1 A, you can set the current limit to 1 A by setting the reference voltage to 0.5 V."

=> das wäre dann auch außerhalb der Spezifikation

"The DRV8825 driver IC has a maximum current rating of 2.5 A per coil, but the current sense resistors further limit the maximum current to 2.2 A, ..."

=> man kann nur maximal 2,2A entsprechend Vref=1,1V einstellen

Entweder betreibt Pololu das IC immer außerhalb der Recommended Operating Conditions oder da stimmt irgendwas nicht.

Also Blick ins Datenblatt. Hast Du den Satz "Operational at VREF between 0 to 1 V, but accuracy is degraded." möglicherweise übersehen? Damit wären dann auch 0,5A bei reduzierter Genauigkeit möglich.

Oder?

Den Satz hab ich wirklich übersehen; aber ich halte mich an die Recommended Operating Conditions. Wenn man den Strommeßwiderstand ersetzt sind andere Ströme mit Genauigkeit realisierbar.

Die Frage ist ob etwas irgendwie funktionieren soll oder gut funktionieren soll. Mann kann einen Motor mit Mikrostepperdriver auch mit Nennspannung betreiben nur dann werden die MiKroschritte nicht richtig funktionieren.

Ok, Wenn man den DRV8825 in Vollschritt betreibt ist die zu kleine Versogungsspanung und ungenaue Stromregelung kein Problem.

Die Frage ist ob man einem Anfänger sagen soll: ja das geht irgendwie oder genau erklähren sollte wieso es nicht so doll geht.
Laut Titel " Schrittmotor richtig ansteuern mit DRV8825 und Arduino Uno" glaube ich sollten die Feinheiten geklährt werden.

Aber warten wir mal was asdf1414 dazu sagt. Hallo asdf1414..

Grüße Uwe

agmue:
Pololu: "This breakout board for TI’s DRV8825 microstepping bipolar stepper motor driver ..."

Sorry, da paßt was nicht.

Oder hast Du den: Stepper Motor: Bipolar, 200 Steps/Rev, 35×28mm, 10V, 0.5 A/Phase, dann brauchst Du um die 30V Versorgungsspannung.

Zur Ansteuerung kannst Du die Programmbibliothek AccelStepper verwenden.

Damit willkommen im Forum.

Tut mir Leid, habe mich verschrieben. Es ist ein bipolarer Stepper, der zum Treiber passt :slight_smile:

uwefed:
Den Satz hab ich wirklich übersehen; aber ich halte mich an die Recommended Operating Conditions. Wenn man den Strommeßwiderstand ersetzt sind andere Ströme mit Genauigkeit realisierbar.

Die Frage ist ob etwas irgendwie funktionieren soll oder gut funktionieren soll. Mann kann einen Motor mit Mikrostepperdriver auch mit Nennspannung betreiben nur dann werden die MiKroschritte nicht richtig funktionieren.

Ok, Wenn man den DRV8825 in Vollschritt betreibt ist die zu kleine Versogungsspanung und ungenaue Stromregelung kein Problem.

Die Frage ist ob man einem Anfänger sagen soll: ja das geht irgendwie oder genau erklähren sollte wieso es nicht so doll geht.
Laut Titel " Schrittmotor richtig ansteuern mit DRV8825 und Arduino Uno" glaube ich sollten die Feinheiten geklährt werden.

Aber warten wir mal was asdf1414 dazu sagt. Hallo asdf1414..

Grüße Uwe

Danke für deine Antwort! Grundsätzlich brauche ich den Schrittmotor später nicht um kleinste Schritte zu machen sondern hauptsächlich volle Umdrehungen, da werde ich Mikroschritte wahrscheinlich nicht brauchen.
Mir geht es erstmals darum wie ich den Motor zum laufen bringe und da werde ich es erstmal mit den "Tipps" von @Moko versuchen und allenfalls später auf die Feinheiten eingehen.

Grüsse
Andreas

Da rate ich Dir zu Mikrostepping und Stromsteuerung, also einen Motor mit ca 3V Nennstrom und ca 1,5A Nennspannung und mit 12V versorgt.
Eine solche Ansteuerung hat einen ruhigeren Lauf (es werden kleinere Schritte gemacht) und bei höheren Geschwindigkeiten mehr Drehoment/kraft.

Grüße Uwe

Ich hab heute den Treiber und den Motor bekommen und das erste mal versucht anzusteuern.
Den Motor habe ich nach dem Schaltbild angeschlossen bzw. versucht. Mit 4 Anschlüssen bin ich noch unsicher.
Reset und Sleep habe ich an direkte 5V des Arduinos angeschlossen und die Sleep und Dir sind vorläufig an Pin 8 und 9 angeschlossen. Ist das soweit richtig?

Falls die Anschlüsse so richtig sind, gibt es ein Beispiel Programm, dass ich den Motor testen kann, dass er zB. eine volle Umdrehung macht?

Grüsse
Andreas

Erst mit dem Poti 1V einstellen.

asdf1414:
Reset und Sleep habe ich an direkte 5V des Arduinos angeschlossen

Ok.

asdf1414:
Sleep und Dir sind vorläufig an Pin 8 und 9 angeschlossen.

Du meinst STEP und DIR, die kannst Du an 8 und 9 anschließen oder jeden freien Pin.

Bounce.pde der Bibliothek AccelStepper mit AccelStepper::DRIVER, STEP_Pin, DIR_Pin macht die gewünschte Bewegungen hin und zurück.

Da dieses Thema vom TO wohl beendet wurde, noch mal kurz was von mir:

combie:
Meine Sicht:
Wenn ein Forenmitglied ein anderes Forenmitglied, sehenden Auges, und wider besseren Wissens, ins offene Messer rennen lässt.....
Wer solche Freunde hat, braucht keine Feinde mehr.

:grin: :grin: :grin:

Da stimme ich Dir zu, aber ich ziehe mir den Schuh nicht an!

@Deltaflyer: Ich habe tatsächlich einen Augenblick überlegt, ob ich das so schreiben kann. Es war mehr als Allegorie denn als Aufforderung zu Alkoholexzessen gedacht. Ob das von allen Lesern auch so verstanden wird, ist natürlich fraglich.

@Uwe: Wegen der Recommended Operating Conditions ist also ein Strom nahe 2A besser als ein kleinerer. Habe ich jetzt dazugelernt :slight_smile: