Für ein Projekt von mir (U-Boot) brauchte ich eine Schaltung, die einen Motor mit hoher Stromaufnahme vor- und rückwärts laufen lassen sollte, geregelt durch PWM. Eine H-Brücke kam hier nicht in Frage, da ich keine P-Kanal Logiklevel FET für hohe Ströme parat hatte. Der Tiny bekommt ein Standard RC Servo Signal vom Empfänger. Liegt dieses um eine Pulsdauer von etwa 1500µs (Neutralstellung), passiert nichts. Wird der Puls kürzer ( Joystick ziehen -> U-Boot taucht), wird zuerst das Relais aktiviert und dann der Motor mit etwa 240 Hz PWM angesteuert - die PWM wird dabei stärker, je kürzer der Puls ist. Schiebt man den Joystick nach oben (-> auftauchen), bleibt das Relais inaktiv und der Motor wird mit wachsender PWM angesteuert. Da es sich hier um die Ballastpumpe fürs U-Boot handelt, ist eine Ausfallsicherung vergesehen. Beim Ausbleiben des Servosignals wird der Motor ohne Relaisaktivierung auf halbe Kraft geschaltet zum Auftauchen. Als Spannungsquelle V+ dient eine Parallelschaltung von 4*18650 Li-Ion Zellen, während Tiny und Relais normal vom RC Akku (+5V) gespeist werden. Die Ballastpumpe hier ist eine Zahnradpumpe mit etwa 3V DC und bis zu 4 Ampere Stromaufnahme. Wie immer benutze ich AVR Studio 4 zum Kompilieren, es sollten wenige Anpassungen für andere IDE nötig sein. Der Tiny wird auf 8MHz mit internem RC - Oszillator gefused. Da der MC im Auslieferzustand die gesetzte CKDIV8 Fuse hat, reicht es, diese zu löschen.
:
Bearbeitet durch User
Schönes kompaktes Projekt, ich würde noch einen Elko zwischen V+ und GND spendieren um dem pulsförmigen PWM abzufangen und einen 100k Widerstand vom Gate nach GND damit der MOSFET aus ist wenn der uC nach RESET noch nicht initialisiert ist.
MaWin schrieb: > Schönes kompaktes Projekt, ich würde noch einen Elko zwischen V+ und GND > spendieren um dem pulsförmigen PWM abzufangen und einen 100k Widerstand > vom Gate nach GND damit der MOSFET aus ist wenn der uC nach RESET noch > nicht initialisiert ist. Beides gute Tipps, tatsächlich ist ein fetter Elko an V+ (1000µF/10V), den ich vergessen habe, einzuzeichnen. Mache ich aber sofort, ebenso wie den Pulldown am Gate. Siehe Anhang
:
Bearbeitet durch User
Hier jetzt die Variante für Motoren mit höherer ( 9V < V+ < 18V) Versorgungsspannung. Eine klassische H-Brücke mit etwa 6-10A Treiberstrom. Die IRLZ44 könnten wesentlich mehr, aber für die IRF9530 ist bei 14A Schluss. Eingangssignal ist wie im ersten Beitrag ein normales RC Servosignal. V+ darf die maximale Ugs der P-Kanaler (+/-20V beim IRF9530) nicht überschreiten. Das Dings ist also ein normaler Fahrtenregler. Wichtig hier ist der Elko an V+. Eine Freilaufdiode geht hier ja nicht wirklich und die Bodydioden der MOSFet leiten die Gegen-EMK dann über sich hinweg - in V+. Also schön abblocken und alles niederohmig mit dicken Bahnen oder Drähten bauen. Unterschiedlich ist das Notfallverhalten - hier wird der Motor einfach nur gestoppt. Da sich immer noch die meiste Peripherie auf dem Tiny langweilt, werde ich mit einem Poti am ADC auch nochmal ein Proportionalservo implementieren - praktisch eine Nachbildung eines echten Servo IC wie dem NE544 oder dem M51660, die ja langsam schwer zu bekommen sind und nicht sehr viel Strom liefern können. Überstrommessung wäre auch noch schön.
:
Bearbeitet durch User
Matthias S. schrieb: > Da sich immer noch die meiste Peripherie auf dem Tiny langweilt, werde > ich mit einem Poti am ADC auch nochmal ein Proportionalservo > implementieren - praktisch eine Nachbildung eines echten Servo IC wie > dem NE544 oder dem M51660, die ja langsam schwer zu bekommen sind und > nicht sehr viel Strom liefern können. Überstrommessung wäre auch noch > schön. Ja, solche "Powerservos" werden inzwischen in diesem Forum ja verstärkt gesucht, gern auch mit hoher Auflösung/Genauigkeit, die man z.B. mit einem Mehrgangpoti erreichen kann. Vielleicht wäre sogar ein Servo mit einem Inkremantalgeber und zusätzlicher Nullpunkterkennung per Licht- schranke für manche Anwender interessant.
Da hatte ich doch die Failsafe Routinen in beiden Projekten nicht richtig durchdacht - ich musste die Strategie dafür deutlich ändern. Nun funktioniert es so, das die ISR bei der Pulslängenmessung einen Plausibilitätscheck macht und bei guten RC Pulsen eine Variable hochzählt und bei Blödsinn diese Variable (good) auf null setzt. Erst wenn es mehr als 50 gute Pulse (1 Sekunde) gibt und kein Timeout, wird das Signal als gültig akzeptiert. Das klappt jetzt recht brauchbar. Anbei die neuen Sourcen für die Relais- und die H-Brückenvariante.
Hallo ist das Projekt schon fertig? hätte Interesse an einigen Erfahrungen und Daten. Schönen Abend noch LG Paul
Paul W. schrieb: > Hallo > > ist das Projekt schon fertig? Das hier beschriebene Modul ist soweit fertig.
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.