PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit L293D



joheinz
28.03.2010, 22:46
Hallo an alle,

vielleicht kann mir jemand mit dem hier leidlich bekannten L293D weiterhelfen. Ich fange gerade erst an, mich wieder mit Elektronik zu beschäftigen, daher stehe ich gerade ein wenig auf dem Schlauch.

Ich habe 2 kleine Motoren, die ich in wechselnder Richtung mit einen Arduino antreiben möchte. Die Motoren vertragen eigentlich so max. 3 V. Schliesse ich die Motoren an eine Batterie an (3V) drehen die auch ordentlich.

Jetzt habe ich mit einem Breadboard eine Schaltung realisiert, wo ich mit externen Netzteil 5V an die Motorspannung, als auch an die Logikspannung des L293D anlege. Die einzelnen EnablePins etc. werden vom Mikrocontroller gesteuert. Geht prinzipiell auch, nur drehen die Motoren dann nur sehr, sehr langsam. Verursacht der L293D solch einen Spannungsabfall, oder woran kann das liegen? Bzgl. dieser Frage werde ich aus dem Datenblatt nicht so schlau.

Wäre toll, wenn mir jemand weiterhelfen kann.
Gruss,
Markus

RoboHolIC
29.03.2010, 02:32
Hallo Markus.

Für den fehlenden "Drive" deiner Motoren kommen ein paar mögliche Ursachen in Frage:
1) Die Spannungsabfälle der Treiber: Im Datenblatt sind das die Größen VOH und VOL, also voltage output high bzw. low. Bei Ausgangspegel Richtung positiver Versorgungsspannung klauen die Treiber -immer für den Nennstrom spezifiziert- typischerweise 1,4V, mit etwas Pech auch 1,8V; bei Ausgang Richtung Ground sind es 1,2V bis 1,8V. In Summe fehlen dir von den 5V evtl schon 2,6V oder mehr. Du sagst,
Die Motoren vertragen eigentlich so max. 3 V. , dann tippe ich auf stromhungrige Typen (von irgendwas muß die Leistung ja herkommen...). Da kann es schon sein, daß du an die oben zitierten Nennbedingungen rankommst.
2) geht vielleicht dein Netzteil in die Knie bei dieser Last
3) hast du die Motoren entstört? Wenn nein, dann können auch noch ganz andere Effekte wie häufiger Reset des Controllers aufgrund von EMV-Problemen die Leistungsentfaltung verhindern.

Grundsätzlich solltest du den Controller getrennt von den Motoren versorgen. Es klingt so als ob das bei dir nicht der Fall ist.

Wieviel Strom ziehen die Motoren denn jeweils bei 3V Batteriebetrieb?

Müde Grüße
Christian.

joheinz
29.03.2010, 09:53
Hi Christian, vielen Dank für die Antwort. Da werde ich heute abend mal das Messgerät auspacken. Mittlerweile habe ich auch ein Datenblatt zum Motor gefunden. Da hatte ich mich ob der Größe wohl getäuscht, und es kann tatsächlich sein, dass mein Netzteil (max 600mA) überfordert ist.
Entstört habe ich bis jetzt noch nichts (bis auf die internen Freilaufdioden des L293D). Ich werde im nächsten Schritt mal ein Kondensator parallel zur Stromversorgung schalten, um Spannungsschwankungen abzumildern und/oder die eigentlichen Motoren entstören. Ich melde mich nochmal, wenn ich weiter bin.
Vielen Dank, Markus

joheinz
30.03.2010, 20:19
Habe jetzt nochmal nachgemessen. Ein Motor an der Batterie zieht 300mA. d.h. mit meinem Netzteil für 600mA bin ich wohl an der Grenze, da ich ja auch darüber der Einfachhalt halber auch den Mikrocontroller versorgt habe. Kann heute leider nicht weiter basteln, aber werde mich mal um die beiden getrennten Stromversorgungen kümmern.

Gruss
Markus

RoboHolIC
31.03.2010, 01:34
Hallo Markus.

300mA - ist das schon der Maximalwert je Motor unter Last? Auch der Anlaufstrom könnte noch höher werden.

Der Controller braucht -wenn's viel ist- einige 'zig Milliampère, vermutlich eher weniger. Das wird dein 600mA-Netzteil nicht wesentlich entlasten.

Hat das Netzteil eine "harte" Strombegrenzung oder sind die 600mA der Nennstrom für Dauerbelastung?

Sind die 5V geregelt? Ich frage, weil es ja diese "klassischen" 08/15-Steckernetzteile gibt mit Trafo, Gleichrichtung, Lade-Elko ; die sind für Elektronik ohne eigene Spannungsregelung denkbar ungeeignet, weil sie meist eine überhöhte, schwankende und Brumm-überlagerte Spannung liefern.

Die Fragen sind hauptsächlich als Anstöße zur Vertiefung gedacht; ich erwarte da jetzt keinen detaillierten Raport, bleibe aber gerne am Ball.

joheinz
02.04.2010, 15:54
Hallo,

dank Eurer Hilfe komme ich schonmal voran. Habe mein Netzteil durch ein Batteriepack ersetzt und auch für den Arduino eine eigene Versorgung gebastelt. Dann noch 100nF Kondensatoren parallel geschaltet. Jetzt funktioniert das ganze schonmal besser.

Bisher waren die Test noch ohne Last, d.h. die Motoren drehen in der Getriebebox "leer". Mal schauen was passiert, wenn auch noch wirklich etwas angetrieben werden soll. Etwas sorgen macht mir die Begrenzung des L293D auf 1,2A, wenn meine Motoren lt. Datenblatt Spitzen von 2A ziehen können. Ich denke mal im schlimmsten Fall geht halt der Chip kaputt, oder?

Weiterhin dreht der Motor beim Start erstmal in beliebige Richtungen. Ich vermute, dass kann ich über pullup Widerstände in den Griff kriegen, in dem ich die Kontrollpins alle auf Masse ziehe.

RoboHolIC
02.04.2010, 17:35
Hallo,

das klingt schon mal recht gut. Allerdings hab ich bisher nicht auf die Kühlung deines L293 geachtet. Hast du schon Kühlmaßnahmen getroffen? Andernfalls ist es nur eine Frage der Zeit, wann der Chip auch bei nur halbem Nennstrom _reproduzierbar_ den Geist aufgibt. Bei guter Kühlung geht das schon in Ordnung.
Hohe Motorströme, z.B. bei Blockierung, kann man mittels Shunt-Widerstand in der Stromrückführung vom Treiber-IC erkennen und dann den Motorstrom abschalten - da gibt es Mittel und Wege.
Die Pull-Widerstände sind schon mal gut. Kann der Arduino auch ein paar mA auf high-Pegel liefern? TTL-Ausgänge z.B. sind da eher zu schwachbrüstig. Pull-Up's gegen Masse ziehen geht eigentlich immer, hängt aber von den erforderlichen PowerUp-Startbedingungen ab. Im Falle des L293 wäre Pull-Up OK: Alle Treiber high, kein Motorstrom, jedoch nicht High-Impedance. Deine Pull-Down-Variante ist da noch einen Tick sicherer!
Wenn deine erste Charge L293 allzu schnell abbrennen sollte, kannst du ja immer noch auf einen kräftigeren Treiber umsteigen :-)

Gruß Christian.