Hallo,
ich versuch hier gerade eine billige "Autorennbahn" zu tunen, die für
meine Nichte und den Neffen bis Weihnachten fertig werden soll. Daher
wären schnelle Antworten gut...
Die folgenden ähnlichen Artikel im Forum habe ich schon gelesen:
Beitrag "L293B Problem"Beitrag "Stützkondensator berechnen"
Der erste schien eher das Problem zu betreffen. Der letztere hat mir so
direkt nicht weiter geholfen...
Wer sich für das "Warum so kompliziert?" und das "Wieso überhaupt?"
nicht interessiert, überspringt am besten den folgenden Teil bis zur
Überschrift "Aktueller Ansatz"....
Ursprünglicher Aufbau:
======================
1. Jeweils eine 1,5V Mono-Batterie mit Taster in Reihe in jedem
Steuergerät. In Reihe dazu die Gleise (und damit der Motor des
Rennwagens) der Rennbahn.
Problem: 1.5V reichen zum fahren, aber nicht dazu dass die Autos so
schnell fahren, dass es aus der Kurve fliegt. Damit gewinnt also immer
der mit der volleren Batterie bzw. dem wegen Fertigungstolleranzen
geringfügig besseren Motors. Also: Ziemlich langweilig...
Vorherige Ansätze:
==================
* Eine 9 Volt-Batterie im Steuergerät war zu krass...
* Sämtliche mit Spannungsreglern scheitern an deren zu niedrigen
(Temperaturabhängigen) Leistungsbegrenzung. D.h. der Spannungsregler
erhitzt sich mit der Zeit ... außerdem macht eine 9V-Block-Batterie
recht flott schlapp (nach 10 Minuten is Ende)
* Strombegrenzung durch Widerstände (~10 bis 15 Ohm in Reihe) war ebenso
wegen zu hoher Leistung und Temperaturabhängigkeit nicht sehr
erfolgreich. Ich hatte zwar 4-5 Widerstände (je 250mW) parallel
geschalten, aber die Temperaturabhängkeit war nicht weg zu bekommen.
Aktueller Ansatz:
=================
* Spannungsversorgung über Netzteil (5V, max. 1.5A)
* ein ATTiny85-20PU zur Erzeugung einer PWM
* von Handgeräten wird nur der Taster benutzt
* ein L293D(NE) als Motortreiber
Problem:
Die Schaltung und Software funktioniert prinzipiell solange man den AVR
an einer getrennten Spannungsversorung hängen hat. Direkt am Netzteil
angeklemmt, scheint die Versorgungspannung des AVRs kurzzeitig
einzubrechen sobald eine Last am Ausgang des L293D ist. Bei Versorung
des AVR über 9V-Blockbatterie + Spannungsregler (78L05AC) scheint alles
super zu funktionieren.
Beschreibung der Schaltung:
Da die Schaltung recht wirr aussieht, gibts die Beschaltung als
Beschreibung...
1. L293DNE:
* mit VCC2 + GND direkt an das Netzteil angeschlossen
* VCC1 an VCC des Attiny45
* Eingang "1A" direkt an VCC1 (Logical: HIGH)
* Eingang "1,2EN" bekommt PWM-Signal vom ATTiny45 (pin 0)
* Motor hängt an Ausgang "1Y" + GND
* selbes Spielchen für zweiten Motor (über "4A" = HIGH, "3,4EN" = PWM
von ATTiny pin1, Motor an "4Y" + GND)
* GND ist mit GND vom Netzteil verbunden
* Keine Kondensatoren oder weitere Dioden.
2. ATTiny45:
* hing vorher auch direkt am Netzteil, jetzt: Netzteilspannung VCC2 mit
100µF Elko gepuffert, dann Spannungsregler (78L05AC) dran und dahinter
ein 1500µF Elko == VCC1
* pin 3 und pin4 sind auf INPUT_PULLUP gesetzt und bekommen über die
Taster (mit GND und jeweil pin3 oder pin4 verbunden) ihr Steuersignal
* An den pins 0 und 1 wird dann in Abhängigkeit des dazugehörigen
Steuersignals (vom Taster) PWM-Signal erzeugt; dieses ist 0% duty cycle
am Anfang (Stillstand) und springt von 0% direkt auf 25% sobald der
Taster betätigt wird. Danach steigt es an bei weiterer Betätigung und
fällt 3 mal so schnell beim loslassen des Tasters (nachlaufen). Eingänge
werden aller 10ms ausgewertet. Der PWM-duty-cycle wird aller 100ms
aktualisiert.
* pin0 und 1 werden mit je einem 100kOhm-Widerstand auf GND gezogen,
damit beim "StartUp" die Pins nicht wegen "floating input" vom L293D als
HIGH gewertet werden und dann die Autos wie ein Geschoss von der Bahn
fliegen.
* GND ist mit GND vom Netzteil verbunden.
* RESET-Pin ist "floating" (Verbindung hart an VCC bringt keine
Verbesserung) für Programmierbarkeit in der Schaltung.
Beobachtungen:
1. L293D - das PWM-Signal scheint nur an den Pins "EN1,2" und "EN3,4"
sauber zu funktionieren. Bei "EN1,2" auf HIGH und "1A" mit PWM-Signal
scheint es Probleme zu geben.
2. Am Spannungsregler-Ausgang (78L05AC) messe ich 3.60 Volt. Laut
Datenblatt sollten das eigentlich 5V sein. Ich nehme an, dass ist der
minimale Drop-Out (1,4 Volt), weil die Eingangsspannung nur 5Volt ist.
3.Ein Spannungs-Regler mit 2Volt (78L02AC) scheint nicht zu
funktionieren. Wahrscheinlich weil der Minimale HIGH-Pegel des L293D
2,3Volt ist. Ich messe zwar 2,5V hinter dem Spannungsregler... nen
3Volt-Regler hab ich leider nicht. Kann ich ggf. kaufen oder über
Spannungsteiler realisieren.
4. Bei VCC1=VCC2 (keine Spannungsregler / Puffer) hört man nur ein
Rattern, eine Test-LED an "1Y" des Motortreibers (parallel zum Motor)
flackert nur kurz auf.
5. Mit VCC1 = (9V-Batterie + Spannungsregler ohne Kondensatoren)
funktioniert alles tadellos. Es scheint also die Eingangsspannung sehr
weit einzubrechen und im ATTiny wird dann ein Reset ausgelöst.
6. Lasse ich den 100µF-Elko vor dem Spannungsregler weg (nur 1500µF
dahinter), fährt das Auto nur ruckelig (gefühlt: Spannungseinbrüche im
Halb-Sekunden-Takt, wird dann aber schneller)
7. 1500µF-Elko vor dem Spannungsregler und 100µF funktioniert nicht.
8. Ein Elko + Standard-Diode (1N4148) statt dem Spannungregler hat nicht
funktioniert. Ich wollte per Diode den Stromfluss nur Richtung
Kondensator / ATTiny45 erlauben und der Kondensator sollte die Spannung
während der kurzen Spannungseinbrüche stabil halten... vielleicht war
der Kondensator aber zu klein (hatte glaub ich nur 100µF genommen)?
FRAGEN:
=======
Ja, ich habe eine Lösung gefunden, die so irgendwie funktioniert.
Allerdings hab ich das Gefühl, dass der 1500 µF Elko nicht ganz
ausreicht (gefühlt: noch ganz leichtes Ruckeln beim Anfahren) und in
folge von Alterung irgendwann nicht mehr ausreichen wird. Außerdem habe
ich es nur mit einem Auto probiert und weiß nicht, wie sich das verhält
wenn da zwei Fahrzeuge gleichzeitig anfahren...
Leider habe ich kein Oszilloskop, um den Spannungsverlauf zu messen.
Möglicherweise fehlt mir aber einfach nur eine Entstörung an anderen
Bauteilen (Motoren, ICs oder ähnliches). Die zwei aufgezählten
Kondensatoren am Spannungsregler sind die einzigen. Die Fahrzeuge habe
ich noch nicht geöffnet. Ich gehe aber davon aus, dass da einfach
Mabuchi-Motoren drin sind die direkt am Gleis hängen.
Hat jemand einen Fehler entdeckt?
Kann man das Problem evtl. einfacher lösen?
Den Anfangstrom der Motoren zu begrenzen wäre eine Idee. Dann brauch ich
aber Leistungswiderstände, die so 1,5 Watt mitspielen ohne sich
großartig zu erwärmen...
Vielleicht kann man auch die Motor-Steuerung irgendwie "intelligenter"
lösen (z.B. für x Millisekunden 100% duty-cycle fürs anlaufen und erst
dann die normale PWM oder keinen Sprung von 0% auf 25%)? Ich nehme aber
an, dass bei jeder Form von PWM letztlich der Motor hart "an und aus"
geschalten wird. Weshalb es dann wohl kaum noch darauf ankommt, wie der
duty cycle ist. Deshalb dachte ich allerdings auch, dass ein viel
kleinerer Kondensator reichen müsste, um die Spannungseinbrüche zu
kompensieren. Der µC selbst braucht ja nicht viel Saft... und bekommt
zwischen den Einbrüchen ja genug in seinen Puffer-Kondensator
nachgeliefert. Das Problem könnte hier die Brown-Out-Detection sein, die
bei schnellem Spannungsabfall reagiert. Aber die müsste laut den
verwendeten Fuses deaktiviert sein.
FUSES des ATTiny45:
-------------------
Die Brown-Out-Detection sollte ausgeschalten sein. Die sollte also nicht
das Problem sein... Zum programmieren nehme ich die Arduino-GUI. Hier
die verwendete Config für die FUSES:
# Default clock (slowly rising power; long delay to clock; 8 MHz
internal)
# Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms;
[CKSEL=0010 SUT=10]; default value
# Brown-out detection disabled; [BODLEVEL=111]
# Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
attiny45at8.bootloader.low_fuses=0xE2
attiny45at8.bootloader.high_fuses=0xD7
attiny45at8.bootloader.extended_fuses=0xFF
Grüße,
Stefan
Stefan K. schrieb:> Kann man das Problem evtl. einfacher lösen?
Öh, wie wärs einfach mit zwei Batterien (3V) statt 1,5V? :-)
Deine kleinen 1,5V Motoren ziehen natürlich einen schönen Strom beim
Anfahren und das 5V 1,5A Netzteil ist da an der unteren Kante. Denn die
Motoren können mit Sicherheit schon mal 800mA-1A ziehen und bei zwei
Autos ist dann mal die Strombelastbarkeit des Netzteiles schnell
erreicht (gerade beim Anfahren).
Du fährst besser, wenn die Tinys komplett aus einem anderen Netzteil
gespeist würden, da tuts dann schon ein Kleindings a là Handylader.
Laß den Spannungsregler weg, der hilft dir nit.
Aus dem L293D kommen eh nur vielleicht 2V an den Motoren an, der Rest
wird verheizt.
Nimm einen Elko, "gefühlt" (weil ich kenn die Motorströme nicht) 1000uF
oder größer, direkt an die 5V und versorge den L293 damit. Ein paar
100nF Kondensatoren direkt über die Versorgungspins vom 293 sind auch
eine gute Idee.
Von diesem Punkt mit einer Diode oder besser Skottkydiode auf einen
zweiten fetten Elko ab 2200uF, der deinen uC versorgt.
Oder, falls du sowas noch rankriegst vor Weihnachten, steuer die Autos
direkt mit je einem logik-level Mosfet an. Die fahrn ja eh nur vorwärts.
Du sparst die Verlustwärme im 293 ein und brauchst dafür höchstens auf
30% PWM ansteuern. Dann reicht auch deine Wandwarze aus zur Versorgung.
Matthias Sch. schrieb:> Öh, wie wärs einfach mit zwei Batterien (3V) statt 1,5V? :-)
3 Volt waren suboptimal, zumindest direkt aus nem Netzteil. Das war ein
verstellbares mit max. 1A Leistung. Bei 3 Volt fuhr (ein einzelnes Auto)
flott, aber nicht schnell genug um aus der Kurve zu fliegen. 4,5 Volt
war zu heftig... und was dazwischen gabs nicht.
Vorstellen könnte ich mir höchstens 5 Volt + Leistungs-Vorwiderstand zur
Strombegrenzung. Allerdings kenn ich den genauen Widerstand nicht, der
da günstig wäre... irgendwas zwischen 10 und 15 Ohm in Reihe zum Auto
wär wohl gut gewesen. Meine Test-Konstruktion mit 5 Volt und vielen
parallelen Widerständen war halt nicht stabil (nach ner gewissen Zeit
waren die Widerstände dann halt warm und dann war die Motorleistung
wieder zu niedrig). Deshalb bin ich von der Lösung dann abgekommen.
Spannungsreduktion via Spannungsteiler gibt genau das gleiche Problem,
die Leistung von ~1,5W (pro Auto) muss durch den niedrigohmigeren Teil
des Teilers durchgeprügelt werden und da wirds dann halt warm...
Deswegen hab ich dann was regelbares gebastelt. Bei der Konstruktion
kann man notfalls den duty-cycle höher wählen, wenn die Leistung (bei
gleichem duty-cycle) sich temperaturabhängig etwas verändert. Das kann
man als Spieler recht gut ausgleichen...
Matthias Sch. schrieb:> Deine kleinen 1,5V Motoren ziehen natürlich einen schönen Strom beim> Anfahren und das 5V 1,5A Netzteil ist da an der unteren Kante. Denn die> Motoren können mit Sicherheit schon mal 800mA-1A ziehen und bei zwei> Autos ist dann mal die Strombelastbarkeit des Netzteiles schnell> erreicht (gerade beim Anfahren).
Ja, die ziehen dann schon ordentlich Strom. Aber die Dauerlast schaffen
Motortreiber und Netzteil. Denn wenn ich den Motortreiber per
Drahtverbindung ansteuere, gehen die Autos ab wie nen geölter Blitz. Die
fliegen bei 5V-100% duty-cycle bei 30cm Beschleunigungsstrecke sofort
bei der ersten Kurve tangential raus und bleiben dann so nach nem Meter
Flug und Gleitstrecke liegen. Genauso funktioniert das, wenn ich ne
getrennte Stromversorgung für den Controller nehme.
Das Problem scheint tatsächlich das Anfahren zu sein. Ich vermute bald,
dass es bei den Motoren kurzzeitig zu Kurzschlüssen kommt in bestimmten
Stellungen des Kommutators. Bei hohen Drehzahlen ist der Motor schnell
über diese Stellen drüber... aber dem Controller reicht das dann wohl
schon tausend mal, um sich zu verabschieden.
> Du fährst besser, wenn die Tinys komplett aus einem anderen Netzteil> gespeist würden, da tuts dann schon ein Kleindings a là Handylader.
Nen zweites Netzteil würd ich wirklich vermeiden wollen. Dann verbau ich
eher noch ne 9V-Block-Batterie. Wenn ich den bei Inaktivität in den
Sleep-Modus versetze und nur via Interrupt (durch I/O-Pin oder
Watchdog-Timer) aufwachen lasse, dann hält die locker 2-3 Jahre.
Die Frage die ich mir noch stelle ist: Warum funktioniert denn die
Variante mit Diode + fetter Kondensator nicht? Durch die Diode müsste
doch der Strom nur in Richtung Kondensator (d.h. getrennte
Kontroller/IO-Spannungsversorgung) fließen. D.h. bei nem
Spannungseinbruch oder Kurzschluss, sollte noch für einige Zeit Energie
im Kondensator drin sein.
Weitere Lösungsansatz:
======================
Hab grad mal geschaut: bei 1,8 V, 1MHz sinds 450µA im "Active Mode".
Müsste mal durchrechnen, wieviel Energie in so nen Kondensator (bei
5Volt - 1,8Volt nutzbarem Spannungsbereich, 1500 µF) reinpassen.
Vielleicht ist das wirklich das Problem...
Auf jeden Fall kann ich locker mal auf 1MHz runter takten. Bei 8 MHz ist
glaub auch die minale Versorgungsspannung etwas höher.
FRAGE: Läuft die PWM in bestimmten Sleep-Modes weiter oder wird die
abgeschalten? Wenn ja, könnt ich statt dem "delay(10);" in den
Sleep-Modus schalten. Das dürfte ordentlich was bringen.
Ansonsten könnte ich noch probieren die CPU mit nur 32kHz zu takten. Der
muss ja nicht viel tun (aller 10ms mal ca. 20 Takte rechnen), das könnte
sogar reichen. Das wär dann auch schon fast "Sleep Mode". Notfalls
schalt ich noch den ADC und sowas ab... Ich frag mich nur, ob das in die
richtige Richtung geht, oder nur verschwendete Zeit ist.
Helge A. schrieb:> Laß den Spannungsregler weg, der hilft dir nit.
Ich kann (morgen) mal probieren, ob nur der 1500µF-Kondensator
funktioniert. Aber ich denke nicht... ich bin mir nicht ganz sicher, ob
ich das nicht schon probiert habe.
Die Idee vom Spannungsregler war, dass die Spannung für den µC auf nem
niedrigeren Level gehalten wird als die Netzteilspannung, sodass die
erstmal ein Stück einbrechen kann ohne dass hinter dem Spannungsregler
was passiert. Nachdem ich aber schon 1,4 Volt Drop-Out habe und der
Spannungsregler, sowieso seine gewünschten 5 Volt nicht erreicht, könnte
ich höchstens mal einen 3 Volt-Regler oder 2,8 Volt-Regler basteln (per
Spannungsteiler-Rückkopplung). Dann würden da zumindest 0,6 bis 0,8 Volt
Spannungsabfall abgefangen.
Helge A. schrieb:> Aus dem L293D kommen eh nur vielleicht 2V an den Motoren an, der Rest> wird verheizt.
Also ... das würd ich jetzt mal abstreiten wollen. Der L293D wird nicht
einmal merklich warm... in dem IC geht also kaum Leistung drauf.
Wahrscheinlich gibts wirklich nur nen kurzzeitigen Kurzschluss am
Kommutator des Motors. Die Strombelastung im Durchschnitt kann nicht so
heftig sein... sonst würd der L293D auch bissl mehr schwitzen.
Helge A. schrieb:> Nimm einen Elko, "gefühlt" (weil ich kenn die Motorströme nicht) 1000uF> oder größer, direkt an die 5V und versorge den L293 damit.
Ok, probier ich morgen aus. Die Motorströme kenn ich auch nicht. Müsste
mal schauen, ob ich ein Fahrzeug geöffnet bekomme... Aber wahrscheinlich
ist der Motor nicht mal beschriftet (d.h. kein Typ-Angabe). Könnte aber
den Blockierstrom mal messen oder sowas.
Oder ich dreh mal langsam von Hand und messe den Widerstand. Dann kann
ich validieren, ob der Kommutator, wie vermutet einen temporären
Kurzschluss fabriziert. Hab den ganzen Kram nur grad schon im
Reisegepäck...
Helge A. schrieb:> Ein paar 100nF Kondensatoren direkt über die Versorgungspins vom 293> sind auch eine gute Idee.
Wieso jetzt am 293? Weil das am nächsten an der "Störung" dran ist?
Meine Vorstellung wär ja, dass ich eher dass ich die Versorgungsspannung
des ATTiny besser "puffern" sollte...
Und: An VCC2, VCC1 oder beide? Jeweils mehrere in Serie (um < 100nF
Kapazität zu erreichen?) pro Versorgungspin oder nur jeweils 100nF?
Helge A. schrieb:> Von diesem Punkt mit einer Diode oder besser Skottkydiode auf einen> zweiten fetten Elko ab 2200uF, der deinen uC versorgt.
Was meinst Du mit "von diesem Punkt" (die Versorgungsspannungspins des
L293D?).
Hm, ich hab leider nur 1N4148 oder Z-Dioden mit 4,7V da... Ne
Schottky-Diode müsste ich kaufen gehen. Hab aber das Gefühl, dass ich
die sowieso schon mehrfach hätte gebrauchen können.
Waren das die Schottky-Dioden de nur 0,3 Volt Spannungsabfall hatten?
Ich mein auch irgendwo in den anderen Threads (zum L293D-Problem)
gelesen zu haben, dass die etwas schneller "reagieren" als die
Standard-Dioden... ist das richtig so?
Die 2200uF find ich dann doch schon recht krass. Glaub dann kauf ich
besser gleich nen kleinen Power-Cap ;-)... wenn ich sowieso einkaufen
muss (hab max. 1500 µF da).
Helge A. schrieb:> Oder, falls du sowas noch rankriegst vor Weihnachten, steuer die Autos> direkt mit je einem logik-level Mosfet an. Die fahrn ja eh nur vorwärts.> Du sparst die Verlustwärme im 293 ein und brauchst dafür höchstens auf> 30% PWM ansteuern. Dann reicht auch deine Wandwarze aus zur Versorgung.
Das war eine der vorherigen Lösungsversuche. Via P-MOSFET... allerdings
nur nen kleiner mit zu wenig Leistung. Hat im Prinzip gut funktioniert,
nur war der P-MOSFET den ich noch in meinen Kistchen hatte zu niedrig
dimensioniert (glaub die haben max. 100 oder 200 mA Leistung gehabt).
Und dann kam nach 1-2 Minuten das übliche: Leistungseinbruch.
Wenn ich mich recht erinnere, lief der Versuch sogar nur mit Dreh-Poti
und P-MOSFET... war halt nur nicht stabil wegen Erwärmung des MOSFET.
Ich glaub da hatte ich sogar noch Rückkopplung über nen RC-Glied drinnen
(d.h. verzögertes ein-ausschalten).
Letztlich ist der L293D aber auch nichts anderes, nur dass 4 Stück davon
verbastelt sind noch bissl Elektronik und Logik (Schutzdioden,
UND-Gatter für Enable/Input-Pins, ... Überhitzungsschutz etc) zusätzlich
mit drin steckt. Wenn aber alles nichts hilft, geh ich mir beim Conrad
vllt noch 2 Leistungs MOSFETs kaufen (1A bis 2A)... die müssten das
schaffen.
Aktuell siehts aber so aus, als ob ich nur noch die Spannungsversorgung
des Controllers hinbekommen muss. Das is dann zwar schon arger Overkill
an Elektronik, aber was tut man nicht alles dafür dass die Kleinen auch
Spaß dran haben ;-)
---
Danke schon mal euch beiden für die guten Hinweise...
Stefan
PS: Hab mal ein Auto zerlegt... drinnen ist, wie vermutet, ein Motor der
Marke "Mabuchi" (genauer: "Mabuchi Motor Pat.") steht nichts drauf. Am
Motor ist ein 100 nF Kerko festgelötet.
Der Motor hat -optisch- ähnlichkeit mit folgendem Modell, dass bei
Pollin zu haben ist:
http://www.pollin.de/shop/dt/OTc2OTg2OTk-/Motoren/Gleichstrommotoren/Gleichstrommotor_MABUCHI.html
Den Typ hatte ich schon grob von außen vermutet (man konnte durch ein
paar Ritzen was erkennen). Allerdings ist unklar, ob Mabuchi nicht
tausende Varianten mit dieser Optik herstellt, mit unterschiedlicher
Windungszahl etc. Ich schätze aber fast, dass die Werte ähnlich sein
dürften...
Pollin gibt für diesen Motor jedenfalls folgende Werte an...
Betriebsspannung 1,5...9 V-
Anlaufspannung 1 V-
Stromaufnahme max. 800 mA
Drehzahl 12.000 U/min bei 9 V-
Am Motor ist nen 10er-Ritzel und an der Achse nen 37er-Tellerrad.
Also entsprechend folgende mechanischen Angaben:
....
Getriebe: 1:3,7 Untersetzung (Kegelradgetriebe, Kunststoff)
Radumfang: 1,6 cm
Fahrzeugmasse (komplett): 38g
Reifenoberfläche: Gummi (glatt)
Fahrbahnbelag: Kunststoff (rauh)
Den Motor hab ich mal grob (am Netzteil vom Testaufbau) ausgemessen:
Blockierstrom: 2,2 A
Leerlaufstrom (nur Getriebe freidrehende Räder): ~0,32 A
Jeweils mit dem 5V-Netzteil (mit eigentlich 1,2 A maximaler Leistung;
wenn man Spannungseinbrüche hinnimmt, geht wohl etwas mehr).
HINWEIS: die obige Angabe 1,5 A (Netzteilleistung) war falsch. Es stehen
1,2 A drauf... hab das grad nochmal geprüft.
Beim blockieren des Motors fällt der Strom auf ca. 3Volt ab und bleibt
dort stabil (mind. für 1 Sekunde). Das müsste eigentlich für den ATTiny
und die Logic-Inputs des L293D locker reichen...
Es müssen also irgendwo her noch Spannungsschwankungen her kommen. Zum
Beispiel könnte der Spannungseinbruch kurz tiefer gehen und sich dann
erst bei ca. 3V "Blockierspannung" einpegeln.
Zu beachten für weitere Abschätzungen ist natürlich, dass später 2
solcher Motoren als Last kurzzeitig dran hängen und die auch
gleichzeitig anlaufen werden (man fährt halt üblicherweise gleichzeitig
los ;-)).
Bevor ich viele Worte verlier, mal ich lieber ein Bildchen.. ;)
Auf meiner Werkbank würde ich das ungefähr so aufbauen. Wenn du nur
1500uF Elkos hast, nimm die. 1N4148 ist auch OK zum Ausprobieren.
C1 und C2 halten schnelle Störungen nah am L293. C3 schützt dein
Netzteil und fängt energiereiche Transienten. C4 stützt deine uC -
Versorgung.
Da nur 2 Motoren geschaltet werden, kannst du je 2 Treiber parallel
verwenden. Dann kommt ein wenig mehr Spannung an den Motoren an.
Alternativ läßt sich der 293 hier durch 2 logic level N-Mosfets
ersetzen, dann kommt noch bissel mehr an. Dabei dürfen's ruhig auch
etwas kräftigere sein, das macht am Preis fast nix aus.
--
Gegen die gleichzeitige Belastung durch 2 Motoren brauchst du ja nur die
PWM - Pulse auf höchstens 50% begrenzen und im Programm immer
abwechselnd einschalten.
Helge A. schrieb:> Bevor ich viele Worte verlier, mal ich lieber ein Bildchen.. ;)
Danke! Damit ists viel einfacher zu verstehen ;-)
Anmerkung: Du ziehst alle Ausgänge des L293D auf GND (über PWM an den
EN-Pins). Die Motoren hängen dann an VCC + Ausgang (negatives Potential)
des L293D. Das ist aktuell bei mir genau umgekehrt... dürfte aber an
sich kaum was ausmachen.
> Da nur 2 Motoren geschaltet werden, kannst du je 2 Treiber parallel> verwenden. Dann kommt ein wenig mehr Spannung an den Motoren an.
Das hab ich anfangs probiert und schlechte Erfahrungen gemacht. Ich
glaube die Treiber haben leicht unterschiedliche Zeitverzögerungen und
dann gibts bei den HIGH/LOW-Übergängen nen temporären Kurzschluss
zwischen den Treiber-Ausgängen und jede Menge Verlustleistung.
Jedenfalls ist das Ergebnis mit zwei Treibern zusammen schlechter als
mit einem Treiber pro Motor gewesen.
Offene Fragen:
--------------
D2 und D5 (direkt am Motor) sind wohl gegen Spannungen, die beim
abschalten der Treiberspannung induziert werden (Vermutung)?
Wofür sind die Dioden D3 und D4? Soweit ich sehe, sind die zwischen
Treiberausgang und GND. Negative Spannungen (relativ zu GND) am
Treiber-Ausgang ableiten?
Das entspricht doch eigentlich den Freilauf-Dioden, die schon im L293D
integriert sind, oder nicht?
> Alternativ läßt sich der 293 hier durch 2 logic level N-Mosfets> ersetzen, dann kommt noch bissel mehr an. Dabei dürfen's ruhig auch> etwas kräftigere sein, das macht am Preis fast nix aus.
Ok, hab mit MOSFETs noch nicht viel gespielt. "Logic-Level" ... macht
aber vom Namen her Sinn (zumindest werd ich wohl Logic-Level-Input mit
dem µC produzieren).
> Gegen die gleichzeitige Belastung durch 2 Motoren brauchst du ja nur die> PWM - Pulse auf höchstens 50% begrenzen und im Programm immer> abwechselnd einschalten.
Das is ne -sehr- gute Idee! Zumindest Summe der duty-cycles unter 100%
liegt geht das. Aber ich kann durchaus schauen, dass ich die duty-cycles
180 Grad phasenverschoben halte. Ich muss aber bis etwa 75-80% pro Motor
kurzzeitig freigeben (kurze Peak-Beschleunigung ab Kurvenausgang), sonst
isses nicht flott genug ;-).
...
Ich werd morgen mal - wenn Zeit ist - ein paar der Sachen austesten.
Bin morgen hauptsächlich erstmal im Auto unterwegs (einmal quer durch
Deutschland) und dann noch familiär gefragt... wird also eher - wenn
überhaupt - spät abends werden.
Die Dioden D2-D5 sind nicht unbedingt notwendig, der Schaltplan ist
adaptiert aus irgendwas mit L293 ohne D.. ;)
Soweit ich mich erinnere, sind die Schalter nach Masse in den Dingern
ein klein wenig besser, daher sind die Motoren nach gemeinsamem Plus
geschaltet. So, vermute ich mal, dürften die Verluste etwas geringer
ausfallen.
Der Baustein kann durchaus Schaltverluste durch Parallelschaltung haben,
wenn man den PWM in die normalen Eingänge (A1-A4) einspeist. Das wird
besser, indem der Enable als PWM-Eingang verwendet wird. Dadurch wird
nämlich statt zwischen "High - Low" nur zwischen sondern "Freilauf -
low" umgeschaltet.
Übrigens ist der Baustein (bei ST) für "nur" dauerhaft 0,6A
spezifiziert, auch daher scheint mir die Parallelschaltung Sinn zu
machen. Es könnte ja sein, daß mal irgendwas blockiert.
Helge A. schrieb:> Übrigens ist der Baustein (bei ST) für "nur" dauerhaft 0,6A> spezifiziert, auch daher scheint mir die Parallelschaltung Sinn zu> machen. Es könnte ja sein, daß mal irgendwas blockiert.
Ja, 600 mA sind richtig. Aber der hat auch ne "Overtemperature
Protection". Also wird der schon abschalten, wenn ihm die Sache zu heiß
wird (hoffe ich). Allerdings lässt der auch 1,2 A Peak durch.
Helge A. schrieb:> Der Baustein kann durchaus Schaltverluste durch Parallelschaltung haben,> wenn man den PWM in die normalen Eingänge (A1-A4) einspeist. Das wird> besser, indem der Enable als PWM-Eingang verwendet wird. Dadurch wird> nämlich statt zwischen "High - Low" nur zwischen sondern "Freilauf -> low" umgeschaltet.
Ich hab glaub drei Varianten probiert:
EN1,2 auf HIGH, A1+A2 zusammen geklemmnt und gemeinsam HIGH/LOW (PWM)
geschalten um zwischen Freilauf und HIGH zu schalten.
=> ganz schlecht, weil sofort gebremst wird wenn die PWM auf LOW
schaltet
EN1,2+A1+A2 zusammen geklemmnt und gemeinsam HIGH/LOW (PWM) geschalten
um zwischen Freilauf und HIGH zu schalten.
=> Eher schlechte Leistung
Und A1+A2 auf HIGH, EN1 an PWM ... das hat gut funktioniert.
PS: Bei den Dioden überleg ich, ob die evtl. die Freilauf-Eigenschaften
kaputt machen. D.h. dass der Motor, der ja nach dem Abschalten des
Zustroms als Generator arbeitet sehr stark gebremst wird. Ich bin nur
grad unsicher in welche Richtung die Spannung dann induziert wird...
Lässt sich aber heraus finden...
Die eingebauten Dioden bekommen nur kurze Spitzen ab. Das ist vom
Leistungsverlust her gut zu verschmerzen. Andernfalls wird der
Treiberbaustein gefährdet.
Die EMK der Motoren erzeugt eine Spannung, die irgendwo zwischen 0 und
5V liegt. Die Freilaufdioden fangen nur die Spitzen ab, die durch die
Induktivität der Motoren und der Zuleitung erzeugt werden.
Böse gebremst wird nur, wenn der Ausgang wirklich hart UMgeschaltet
wird. Dann bekommen auch die etwas unterschiedlichen Schaltverzögerungen
mehr Gewicht. Das deckt sich mit deinem Versuch.
--
Läßt sich ein Unterschied feststellen, wenn du die Motoren an Plus oder
an Minus schaltest? - Mir ist irgendwie im Hinterkopf, daß die low-Seite
'besser' schaltet. Und hier dürften schon ein paar Millivolt mehr gut
merklich sein, die Motorspannung ist recht klein und geht quadratisch in
die Leistung ein.
Helge A. schrieb:> Läßt sich ein Unterschied feststellen, wenn du die Motoren an Plus oder> an Minus schaltest?
Hab ich leider nicht mehr beantworten. Ich hab die Schaltung jetzt
aufgelötet und keinen L293D mehr zur Verfügung...
----
Die Lösung ist wie von mir anfänglich beschrieben mit 2 Modifikationen,
die Du mir empfohlen hast:
1. Statt den 2 fetten Elkos + Spannungsregler gibts nur noch einen Elko
(1500 µF) und ne Diode. In meinen anderen Versuchen mit ähnlicher
Beschaltung war der Elko wahrscheinlich einfach zu klein... D.h. es gibt
nur noch einen Elko der Energie zwischenpuffert für den Mikrocontroller
und die Diode, die die Versorgungsspannung nur in eine Richtung
"ankoppelt" (nur Stromfluss vom Netzteil zum Elko und nicht zurück,
falls die Spannung einbricht).
2. Die VCCs (VCC1 und VCC2) des L293D sind gegen GND mit 100 nF
Keramik-Kondensatoren gepuffert (dicht am IC).
Ich hab das ganze aufm Steckbrett ne Weile getestet und dann auf ne
Experimentier-Platine gelötet (die Variante mit den parallelen
Leiterbahnen).
Hab nicht viel Löterfahrung und deswegen riesige Lötzinn-Kleckse auf der
Rückseite, die im ersten Versuch teilweise zusammen gepappt waren. Gab
entsprechende Fehlfunktionen (und zum Glück keine Schäden an den ICs).
Nachdem ich dann alle nicht zusammengehörenden Leiterbahnen wieder
"getrennt" hatte, hats dann auch funktioniert... Phew!
Ist mein erstes komplexeres Lötprojekt gewesen... und es hat am Ende
funktioniert! Bin ein klein wenig stolz drauf... ;-)
Im Anhang ist ein Foto vom Ergebnis... die Unterseite der Platine zeig
ich besser nicht vor ;-)
Morgen gibts noch ein paar Kleckse Heißkleber an den Kabelansatz (zur
Zugentlastung) und nen Gehäuse um die Platine... und dann kanns
eingepackt werden!
Danke für Eure Hilfe... besonders Dir, Helge!
Grüße,
Stefan