Forum: Analoge Elektronik und Schaltungstechnik A4988 Motortreiber und Nema8 Schrittmotor, geht einfach nicht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Marcel (marcel_wb)


Lesenswert?

Hallo liebe Forengemeinde,
ihr seit meine letzte Hoffnung.
Ich versuche obige Treiber+Motor Konstellation zum laufen zu bringen, 
aber es passiert entweder nichts, oder nur Wirres. Ich habe gefühlt alle 
Tutorials und Forenposts des gesamten Internets dazu gelesen, eigentlich 
sollte es einfach sein...

- A4988 Treiber von A-Z Delivery
https://www.az-delivery.de/products/a4988-schrittmotor-modul
- Joy-it Schrittmotor NEMA08
https://www.conrad.de/de/p/joy-it-schrittmotor-nema08-03-joy-it-0-022-nm-0-6-a-0-6-a-wellen-durchmesser-4-mm-2355873.html
- Die Last am Motor wird minimal sein, nur ein Kunststoffscheibchen.
- Die Motorverdrahtung via Widerstand-Messung der Spulen geprüft, die 
Spulen haben die angegeben 7.1 Ohm, und die Verdrahtung ist wie in der 
minimalen Doku angegeben: ein verwirrendes "ACBD".
- Interne Netzteile für 12V und separat 5V (durch die Rahmenbedingungen 
vorgegeben), liefern auch verlässlich die gewünschten Spannungen. 
Leistungsmäßig auch mehr als ausreichend.
- 100µF Kondensator an 12V, Sleep und Reset verbunden, wie vorgegeben.
- Am A4988 den Strombegrenzer (Vref Poti) für den Motor entsprechend 
herunter geregelt, ich bin sicherheitshalber bei 0.4V Vref geblieben.
- Am Step-Pin schicke ich Signale von einem DMX Controller (durch die 
Rahmenbedingungen vorgegeben), auch betrieben von 5V Netzteil, die 
Signale sehen sauber aus. Testweise kann ich den Controller auch 
weglassen und einen Taster zwischen 5V+ und Pin löten - das Ergebnis ist 
das gleiche:

Ich hatte zwei der Treiber gekauft, einer macht: nichts.
Der andere: Erstmal auch nichts, aber wenn ich mit Multimeter ran gehe, 
zum Spannung nachmessen, rotiert der Motor erratisch. Mal die eine, mal 
die andere Richtung. Der Motor wird dabei sehr heiß!

Können beide A4988 kaputt sein? Oder was mache ich falsch?
Übrigens sind der Ground 5V und Ground 12V verbunden, lassen sich durch 
klingeln. Ist das normal/sauber?

Danke für jede Hilfe,
Marcel

: Verschoben durch Moderator
von Hugo H. (hugo_hu)


Lesenswert?

Marcel schrieb:
> Am A4988 den Strombegrenzer (Vref Poti) für den Motor entsprechend
> herunter geregelt, ich bin sicherheitshalber bei 0.4V Vref geblieben.

Das kleine "Buch" hast Du Dir heruntergeladen?

"» Werfen Sie einen Blick auf das Datenblatt Ihres Schrittmotors. 
Notieren
Sie sich den Nennstrom des Motors. In unserem Fall verwenden wir
"NEMA17" 200 Schritte/Umdrehung, 12V, 350mA.
» Setzen Sie den Treiber in den Vollschrittmodus, indem Sie die drei
Mikroschrittpins getrennt lassen.
» Halten Sie den Motor an einer festen Position, indem Sie den 
STEPEingang
NICHT taktieren. Lassen Sie den STEP-Eingang nicht frei, sondern
schließen Sie ihn an die Logikversorgung an (5V für 
Mikrocontroller-Platine
oder 3,3V für Raspberry Pi).
» Stellen Sie das Amperemeter in der Reihe mit einer der Spulen auf
Ihrem Schrittmotor und messen Sie den tatsächlichen Strom.
» Stellen Sie mit einem kleinen Schraubenzieher das Potentiometer so
ein, dass der Nennstromwert aus dem Datenblatt des Motors erreicht wird.
HINWEIS: Sie müssen diese Einstellung erneut durchführen, wenn Sie
die Logikspannung (VDD) ändern."

von Steve van de Grens (roehrmond)


Lesenswert?

Diese NEMA Nummern beziehen sich auf das Maß der Montagelöcher. Die 
sagen nichts über die elektrischen Eigenschaften aus.

Mit der Angabe NEMA08 können wir noch weniger anfangen  als mit einer 
E10 Glühbirne.

: Bearbeitet durch User
von Hugo H. (hugo_hu)


Lesenswert?

Steve van de Grens schrieb:
> Mit der Angabe NEMA08 können wir noch weniger anfangen  als mit einer
> E10 Glühbirne.

Marcel schrieb:
> - Joy-it Schrittmotor NEMA08
> 
https://www.conrad.de/de/p/joy-it-schrittmotor-nema08-03-joy-it-0-022-nm-0-6-a-0-6-a-wellen-durchmesser-4-mm-2355873.html

von Marcel (marcel_wb)


Lesenswert?

Danke für den Hinweis, Hugo. Indirekt hatte ich diese Schritte schon 
befolgt (einfach das Testumfeld so sehr simplifiziert wie möglich). Aber 
tatsächlich nur auf Spannungsbasis geprüft. Werden morgen den Strom 
nachmessen, melde mich zurück..

von Hugo H. (hugo_hu)


Lesenswert?

Damit kannst Du auch ansatzweise prüfen, ob der Treiber überhaupt noch 
funktioniert.

Wenn das passt kann es noch die fehlende "Anfahr-Rampe" sein (der 
Schrittmotor kann nicht in 5 Mikrosekunden von 0 auf 3000 Schritte 
beschleunigen) oder z.B. heftiger Jitter im Step-Signal sein.

von Rainer W. (rawi)


Lesenswert?

Hugo H. schrieb:
> Wenn das passt kann es noch die fehlende "Anfahr-Rampe" sein

In dem Fall sollte der Motor wenigstens rappeln.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Marcel schrieb:
> Erstmal auch nichts, aber wenn ich mit Multimeter ran gehe, zum Spannung
> nachmessen, rotiert der Motor erratisch.
Wo gehst du da mit dem Mutimeter "ran"? Wie sieht der Aufbau aus? Fließt 
der Motorstrom auch über solche lausige Steckbrettkontakte?

> Die Motorverdrahtung via Widerstand-Messung der Spulen geprüft, die
> Spulen haben die angegeben 7.1 Ohm, und die Verdrahtung ist wie in der
> minimalen Doku angegeben: ein verwirrendes "ACBD".
Du musst einfach die eine Spule an 1A(A1**) und 1B(B1**) anschließen. 
Und die andere an 2A(A2**) und 2B(B2**).

(**) wie lieblos und nachlässig kann man eine Doku denn noch machen, 
dass nicht mal die Beschriftung auf der Leiterplatte zu der in der 
Anleitung passt?

> Übrigens sind der Ground 5V und Ground 12V verbunden, lassen sich durch
> klingeln.
Da solltest du nichts messen müssen, das solltest du an der Verbindung 
zwischen diesen beiden GND, die du selber gemacht hast, ganz 
offensichtlich sehen.

> Ist das normal/sauber?
Sie müssen verbunden sein. Und vor allem: sie müssen potentialfrei 
sein und verbunden werden dürfen. Aber halb so wild, wenn du nach der 
Verdrahtung noch 5V und 12V messen kannst, dürfte das der Fall sein.

Wenn du was mit einem Baustein machen willst, solltest du zusätzlich zu 
irgendwelchen mehr oder weniger nett gemalten Anleitungen eines Boards 
auch immmer das Datenblatt des ICs zur Hand haben, denn das spielt die 
Musik:
- 
https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver_with_translator.pdf

> Am A4988 den Strombegrenzer (Vref Poti) für den Motor entsprechend
> herunter geregelt, ich bin sicherheitshalber bei 0.4V Vref geblieben.
Ist dir prinzipiell klar, was du damit gemacht hast? Und auch, dass man 
das im Voraus berechnen kann? Also wieder ein Blick ins Datenblatt, dort 
gibt es eine Formel zur Stromeinstellung:

ITripMAX = VREF/(8×RS)

Und wenn du nun zwei Rsense mit 0R1 hast (S1 und S2 mit Aufdruck R100), 
kommst du auf

ITripMAX = VREF/(8×RS) = 0,4V/0,8Ohm = 0,5A

Dieser Strom ist niedriger als der maximale Strom für den Schrittmotor, 
also bist du da im grünen Bereich. Abgesehen wie gesagt von evtl. schon 
ein wenig ausgeleierten Steckbrettkontakten, denen man nicht mehr als 
ein viertel Ampere zumuten sollte. Der hier mit dem "gebräunten" 
Steckbrett hat sich 100mA als Obergrenze gesetzt:
- 
https://electronics.stackexchange.com/questions/161504/breadboard-max-current-voltage

Ich halte es genauso.

: Bearbeitet durch Moderator
von Marcel (marcel_wb)


Lesenswert?

Danke für die gesammelten Hinweise!

Ich hab gestern weiter reduziert bzw. umgebaut:
Anschluss von lediglich der "nackten" Netzteile (+Kondensator), 
Motortreiber und Motor. Jegliche vorgeschaltete Steuerelektronik für 
STEP Eingang weg gelassen, stattdessen Taster dran. Und auch den DIR Pin 
auf Masse gelegt.
Und siehe da, es geht! Vref und Ströme im korrekten Bereich, Motor macht 
Schritte wie gewünscht, auch Mikrostepping funktioniert.

Ob die erratischen Bewegungen jetzt der "fliegende" (wie in 
Beispielschaltungen) DIR Pin war oder ob die Spannungsversorgung nicht 
sauber/glitchy ist (denn der DMX Controller wird mitversorgt.. 
Chinagerät, Blackbox), oder gar beides, muss ich in Zukunft noch 
feststellen.


> Wo gehst du da mit dem Multimeter "ran"? Wie sieht der Aufbau aus? Fließt
> der Motorstrom auch über solche lausige Steckbrettkontakte?

Ich hatte das gleich fest auf Platine gelötet, hatte nicht mit so vielen 
Ehrenrunden gerechnet.
Ist jetzt ein Problem, denn ich will nicht zum dritten mal umlöten, wird 
zu unsauber/fehleranfällig.
Muss noch einmal neu aufbauen.. dauert.


> dort gibt es eine Formel zur Stromeinstellung:
>
> ITripMAX = VREF/(8×RS)
>
> Und wenn du nun zwei Rsense mit 0R1 hast (S1 und S2 mit Aufdruck R100),
> kommst du auf
>
> ITripMAX = VREF/(8×RS) = 0,4V/0,8Ohm = 0,5A
>

Genau, so hatte ich es berechnet. Genau, 0.1 Ohm Widerstände sitzen auf 
dem AZDelivery Treibern, die ich habe.

von Marcel (marcel_wb)


Lesenswert?

Mittlerweile bin ich etwas weiter, aber das Grundproblem besteht leider 
immer noch - ich kann mit dem DMX Controller den Motortreiber bzw. 
dessen STEP-Pin nicht steuern.

Zunächst: einige der ursprünglichen Probleme lagen tatsächlich an 
unverbundenen Pins (Dir, EN, Mikrostepping), jetzt liegt alles auf Masse 
oder V+.
Außerdem habe ich ein kleines Schaltmodul, Taster und Relais, um via 
STEP Pin die Treiber/Motor Kombo testen zu können.
Das funktioniert auch prinzipiell, weshalb ich ein Problem mit Vref, den 
Versorgungsspannungen oder Pin-Belegungen ausschließen würde.

Nur wenn ich anstelle des Schaltmoduls den DMX Controller anschließe 
(der mit derselben Versorgungsspannung läuft!) wird es merkwürdig:
* Ich kann das Steuersignal vom Controller im unverbunden Zustand sauber 
messen: 5V (V+) oder 0.
* Sobald ich es mit STEP verbinde, misst mein Voltmeter aber nur noch 
0,6V gegen Masse (und Motorsteuerung funktioniert nicht)!
* Sobald die Messspitze des Voltmeters -oder auch nur mein Finger!- den 
verbundenen STEP Pin berühren, funktioniert alles, Motor dreht sich

Also dachte ich, vielleicht ist es ein Eingangs/Ausgangswiderstands 
Problem, vielleicht braucht es einen Widerstand gegen Masse. Hab also 
verschiedene gängige Größen probiert, aber nichts hilft.

Ich bin nun etwas verloren, was kann es sein? Was kann ich noch machen?
Bzw wo liegt mein Denkfehler??

von Steve van de Grens (roehrmond)


Lesenswert?

Zeige deinen Schaltplan und zeichne dort ein, wo du was gemessen hast. 
Zeige Fotos vom Aufbau.

Zwei Sätze widersprechen sich:

> Sobald ich es mit STEP verbinde, misst mein Voltmeter aber nur noch
> 0,6V gegen Masse (und Motorsteuerung funktioniert nicht)!

> Sobald die Messspitze des Voltmeters ... den verbundenen STEP Pin
> berühren, funktioniert alles, Motor dreht sich

In beiden Fällen ist das Voltmeter angeschlossen, richtig? Muss ja, 
sonst kannst du keine 0,6V messen. Dabei funktioniert die Motorsteuerung 
nicht, aber der Motor dreht sich trotzdem? Soll er sich nicht drehen?

: Bearbeitet durch User
von Marcel (marcel_wb)


Lesenswert?

Steve van de Grens schrieb:
> Zwei Sätze widersprechen sich:
>
>...

Du hast vollkommen recht. Hab mich mit qualmenden Kopf etwas 
verschrieben.
So ist es korrekt:

* Ich kann das Steuersignal vom Controller im unverbunden Zustand sauber
messen: 5V (V+) oder 0.
* Sobald ich es mit STEP verbinde funktioniert die Motorsteuerung nicht.
* Mein Voltmeter misst nun nur noch 0,6V gegen Masse (im verbundenen 
Zustand).
* Sobald die Messspitze des Voltmeters -oder auch nur mein Finger!- den
verbundenen STEP Pin berühren, funktioniert alles, Motor dreht sich!

Plan zeichne ich gleich.
Fotos werden eher irreführen, da diverse andere Sache im selben Gerät 
sitzen, die testweise unverbunden sind. Kann ich morgen machen, aber 
ehrlich gesagt, ich höre schon die Nörgeler, die irrelevantes zum Thema 
machen;)

von Steve van de Grens (roehrmond)


Lesenswert?

Marcel schrieb:
> Mein Voltmeter misst nun nur noch 0,6V gegen Masse (im verbundenen
> Zustand).
> Sobald die Messspitze des Voltmeters -oder auch nur mein Finger!- den
> verbundenen STEP Pin berühren, funktioniert alles, Motor dreht sich!

Das widerspricht sich immer noch. Oder funktioniert der Motor mit den 
0,6 Volt?

von Marcel (marcel_wb)


Lesenswert?

Er funktioniert mit den gemessenen 0,6V am STEP Eingang.

von Steve van de Grens (roehrmond)


Lesenswert?

Marcel schrieb:
> Er funktioniert mit den gemessenen 0,6V am STEP Eingang.

Funktionieren heisst wohl, das Impulse am Step Eingang anliegen. Die 
kannst du mit einem normalen Multimeter nicht messen. Dazu brauchst du 
ein Oszilloskop oder logic Analyzer.

Eventuell hat deine Signalquelle keine Push/Pull Ausgänge sondern 
open-drain oder open-collector. Dann brauchen sie einen 
Arbeitswiderstand.

In deinem Fall ist das Multimeter der (ungewollte) Arbeitswidertsand.

Kannst du uns die technischen Unterlagen der DMX Steuerung zeigen?

Hast du ein Oszilloskop?

: Bearbeitet durch User
von Marcel (marcel_wb)



Lesenswert?

Leider leider hab ich kein Oszilloskop.

Der DMX Controller ist der hier: https://www.amazon.de/dp/B0C7W99TM7
Gibt wenig Anleitung dazu, das bisschen was ich habe ist angehängt.

Tatsächlich generiert der PWM Signale, wenn er DMX Werte >0 und <100% 
empfängt, bei 100% sollte er 5V machen.
(Der Controller treibt größtenteils LEDs an, die Motorsteuerung ist nur 
eine wünschenswerte Ergänzung.)

> Dann brauchen sie einen Arbeitswiderstand.
In Reihe oder parallel gegen Masse geschaltet? Was wäre eine gute Größe 
zum probieren?

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Marcel schrieb:
> das bisschen was ich habe ist angehängt.

Ja stimmt, da steht micht klar  ob es open-deain Ausgänge sind. Es wäre 
aber andereseits teure Materialverschwendung, da LED Streifen keine 
Push-Pull Stufen brauchen.

Belaste alle verwendeten Ausgänge jeweils mit einem Widerstand (nach 
GND), dann liefern sie brauchbare Signale für deinen Motortreiber.

Irgendwas zwischen 220 Ohm und 1k Ohm sollte passen.

Mit einem Oszilliskop kannst du das kontrollieren. Wenn du keins hast, 
und Geld sparen willst, kaufe ein DSO150. Das reicht für solche und 
viele andere Fälle.

: Bearbeitet durch User
von Marcel (marcel_wb)


Lesenswert?

Danke, guter Tipp mit dem DSO150.

1kOhm Widerstand nach GND habe ich versucht, aber es tut sich wieder 
nichts.

Ich warte jetzt auf das Mini-Oszi und schaue dann mal auf das Signal.

von Christoph M. (mchris)


Lesenswert?

Hast du den Reset und Sleep Eingang verbunden? Wenn nicht könnte das der 
Grund für das Problem sein.

https://howtomechatronics.com/wp-content/uploads/2015/08/A4988-Wiring-Diagram.png?ezimgfmt=ng:webp/ngcb2

von Marcel (marcel_wb)


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Hast du den Reset und Sleep Eingang verbunden?
Ja, die sind verbunden.

Anbei der Schaltplan. Eigentlich ist da noch einiges mehr angeschlossen, 
das ist aber alles testweise abgeklemmt.
Grün eingezeichnet der 1kOhm Arbeitswiderstand gegen Gnd. Hat leider 
nicht geholfen.
(ACBD sind natürlich die Anschlüsse des Nema8 Motors.)

: Bearbeitet durch User
von Christian M. (christian_m280)


Lesenswert?

Marcel schrieb:
> controller_circuit_v1.jpg

Uiuiui, Power und Daten über ein Telefonkabel. Was meinst Du wohl, was 
mit GND passiert, wenn der Motor ordentlich Strom zieht?

Gruss Chregu

Ergänzung: die GNDs sind nicht mal zusammengeschaltet... Aber das darf 
man in diesem Forum nicht sagen, wird schlecht bewertet...

: Bearbeitet durch User
von Marcel (marcel_wb)


Lesenswert?

Der Motor fährt keine Last, nur ein Papierscheibchen dreht sich. Hatte 
mich an den Spezifikationen für Power-Over-Ethernet orientiert und liege 
weit unter den Maximalwerten.

Was meinst du zu den GNDs? In dem Motortreiber sind die ohnehin 
verbunden. Und meine Netzteile hängen an der gleichen Versorgung, haben 
keinen Potentialunterschied zwischen ihren GNDs. (Hab in verschiedenen 
Szenarian nachgemessen.)
Bzw was verstehe ich nicht? :)

: Bearbeitet durch User
von Mobile (mobileteser)


Lesenswert?

Der GND vom 12 Volt Netzteil und der GND vom 5V Netzteil gehören 
verbunden. Sonst hängen die Steuereingänge für den Controller in der 
"Luft".

von Steve van de Grens (roehrmond)


Lesenswert?

Marcel schrieb:
> Der Motor fährt keine Last, nur ein Papierscheibchen dreht sich

Das ändert wenig an der Stromaufnahme

von Helmut -. (dc3yc)


Lesenswert?

Und wenn normalerweise die Leds zwischen + und RGB hängen (PWM-Treiber 
ziehen gegen GND), würde ich mal den 1k-Widerstand zwischen V+ und R 
hängen, damit sich da auch was tut.

von Marcel (marcel_wb)


Lesenswert?

Steuerung funktioniert mittlerweile, zumindest im Prinzip.
Für andere Hilfesuchende kurz zusammengefasst, was half:

Steve van de Grens schrieb:
> Mit einem Oszilliskop kannst du das kontrollieren. Wenn du keins hast,
> und Geld sparen willst, kaufe ein DSO150. Das reicht für solche und
> viele andere Fälle.
War am Ende die Investition von <50eu definitiv wert!

Tatsächlich hat der DMX Controller, an den STEP Pin gelegt, immer nur 
PWM Signale zwischen 0 und 0.6V generiert, paralleler Widerstand gegen 
Masse hat nicht geholfen, was aber sehr half war Widerstand gegen V+!

Helmut -. schrieb:
> Und wenn normalerweise die Leds zwischen + und RGB hängen
> (PWM-Treiber ziehen gegen GND), würde ich mal den 1k-Widerstand
> zwischen V+ und R hängen, damit sich da auch was tut.


Mobile schrieb:
> Der GND vom 12 Volt Netzteil und der GND vom 5V Netzteil gehören
> verbunden. Sonst hängen die Steuereingänge für den Controller in der
> "Luft".


> Widerstandsmessung an den Motorenanschlüssen, um herauszubekommen, welche
> Pins zur gleichen Spule gehören (Polung an der Spule spielt keine Rolle),
> für mich war es A-C und B-D

Danke allen, die sich hier produktiv eingebracht haben!!

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
Noch kein Account? Hier anmelden.