AVR vs. L239D

Gast #434596
Lesenswert?

Hi Leute!
Ich habe eine kleine Schaltung gelötet, auf der ein AVR (mega16) und ein 
L239D (H-Brücke) sitzt. An den L239D ist ein Motor angeschlossen, der 
nun über den AVR gesteuert werden soll.

Das Problem dabei ist folgendes:
Der L239D gibt immer an BEIDEN Motorausgängen die volle Einganfsspannung 
ab, der Motor dreht sich also nicht (weil die Spannungen zwischen den 
beiden AUsgängen dann 0V ist). Eigentlich sollte immer nur EINER der 
beiden Ausgänge an sein, der andere aus.
Das komische dabei ist, dass das Input vom AVR korrekt ist! Es liegt 
also am Enable Pin vom L239D eine 1, und an den beiden Motor-Steuer-Pins 
eine 1 und eine 0. Damit dürften eigentlich nicht BEIDE Ausgänge an 
sein...

Allerdings muss ich dazu sagen, dass AVR und L239D an verschiedenen 
Spannungsquellen hängen.
Der AVR wird mit 4,8V gespeist, sein Output (das, was dann auch an den 
L239D-Eingängen anliegt) ist also auch 4,8V.
Der L239D hingegen hängt an 10,3V (weil der Motor so viel braucht). An 
seinen Ausgängen gibt er also auch 10,3V ab.

Könnte es sein, dass durch die unterschiedlichen Spannungen die 
Ausgangssignale vom AVR im L239D nicht richtig interpretiert werden? Das 
erscheint mir aber nicht besonders sinnvoll, weil das L239D ja extra für 
hohe Spannungen (bis 35V) ausgelegt ist.

Aber woran könnte es sonst liegen, dass trotz richtigem Input ein 
falscher Output herauskommt?
Danke für eure Hilfe!
Gast #434643
Lesenswert?

L239D kenne ich nicht. Meinst Du vielleicht einen L293D? Funktionieren 
müsste es aber auch, wenn nur einer der Massepins angeschlossen ist. Die 
sind intern verbunden und die mehrfache Ausführung dient lediglich der 
Wärmeabfuhr. Für die Anwendung sollte man sie aber alle anschließen und 
an eine schön große Massefläche legen, je nachdem, was für einen Motor 
man anschließen will. Aus Deinem Schaltplan schließe ich mal, dass Du 
den richtigen Enable-Eingang angeschlossen hast... Ansonsten kann ich 
keine groben Fehler entdecken. Hast Du es mal mit dem anderen 
Brückentreiber versucht (In/Out 3 und 4)? kontrollier mal die 
Verdrahtung. Und vor allem: Spendier einen dicken Kondensator zwischen 
Vs und Masse (Elko, größe je nach Leistung des Motors mit parallel 
VS-Kondensator, ein paar hundert nF). Sonst bricht Dir bei jedem 
Schaltversuch erstmal die Versorgung zusammen.

Gruß

Johnny
Gast #434658
Lesenswert?

Danke für eure Ratschläge!

@ johnny.m:
Aber das die beiden GNDs verbunden werden müssten, siehst du auch so, 
ja?
Das könnte ja dann der Fehler sein... (kann es leider grad nicht testen)

Mit dem Kondensator ist ne gute Idee! :-)
Gast #434664
Lesenswert?

Allerdings wird Dich, wenn die Schaltung dann mal funktioniert, der 
Wirkungsgrad des LD293 nicht wirklich begeistern. Ich habe auch gerade 
so´n Teil verbaut und wenn die Motoren ein wenig ziehen müssen, ist das 
Teil nur noch ´ne bessere Heizung. Die Ruhestromaufnahme mit jeweils 
25mA ist mir für´s Nixtun auch viel zu hoch. Demnächst werde ich mal ein 
paar Dual-MOSFETs nehmen und die H-Brücke diskret aufbauen. Das wird 
sicher um Einiges besser.
#434675
Lesenswert?

Beebo wrote:
> Allerdings muss ich dazu sagen, dass AVR und L239D an verschiedenen
> Spannungsquellen hängen.
> Der AVR wird mit 4,8V gespeist, sein Output (das, was dann auch an den
> L239D-Eingängen anliegt) ist also auch 4,8V.
> Der L239D hingegen hängt an 10,3V (weil der Motor so viel braucht). An
> seinen Ausgängen gibt er also auch 10,3V ab.

Genau deswegen hat der L293D ZWEI VCC-Pins! An Pin 16 kommt die 
Betriebsspannung für die interne Schaltlogik, in deinem Fall also die 
4,8V, die auch an den AVR kommen. An Pin 8 wird die Motorspannung 
angeschlossen, die auch höher als die Logikspannugn an Pin 16 sein darf.
Plan dazu: 
http://www.roboternetz.de/wissen/images/d/da/Hbrueckel293d.gif
Gast #434899
Lesenswert?

Wenn dem so sein sollte, besorge Dir einin L6203 o.ä., die sind um 
einiges moderner (FET-Endstufe). Oder eine diskrete Endstufe mit FETs 
und Brückentreiber, dadurch bekommst Du einen Excellenten Wirkungsgrad.

Allerdings haben die fertigen Endstufen einen großen Vorteil, gerade für 
Anfänger: man kann bedeutend weniger falsch machen und kommt sicherer 
und schneller ans Ziel.

Suche hier im Forum nach h-Brücke oder motor:
http://www.mikrocontroller.net/forum/1?filter=brücke*
http://www.mikrocontroller.net/forum/1?filter=motor*
http://www.mikrocontroller.net/forum/1?filter=L293*
http://www.mikrocontroller.net/forum/1?filter=L620*
Gast #435002
Lesenswert?

> ...hat der L293D ZWEI VCC-Pins!
Und genau deshalb heißen die Pins auch nicht VCC, sondern Vss bzw. Vs... 
Hatte ich völlig übersehen, dass er die verbunden hat...

> Au verdammt!!! Dann ist mein mein armer L293D jetzt wohl innerlich
> frittiert :-(

Warum sollte er? Du kannst den Vss-Pin lt. Datenblatt mit bis zu 36 V 
beaufschlagen. Nur müssen dann auch die Eingangspegel entsprechend 
angepasst sein, und das dürfte das Problem bei Deinem Aufbau sein, wenn 
Du bei Vss = 10V mit nem 5V-Pegel reingehst. Kaputt gehen sollte dabei 
eigentlich nichts...
Gast #436193
Lesenswert?

Sooo! Mit der Spannungsversorgung hab ich jetzt erstmal hinbekommen. 
Allerdings gibt's jetzt ein neues Problem: Sobald ich die Motoren an die 
Schaltung anschließe, geht garnix mehr :-(
(Die LED, die die SPannungsversorgung anzeigt flackert nurnoch, und die 
Motoren stottern vor sich hin).

Ist es das, was johnny.m oben prophezeit hat?

Zitat: "Und vor allem: Spendier einen dicken Kondensator zwischen
Vs und Masse (Elko, größe je nach Leistung des Motors mit parallel
VS-Kondensator, ein paar hundert nF). Sonst bricht Dir bei jedem
Schaltversuch erstmal die Versorgung zusammen."

Ich bin mir jetzt nicht 100% sicher, wie genau ich das machen soll.

1) Welcher Kondensator?
Die beiden Motoren sind aus einem 40cm großen, ferngesteuerten Panzer 
entnommen ;-)
An Kondensatoren hab ich folgendes in meiner Grabbelkiste:
 - 10.000 uF
 -  1.000 uF
 -    330 uF
 -    220 uF
 -    100 uF
 -     47 uF
 -     10 uF

2) Wie verschalten?
Also ich hab schon einen kleinen Kondenstaor mit 100 nF zwischen VCC und 
Masse (weil das in allen AVR-Schaltungen so vorgesehen wird). Kommt der 
neue Kondensator dann einfach noch parallel dazu?

Was genau ist mit "Elko, größe je nach Leistung des Motors mit parallel
VS-Kondensator" gemeint? (VS-Kondenstaor = ???) Also noch ZWEI 
zusätzliche Kondensatoren?

Vielen Dank nochmal!!!
Gast #436195
Lesenswert?

3)
Ach ja, noch etwas:
Da ich jetzt ein 7805 zur Spannungsversorgung verwende: Sollen die neuen 
Kondensatoren zwischen Masse und die VCC der dicken 10V Batterie, oder 
zwischen Masse und OUT von meinem 7805 (=5V)???

Danke :-D
Gast #436258
Lesenswert?

>(Die LED, die die SPannungsversorgung anzeigt flackert nurnoch, und die
>Motoren stottern vor sich hin).

Dann ist deine Versorgung vermutlich etwas schwach auf der Brust (Mal 
die Spannung messen - mit und ohne Motor).

Hast du vielleicht auch noch einen aktuellen Schaltplan?
Wenn dann musst du mit dem dicken Kondensator vor den Spannungsregler; 
alles was dahinter an Kapazitäten vorhanden ist, sorgt nur dafür, dass 
das Ding zu schwingen anfängt.
Gast #436344
Lesenswert?

OK, ich hab mal probeweise einen 330 uF Kondensator zwischen VCC und GND 
gesetzt. Das ganze sieht dann etwas so aus:

http://www.vankurt.de/tmpstuff/tbot.gif

Allerdings gibt es jetztb ein neues Problem:

Wenn ich den Roboter einschalte, tut er erstmal was er soll (d.h. fährt 
in der Gegend rum). Allerdings werden die Motoren recht schnell 
schwächer, und nach ca. 10 bis 20 sek. drehen sie sich garnicht mehr. 
Wenn ich das Ding dann ne Weile ausgeschaltet lasse, und es dann nochmal 
probiere hab ich wieder den selben Effekt.

Was mir dabei aufgefallen ist: der 7805 (der die 10,3V eingangsspannung 
auf 5V runterregelt) wird dabei enorm heiß! Wenn die Motoren den Geist 
aufgeben ist er sogar so heiß, dass ich mir übelst den Finger dran 
verbrannt hab ^^
Könnte es sein, dass der einfach überhitzt, und deshalb versagt?

Aber so ganz versteh ich das nicht, der 7805 ist ja extra für sowas 
ausgelegt...
Naja, wenn das also das Problem ist, was kann man dagegen tun?

Wäre es möglich, mehrere 7805er zu verbauen, so dass diese sich die 
Arbeit teilen?
Und einen Kühlkörper werde ich dann auch mal anbringen ;-)

Vielen Dank für eure Tips!
Gast #436348
Lesenswert?

Ist eine super Idee, Motoren mit einem 7805 zu betreiben.
Dass die Motoren schwächer werden liegt daran, dass die Thermosicherung 
des 7805 anspringt.
Also: MotorenStrom vor dem Spannungsregler abgreifen, oder richtig 
dicken Spannungsregler verwenden.
Gast #436413
Lesenswert?

"Das verstehe ich nicht, im Eröffnungspost steht doch, daß der Motor
soviel braucht!?!?"

Richtig, damals war ich noch der Meinung, der Motor bräuchte so viel. 
Hab dann aber festgestellt, dass er dann nach ner Zeit merkwürdige 
Geräusche von sich gibt, und sehr warm wird. Mit 5V hingegen bringt er 
auch genug Leistung, und läuft wesentlich ruhiger :-)


@ johnny.m
Was ist denn "R_thja"? Und 50 K / W? Kann dir nicht so ganz folgen :-(

Wie wär's denn, wenn ich zusätlich zu dem 7805 noch ein 7806 packe.
Dann versorgt der 5er die beiden ICs, und der 7806 brauchst sich nurnoch 
um die Motoren kümmern, wird aslo geringfügig entlastet.
Ausserdem braucht er die 10,3V dann nur auf 6V runterbringen, was doch 
sicher mit weniger Wärmeentwicklung verbunden ist?

Mit nem Kühlkörper auf dem 7805 klappt es übrigens auch so schon ganz 
gut, aber vieleicht würde der 7806er das ganze noch was angenehmer 
machen?


An dieser Stelle möchte ich mich mal ganz herzlich bei euch allen 
bedanken. Ihr habt echt jede Menge fundiertes Fachwissen, seid 
freundlich, hilfsbereit und antwortet immer verdamnmt schnell :-D
Eine wirklich tolle Comunity!
Gast #436416
Lesenswert?

Müsst ihr euch eigendlich immer gleich an so einen tollen Roboter wagen, 
wenn man noch nicht mal Datenblätter lesen kann und sonst auch keine 
Ahnung hat? Wie hast du denn angefangen den L293 anzuschließen? Einfach 
mal Lotto gespielt und die Pins irgendwie verbunden?
Zum Spannungsregler: So ein hat schon nicht umsonnst eine 
Kühlkörperanschlußmöglichkeit! Und stutzig macht es dich auch nicht, 
wenn du dir an einem Halbleiter übelste Verbrennungen zuziehst?
Gast #436426
Lesenswert?

"Müsst ihr euch eigendlich immer gleich an so einen tollen Roboter 
wagen"

So toll ist er garnicht, und "Roboter" ist vieleicht auch zu viel 
gesagt. Nachdem ich mit einem AVR LEDs zum blinken bringen konnte, und 
mich in die Programmierung eingearbeitet hatte, wollte ich halt ein 
bisschen was Interessanteres machen. Die Idee war eigentlich nur, ein 
Spielzuegauto auseinanderzunehmen, und mit dem AVR die Motoren zu 
steuern.
Ich dachte ob ich da eine LED dranhänge oder Motoren würde keinen großen 
Unterschied machen ;-)
Naja, man wächst an seinen Aufgaben.


"wenn man noch nicht mal Datenblätter lesen kann"

Kann ich. Aber ich lese sie nie komplett :-(



"Wie hast du denn angefangen den L293 anzuschließen? Einfach
mal Lotto gespielt und die Pins irgendwie verbunden"

Nein, ich habe mir schon Gedanken gemacht. Der L293D ist ja auch korrekt 
verschaltet, nur an der SPannungsversorgung haperts.



"Und stutzig macht es dich auch nicht,
wenn du dir an einem Halbleiter übelste Verbrennungen zuziehst?"

Doch, sicher! Was glaubst du, warum ich hier so viel nachfrage?



Es tut mir wirklich leid, wenn ich euch auf die Nerven gehe, aber 
alleine werd ich das wohl nie vernünftig hinbekommen :-(
(Es wird ja niemand gezwungen auf mein Post zu antworten, oder?)
Gast #436439
Lesenswert?

Naja, der 7805 braucht bei dem Strom, den du da ziehst, in jedem Fall 
einen guten Kühlkörper. Ich würde außerdem empfehlen, den AVR an einer 
anderen Spannungsquelle wie die Motoren zu betreiben, da so die 
Leistungselektronik keine Rückwirkungen auf den AVR hat.
Gast #436468
Lesenswert?

OK, das mit der getrennten Spannungsversorgung werde ich vieleicht 
später nochmal testen.
Was haltet ihr Profis denn von der Idee mit dem extra-7806?

Für Scroll-faule:
"Wie wär's denn, wenn ich zusätlich zu dem 7805 noch ein 7806 packe.
Dann versorgt der 5er die beiden ICs, und der 7806 brauchst sich nurnoch
um die Motoren kümmern, wird also geringfügig entlastet.
Ausserdem braucht er die 10,3V dann nur auf 6V runterbringen, was doch
sicher mit weniger Wärmeentwicklung verbunden ist?"
(Firma: TravelRec.) Persönliche Seite #436476
Lesenswert?

Spare Dir die ganze Kinematik von wegen vorgeschaltetem 780x und 
betreibe die Motoren mit einem PWM. Die hohe Eingangsspannung von 10V 
ist dann relativ egal, wenn Du das PWM klein hältst, machen das Deine 
Motoren auch mit, da die effektive Leistung dann auch klein ist. 
Allerdings würde ich Dir dann raten, den L293 durch eine MOSFET H-Brücke 
zu ersetzen, die schnell genug getaktet werden kann (> 15 kHz). Alles 
Andere ist Elektrische Energie in Wärme umzusetzen.
Gast #436480
Lesenswert?

Ich hab keine Ahnung wie du mit "noch ein 7806 (dazu) packe" gemeint 
ist.
Letzlich ist das doch genau mein Vorschlag. Du versorgst den AVR (und 
den Logikteil des L293D) mit 5 Volt, und den Leistungsteil mit 6 Volt.
Der 7805 muss dann (eventuell) auch gar nicht mehr gekühlt werden, da 
der AVR ja nur wenige mA benötigt.
Der 7806 muss jedoch wieder gut gekühlt werden(4,3V * 0,7A = 3W). 
Natürlich wird weniger Energie in Wärme umgesetzt als beim 7805, das 
Problem bleibt trotzdem bestehen.
Gast #436484
Lesenswert?

R_thja ist der Wärmewiderstand zwischen Sperrschicht (bzw. Chip) und 
Umgebung. 50 K/W bedeutet, dass der Chip sich bei einer Verlustleistung 
von 1 W um 50 K erwärmt. Bei 5 W Verlustleistung wären das also 250 K 
(oder °C) Temperaturerhöhung, wenn der 7805 keine interne 
Temperaturbegrenzung hätte. Google mal nach "Kühlkörper Berechnung", da 
gibts dann Informationen, was es mit dem Wärmewiderstand auf sich hat.
Gast #436487
Lesenswert?

Na ja, um das Projekt etwas voranzutreiben, bietet sich auch folgende 
Lösung an:

du hast bei einer Spannung von X Volt einen Strom von Y Ampere gemessen. 
Häng den Motor mit einem entsprechenden belastbaren Vorwiderstand an die 
Spannungsquelle (10V?) und lass den Logikquark weiter über den 7805 
laufen.

MW
Gast #436539
Lesenswert?

Er will ja erstmal nur die Sache irgendwie ans Laufen bekommen. 
Optimieren kann man dann später immer noch. Zum Beispiel auf die 
erwähnte PWM, mit Sanftanlauf/Sanftstopp damit es nicht so ruckelt beim 
Anfahren und Anhalten.
Gast #436631
Lesenswert?

"Er will ja erstmal nur die Sache irgendwie ans Laufen bekommen."
Genau so isses :-D


Mittlerweile habe ich einen 7906 dazugelötet, der jetzt nurnoch für die 
Motoren zuständig ist, und einen kleinen Passivkühler draufhat.

Das Gute:
Beide 78er werden kaum noch warm (ich kann schmerzfrei meinen Finger 
drauflegen) ;-)

Das Schlechte:
Das System verhält sich genauso wie vorher, d.h. nach ein paar Sekunden 
werden die Motoren immer langsamer und verrecken dann ganz.
Aber ich glaube, diesmal ist einfach nur der Akku zu schwach. Ich werd 
ihn gleich mal aufladen, und es dann nochmal testen...
Gast #436779
Lesenswert?

AUA
OK, Es ist wohl tatsächlich der L293D. ARHGH!!!!!
Das kann doch nicht sein :-(

An dem Ding kann man offensichtlich keinen Kühler anbingen. Muss ich da 
jetzt ein Flüssig-Stickstoff System draufsetzen, oder gibt es noch eine 
einfache Möglichkeit, das ganze zu retten? ;-)

Oder sollte ich vieleicht gar eine ganz neue Platine basteln?
Mit einem anderen Ansatz?
#436804
Lesenswert?

> OK, Es ist wohl tatsächlich der L293D. ARHGH!!!!!
> Das kann doch nicht sein :-(

Doch, kann doch sein. Weiter oben hast Du geschrieben, die Motoren 
bräuchten ca. 700mA. Der L239D kann aber nur 600mA Dauerstrom.
Es wird dir wohl leider nichts anderes übrigbleiben: (Travel Rec sagte 
es schon) Du mußt dir eine H-Brücke mit MosFETs aufbauen.

Edit: Ich will demnächst auch einen L293D verbauen, da bin ich doch 
beruhigt, wie "robust" die Dinger in Bezug auf Überspannung sind. ;-)
(Firma: TravelRec.) Persönliche Seite #436971
Lesenswert?

Naja robust... Wenn die Temperatursicherung kommt, heißt das nur, daß 
sich der L293 sebst am Ar... packt, um nicht zu verbrutzeln. Ich werde 
die Teile bestimmt nie nicht mehr einbauen, weil der Wirkungsgrad von 
dem Ding in keinem Verhältnis zu dem Anwendungszweck, nämlich der 
Versorgung mit Batterien/Akkus, steht. Ich habe letztens DualFETs (n und 
p-Kanal, IRF7389PBF) im SO8-Gehäuse geordert, mit 2 davon hat man ein 
komplettes H und die Dinger können 5A ohne warm zu werden (bei passiger 
Ansteuerung). Noch dazu sind sie billiger als der L293, der bei 
Fachverkäufern für Robotertechnik schon mal an die 5 Euro kostet. Für 
die alte Hippe verdammt viel Kohle :-)
Gast #437012
Lesenswert?

> ...Du mußt dir eine H-Brücke mit MosFETs aufbauen.

Es gibt die Dinger auch integriert für erheblich höhere Leistungen (auch 
leicht zu bekommen), z.B. L6201..3 von ST. Der 6203 kann z.B. bis zu 5 A 
und hat durch das Multiwatt-Gehäuse auch eine 
Kühlkörpermontagemöglichkeit. Ich hab mit den Dingern bisher recht gute 
Erfahrungen gemacht. Die haben allerdings jeweils nur eine Vollbrücke 
(Du brauchst also für jeden Motor einen L620X). Ein Stück teurer als der 
L293 sind sie auch.
#437035
Lesenswert?

@Travel Rec.  Ich habe mir den IRF7389 mal angesehen, sieht ja recht 
vielversprechend aus (vor allem der Preis von ca. 0,59 €). Mein Problem 
ist jetzt nur: Wie steuer ich den p-Kanal-Mosfet an? Auf meinem 
Schaltung sind nur 5V und 12V vorhanden. Wie macht man das mit der 
negativen Hilfsspannung?
Den L293D habe ich auch nur aus "Bequemlichkeit" genommen und ich kann 
den "fliegend" verdrahten, da in der entsprechenden Schaltung nur ein 
kleiner Schrittmotor auf engstem Raum angesteuert wird. In Zukunft währe 
ich aber dem IRF7389 nicht abgeneigt...
Gast #437132
Lesenswert?

Ja, ich glaube ich werde dann auch mal in Richtung IRF7389 gehen...
Für Tips bezüglich der ANsteuerung bin ich natürlich (genau wie Martin 
sehr dankbar).

Ich hab leider bei den Bauteil-Bezeichnungen noch nicht so den 
Durchblick: gibts den auch mit einem "normalen" Gehäuse (so, dass die 
Pins einfach nach unten stehen, und man ihn leicht in eine 
Lochrasterplatine löten kann)?

Was genau meinst du eigentlich mit "bei passiver
Ansteuerung" ?
(Firma: TravelRec.) Persönliche Seite #437397
Lesenswert?

Nee, nicht passiv, sondern passig, auch passend genannt. Es gibt 
MOSFET-Treiber und auch noch andere Möglichkeiten, wobei MOSFET-Treiber 
das absolute Plus darstellen, da sie den FET sehr schnell schalten und 
so die Umschaltverluste klein halten. Wenn die PWM-Frequenz niedrig und 
die Spannung über den FETs nicht allzu hoch ist, kann man beide Gates in 
dem DoppelFETs zusammenschalten, die Drains bilden den Ausgang, die 
Sources kommen entsprechend auf + (12V) und Masse. Die 
zusammengeschalteten Gates klemmt man über 2kOhm an + (12V) und über 
einen npn-Transistor werden die Gates dann nach Masse gezogen. Ergebnis: 
bei nicht angesteuertem npn-Transistor leitet der n-Kanal-FET, bei 
durchgeschaltetem npn-Transistor leitet der p-Kanal FET. Bei 2 
DoppelFETs, als H geschaltet, muß demzufolge immer einer der 
npn-Transistoren leiten, der andere nicht. Je nachdem, welcher da 
leitet, wird die Drehrichtung des Motors festgelegt. Bei Ansteuerung mit 
PWM kann dann auch noch die Geschwindigkeit gesteuert werden.
Gast #437401
Lesenswert?

OK, wenn ich jetzt also einen passenden MosFET aussuchen will, worauf 
muss ich achten? Es gibt bei Reihelt ja hunderte IRx-Mosfets, die in 
Frage kämen...

Wäre z.B. ein IRL530N OK? Kann man den einfach an einen AVR Pin hängen 
(ist ja ein "logic level gate device")?
Gibt es da noch etwas zu beachten?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren