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!
.......nein?...... Im Ernst: nein, sind sie nicht. Ich vermute mal, dass du mir damit sagen willst, dass das besser wäre? ;-) Ich habe noch nicht so viel Ahnung von der Materie...
>Ich vermute mal, dass du mir damit sagen >willst, dass das besser wäre? Richtig! Ein Schaltplan deines Aufbaus würde auch helfen...
OK, hier mal ein (aus dem Gedächtnis) hingeschluderter Schaltplan: http://img349.imageshack.us/my.php?image=circuitjr6.gif
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
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! :-)
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.
Die Massen von AVR und L293 müssen selbstverständlich verbunden werden. Sonst hat das Steuersignal keinen Potenzialbezug zum Steuereingang des L293.
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
Au verdammt!!! Dann ist mein mein armer L293D jetzt wohl innerlich frittiert :-( Aber danke für den Hinweis!
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*
> ...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...
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!!!
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
>(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.
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!
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.
^^ Aber der 7805 ist ja nötig weil vorher 10V anliegen, und das den Motor vollkommen überfordert. Ich wollte ja grade damit die Spannung auf einen für den Motor guten Wert bringen....
Dann schau mal ins Datenblatt was dein 7805 maximal hergibt. Ich hoffe du wirst überrascht sein.
1 A * 5 V = 5 W. Das ist ohne Kühlkörper bei nem TO220-Gehäuse mit R_thja von ungefähr 50 K / W eindeutig zu viel (wären also 250 K bei 5 W...)
>> Aber der 7805 ist ja nötig weil vorher 10V anliegen, und das den Motor
vollkommen überfordert.
Das verstehe ich nicht, im Eröffnungspost steht doch, daß der Motor
soviel braucht!?!?
Tassilo
"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!
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?
"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?)
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.
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?"
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.
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.
OK, da haben wir wohl ein bisschen aneinader vorbeigeredet ;-) Dann werd ich das mal probieren. Vielen Dank euch allen!
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.
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
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.
"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...
Nein, faß mal zur Abwechslung den L293 an, der schaltet bei Übertemperatur nämlich auch ab! Aber verbrenn´ Dich nicht!
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?
> 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. ;-)
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 :-)
> ...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.
@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...
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" ?
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.
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?
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.