Projekt: Fahrtregler

Fahrtregler-Bild Der Fahrtregler ist unter Modellbau-Freunden bestens bekannt und ermöglicht das kontinuierliche Steuern eines Elektro-Antriebsmotors mit einer Modell-Fernsteuerung. Dieser Fahrtregler wurde mit einem AT90S2313 bzw. ATtiny2313 aufgebaut und ermöglicht über eine so genannte H-Brücke die Steuerung eines üblichen Gleichstrommotors in beide Richtungen (vorwärts und rückwärts). Außerdem kann noch eine Bremsfunktion und eine "Halbe-Leistung"-Option aktiviert werden. Das nebenstehende Elektroauto wurde mit dem Fahrtregler ausgerüstet und macht nicht nur Kindern einen Riesenspaß.

Symbol Status
Statuswird nicht weiterentwickelt
Letzte Bearbeitung01.05.2019
Aktueller Softwarestand Mikrocontrollerv1.03 vom 17.05.2001
Symbol Downloads
Schaltplanfahrtregler-sch.zip
Stückliste mit Empfehlungen zur Bauteilbestellung
Software v1.03 für den Fahrtregler mit Quelltext in Assembler vom 17.05.2001fahrtregler-at90s2313-v103.zip
Platinen-Layout von Josef Schillinger (Target3001-Format) vom 02.11.2008fahrtregler-layout1.zip
Platinen-Layout von Franz Ernhofer (PDF-Datei) vom 02.11.2008fahrtregler-layout2.zip
Platinen-Layout von Thomas Zetsche (EAGLE und PDF) vom 01.05.2019fahrtregler-layout3.zip
Symbol Inhaltsverzeichnis
BeschreibungAllgemeine Informationen über den Fahrtregler
SchaltungBeschreibung der Schaltung
HardwareBilder und Hinweise zum Aufbau des Fahrtreglers
SoftwareInbetriebnahme und Installation der Software
BedienungBedienung des Fahrtreglers
Symbol Beschreibung

Dieser Fahrtregler ist für kleinere Automodelle oder Boote mit Akkuspannungen bis 12V und Motorströme bis 10A geeignet. Bei ausreichender Kühlung sind auch höhere Spannungen und Ströme möglich, was aber nicht getestet wurde. Der für den Mikrocontroller AT90S2313 bzw. ATtiny2313 erforderliche 5V Spannungsregler arbeitet als BEC (Battery Eliminate Circuit), d.h. er versorgt zusätzlich noch den Empfänger und maximal 2 Servos mit Strom, so dass kein zusätzlicher Empfänger-Akku benötigt wird.

Über 2 DIP-Schalter können 2 Funktionen eingestellt werden:

Der Nullpunkt des Fahrtreglers kann mit einer einfachen Lernprozedur mit der Mittelstellung des Gas-Steuerknüppels in Übereinstimmung gebracht werden. Der neue Nullpunktwert wird dann dauerhaft im EEPROM des Controllers gespeichert. Dieser Lernmodus wird mit einem dritten DIP-Schalter aktiviert.

Auch für die Sicherheit wurde etwas getan: Falls das Signal vom Empfänger ausbleibt oder extrem von der Norm abweicht, dann wird der Motor einfach abgeschaltet. Diese Funktion wird neudeutsch auch Failsafe genannt.

Symbol Schaltung

Schaltung

Die gesamte Schaltung wird über einen Akkumulator-Block versorgt, wobei hier 6-10 NiCd-, 6-10 NiMH- oder 2-3 LiPo-Zellen verwendet werden können (entspricht einer Spannung von 7,2 - 12V). Der Akku-Block wird über den Hochstromsteckverbinder K3 angeschlossen. Ein Spannungsregler erzeugt die für den Mikrocontroller erforderliche stabile Spannung von 5V. Diese Spannung liegt außerdem am Steckverbinder K2 an und speist damit gleichzeitig den angeschlossenen Empfänger (BEC). Der hier verwendete Low-Drop-Regler hat den Vorteil, dass er auch bei niedriger Eingangsspannung von 5,5V immer noch stabile 5V liefert. Das ist wichtig, damit bei nachlassender Akku-Spannung Mikrocontroller und Empfänger noch sicher weiterarbeiten können. Aber Vorsicht bei LiPo-Akkus! Diese können bei einer Entladung unter 3V pro Zelle beschädigt werden. Hier empfiehlt sich die Überwachung der Akku-Spannung, z.B. mit diesem Akku-Alarm.

Der Steckverbinder K2 dient neben der Stromversorgung des Empfängers auch zum Empfang der Fernsteuerungs-Daten des Motor-Kanals, welche vom Controller über den Portanschluss PD0 eingelesen werden. Die Portanschlüsse PD4-PD6 sind ebenfalls als Eingänge programmiert und lesen beim Einschalten des Fahrtreglers den Zustand der 3 DIP-Schalter ein. Die Anschlüsse PB0-PB4 sind als Ausgänge geschaltet; PB0-PB3 steuern die Motortreiber an und an PB4 befindet sich eine Kontroll-LED. PB5-PB7 und RESET sind auf den Steckverbinder K1 geführt und dienen als Programmieranschluss für den Controller.

Die Motortreiber sind als so genannte H-Brücke geschaltet und diese besteht im Kern aus den 4 Power-MOSFETs Tr1-Tr4, die als Schalter arbeiten. Die 4 Schottky-Dioden D1-D4 schützen die Treiberstufen vor Induktionsspannungen des Motors. Die H-Brücke ermöglicht eine Motorsteuerung in beide Drehrichtungen. Soll der Motor vorwärts laufen, dann werden die Transistoren Tr2 und Tr3 durchgeschaltet und bei Rückwärtslauf die Transistoren Tr1 und Tr4. Zum Bremsen des Motors werden hier die Transistoren Tr1 und Tr2 durchgesteuert und somit der Motor kurzgeschlossen. Zwei Zustände sind bei einer H-Brücke allerdings gefährlich: Die gleichzeitige Aktivierung von Tr1 und Tr3 bzw. Tr2 und Tr4 kann die Transistoren und den Akku beschädigen oder sogar zerstören. Die Software im Controller sorgt aber dafür, dass diese Zustände nicht auftreten.

Um eine kontinuierliche Motorsteuerung zu erreichen, werden die MOSFETs natürlich nicht ständig eingeschaltet, sondern mittels PWM (Pulse Width Modulation) angesteuert. Kurz gesagt: es werden Rechteck-Impulse verwendet, wobei die Impulsbreite die Motorleistung und letztendlich die Drehzahl bestimmt. Die Impulsfrequenz spielt dabei (theoretisch) keine Rolle und liegt üblicherweise im kHz-Bereich. Dieser Fahrtregler verwendet die gleiche Frequenz wie die Fernsteuerung (ca. 50 Hz), weil da die Software recht einfach zu realisieren war. Bei dieser Frequenz ist der Motor im unteren Drehzahlbereich etwas unruhig und laut, aber das stört in der Praxis nicht.

Power-MOSFETs sind fast ideale Schaltelemente für solche Motorsteuerungen, aber sie haben auch einen Nachteil. Zur Ansteuerung sind relativ hohe Spannungen zwischen Gate und Source erforderlich, die 5V vom Ausgang des Mikrocontrollers reichen da leider nicht aus. Außerdem bildet die Gate-Source-Strecke elektrisch gesehen einen Kondensator, der bei der hier verwendeten Impulsansteuerung möglichst schnell umgeladen werden muss. Aus diesen Gründen ist für jeden MOSFET noch eine zusätzliche Treiberstufe erforderlich (bestehend aus Tr5-Tr8 sowie R4-R11). Diese dient als Pegelwandler und ermöglicht die Ansteuerung der MOSFETs mit der vollen Akku-Spannung.

Die beiden Jumper JP1 und JP2 können weggelassen werden. Ich habe sie in der Testphase als Schutzschaltung benutzt, damit bei eventuellen Programmfehlern die MOSFETs keinen Schaden nehmen. Man kann sie aber in einem speziellen Fall nutzen: Falls ein Controller zur Einsatz kommt, der bereits in einem anderen Projekt verwendet wurde, dann sollte man beide Jumper stecken und so lange gesteckt lassen, bis sich die richtige Software im Controller befindet.

S4 dient als Ein/Aus-Schalter für den Fahrtregler und den angeschlossenen Empfänger. Üblicherweise legt man einen Schalter in den Hauptstromkreis, aber das ist bei einem Fahrtregler wegen der hohen Ströme nicht sinnvoll. Deshalb bleibt die komplette Brücke mit dem Akku verbunden und nur der 5V-Spannungsregler wird abgeschaltet. Der Controller liefert dann keine Ausgangssignale mehr, was dazu führt, dass die oberen Brücken-MOSFETs sperren. Auch die unteren MOSFETs sperren, da die Spannung an den Gate-Widerständen R4 und R5 ebenfalls mit abgeschaltet wird. Der Schalter soll ein gefahrloses Anstecken des Akku-Packs ermöglichen und kann außerdem bei kurzen Pausen zum Abschalten der Empfangsanlage verwendet werden. Bei längerer Nichtbenutzung und beim Transport des Modells sollte jedoch immer der Akku von der Schaltung abgezogen werden.

Diese Stückliste enthält alle Bauelemente, die für dieses Projekt benötigt werden.

Symbol Hardware

Ich habe den Fahrtregler auf einer Lochrasterplatine mit der Größe von 84mm x 61mm aufgebaut. Es gibt aber auch 3 Platinenlayouts, die ich von Bastlerkollegen erhalten habe: Das Layout 1 wurde von Josef Schillinger bereitgestellt und mit Target3001 entwickelt. Von Franz Ernhofer stammt das Layout 2 und dieses steht als PDF-Datei zur Verfügung. Das Layout 3 wurde von Thomas Zetsche mit EAGLE entwickelt. Vielen Dank.

Platine oben

Alle Bauteile meines Fahrtreglers wurden auf einer Lochrasterplatine untergebracht. Normalerweise werden Fahrtregler sehr kompakt gebaut, da in vielen Modellen nur wenig Platz zur Verfügung steht. In diesem Fall war das nicht so problematisch, deshalb wurde die Platine etwas großzügiger bestückt.

Ursprünglich wurden die MOSFETs ohne Kühlung direkt auf die Platine geschraubt. Da sich diese im Betrieb jedoch stark erwärmen, habe ich sie später stehend montiert und mit einem kleinen Kühlkörper versehen.

An der Platine sind bereits alle Kabel angeschlossen. Auf der linken Seite führt ein 3-adriges Servokabel zum Empfänger, oben ein 2-adriges zum Schalter S4. Das dicke Kabel rechts oben und unten führt zum Akku-Stecker, das rot-gelbe Kabel zum Motor und ein weiteres schwarz-rotes Kabel in der Mitte zu einer Akku-Überwachung.

Platine unten So sieht die Rückseite der Platine aus. Wichtig ist, dass alle Leitungen, die hohe Ströme führen, mit entsprechend dickem Draht verlegt werden. Für das Verbindungskabel zum Akku und zum Motor empfiehlt sich dickes Litzenkabel.

Die Bauteile X1, C1, C2 und C5 sollten sich möglichst nah am Controller befinden und mit kurzen Leitungen angeschlossen werden.

Platine im Gehäuse

Der Fahrtregler passt sehr gut zusammen mit dem Empfänger und einer Akku-Überwachung in ein Halbschalen-Gehäuse mit den Maßen 123mm x 71mm x 30mm.

Fahrtregler fertig Das kompakte Elektronik-Modul wurde auf dieses experimentelle Automodell montiert und hat sich in der Praxis gut bewährt.

Bei diesem Fahrzeug wurde übrigens ein 400er Motor und ein LiPo-Akkupack mit 3 Zellen und 1000mAh verwendet. Das Getriebe ist ein Eigenbau mit einer Untersetzung von 1:16.

Symbol Software

Die Software v1.03 vom 17.05.2001 enthält den Assembler-Quelltext sowie das fertige HEX- und EEPROM-File für den AT90S2313 oder ATtiny2313. Im EEPROM-File ist bereits ein Nullpunktwert von 1,5ms voreingestellt. Das entspricht bei den meisten Fernsteueranlagen der Mittelstellung des Gas-Knüppels. Wird ein ATtiny2313 verwendet, dann müssen zusätzlich die Fuse-Bits folgendermaßen eingestellt werden:

Fuse-Bits 1

So sieht die Einstellung im AVR-Studio für den ATtiny2313 des Fahrtreglers aus.

Fuse-Bits 2

So sieht die Einstellung in PonyProg für den ATtiny2313 des Fahrtreglers aus.

Symbol Bedienung

Beim Einschalten des Fahrtreglers sollte immer der Empfänger angeschlossen und der Sender eingeschaltet sein, wobei sich der Gas-Knüppel in Mittelstellung befinden muss. Dabei leuchtet die LED auf, verlischt nach einer Sekunde kurzzeitig und leuchtet dann wieder. Damit ist der Fahrtregler betriebsbereit. Die LED leuchtet übrigens immer, wenn sich der Gas-Knüppel am Sender in Mittelstellung befindet. Diese Eigenschaft kann man bei einem Auto-Modell z.B. zur Steuerung eines Bremslichtes verwenden.

Wenn der Nullpunkt nicht stimmt, dann kann es passieren, dass die LED eine Sekunde nach dem Einschalten verlischt und der Motor langsam vor- oder rückwärts läuft. Im schlimmsten Fall blinkt die LED ständig, das bedeutet, dass kein sinnvoller Nullpunktwert im EEPROM gespeichert ist. In beiden Fällen ist eine Neueinstellung des Nullpunktes erforderlich. Dazu wird der Fahrtregler ausgeschaltet und der DIP-Schalter S3 geschlossen. Beim erneuten Einschalten wartet der Regler zunächst 1 Sekunde, damit sich der Empfänger einschwingen kann, danach liest er 8 Impulse ein, bildet den Mittelwert und speichert diesen im EEPROM ab. Nach dieser Aktion sollte die LED wieder aufleuchten und somit die fehlerfreie Nullpunktspeicherung quittieren. Blinkt die LED, dann ist ein Fehler aufgetreten und die Prozedur muss wiederholt werden. Nach erfolgreicher Lernprozedur wird der Fahrtregler ausgeschaltet und S3 wieder geöffnet. Beim nächsten Einschalten sollte sich dann der Fahrtregler wie oben beschrieben verhalten.

Mit den beiden DIP-Schaltern S1 und S2 lassen sich zwei Optionen aktivieren. Wie bereits weiter oben erwähnt, haben die Schalter folgende Bedeutung:

Es ist sinnvoll, diese Schalter nur im ausgeschalteten Zustand des Fahrtreglers zu verändern, da die Stellung nur einmal beim Start des Reglers gelesen wird.