martinsuniverse

rcLuchs - Modellbau Lichtsteuerung

Ich habe mit diesem Projekt eine Lichtsteuerung für meinen Heli gebaut. So etwas gibt es zwar schon, aber ich habe Spaß am Basteln und ein paar Extras sollen auch rein. Da es bei mir um einen Heli geht, beziehe ich mich hier hauptsächlich auf die Luftfahrt. Die Steuerung kann natürlich genauso gut in einem Modellboot oder -auto eingesetzt werden.
Mit dieser Elektronik wird das Modell Dämmerungs- und Nachtaktiv, so wie der Luchs. Außerdem ist das Paronym von Luchs das lateinische Wort Lux, was Licht bedeutet.

Eine Anregung für dieses Projekt habe ich in folgendem Video gefunden : Video

Anforderungen

Diese Lichtsteuerung soll folgende Anforderungen erfüllen :

  • Gut sichtbar auch am Tag
  • 3 Positionslichter
  • 2 Antikollisionslichter
  • Landescheinwerfer
  • Programmierbar vom PC per USB oder RS232 (Blinken, Schaltzustände)
  • 2 Eingangskanäle (Optoentkoppelt)
  • Geringe Verlustleistung
  • Wenig EMV Störungen
  • Unterspannungsabschaltung
  • Stromversorgung 3S - 6S LiPo (evtl. schon ab 2S LiPo)
  • Möglichtst klein und leicht

Aus der oben aufgeführten LuftVOAnl habe ich folgende Lichter herausgesucht:

  • Linke Positionsleuchte : Rot - dauerleuchten
  • Rechte Positionsleuchte : Grün - dauerleuchten
  • Heck Positionsleuchte : Weiß - dauerleuchten
  • Antikollisionslicht oben : Weiß - blitzend
  • Antikollisionslicht unten : Weiß - blitzend
  • Landescheinwerfer : Weiß - dauerleuchten

Die LuftVOAnl lässt einige Spielräume für die Positionierung und Leuchtart der Lichter. Deswegen soll dies nicht fest vorgegeben sein, sondern per PC eingestellt werden können.

Bauteilauswahl

Die komplette Elektronik soll in SMD Bauteilen bestehen. Außerdem muss bei einigen Bauteilen auf die Spannung geachtet werden, da die Eingangsspannung bei einem 6S LiPo über 25V liegen kann.

Microcontroller

Wie bei meinen anderen Projekten auch soll ein Renesas Mikrocontroller zum Einsatz kommen. Ein kleiner der R8C-Serie sollte für diese Anwendung völlig ausreichen. Ich habe mich für den R8C/13 entschieden. Dieser ist relativ günstig und ist durch die Elektor weit verbreitet worden. Man bekommt ihn zum Beispiel auch bei Reichelt.

LEDs

Everlight stellt sehr helle 1W LEDs her. Die EHP-A07 Serie gibt es unter anderem in rot, grün und weiß. Außerdem besitzen sie einen großen Abstrahlwinkel. Alternativ sind auch folgende LEDs interessant :

  • Luxeon® Rebel
  • Luxeon® K2
  • Avago Moonstone®
  • Avago ASMT®
  • Osram Dragon®
  • Cree XLamp XR-E

Bei allen High-Power LED muss auf eine ausreichende Kühlung geachtet werden. Man kann die Wärmeentwicklung etwas reduzieren, indem man die LEDs nicht mit ihrem Maximalstrom betreibt. Betreibt man die 350mA LEDs nur mit 300 oder 250mA sind sie nicht sehr viel dunkler aber sie werden nicht so warm.

Als Landescheinwerfer könnte auch eine 3W LED zum Einsatz kommen. Die Stromreglung dafür würde ich aber extern aufbauen. Für die High-Power LEDs werden auch Reflektoren angeboten, die sich bestimmt sehr gut machen bei dem Scheinwerfer. Bei den Reflektoren kann man zwischen verschiedenen Abstrahlwinkel wählen.

LED-Treiber

Der CAT4201 ist ein kleiner Schaltregler für 350mA Konstantstrom. Damit hat er eine sehr kleine Verlustleistung. Die Wärmeentwicklung sollte sich also in Grenzen halten. Des weiteren verträgt er eine Eingangsspannung von über 25V und hat den Schalttransistor intern. Die Spule hat allerdings einen relativ großen Platzbedarf und ich hoffe sie stört den Funk nicht zu sehr. Weil bei diesem Regler der Strom geregelt wird, können ohne Schaltungsänderungen auch mehrere LEDs in Reihe geschaltet werden.

Für den Landescheinwerfer wird nur die Eingangsspannung per MOSFET durchgeschaltet. Im Scheinwerfer könnte ein Schaltregler für einen größeren Strom zum Einsatz kommen. Zum Beispiel:

  • LM3406 - 1,5A
  • ZXLD1366 - 1A, SOT223 Gehäuse, relativ teuer
  • LT3474 - 1A
  • LT3475 - 1,5A, kann 2 LEDs unabhängig steuern
  • MAX16832 - 700mA, hohe Schaltfrequenz

Spannungsregler 5V

An den 5V Spannungsregler werden keine hohen Ansprüche gestellt. Da nur der Mikrocontroller durch ihn mit Strom versorgt wird genügt hier ein Längstregler der die Eingangsspannung verkraftet. Ich habe mich für einen Spannungsregler im SO8 Gehäuse entschieden, da diese auf dem Markt gut Verfügbar sind.

Optokoppler

Die Optokoppler sollen die Steuerimpulse vom Empfänger übertragen, weswegen sie die Impulse so wenig wie möglich verfälschen sollen. Ich habe also versucht ein Optokoppler zu finden, der den passenden Kompromiss aus Preis, Signalverzögerung und LED Strom bietet. Damit der Empfänger nicht zu sehr belastet wird habe ich der LED einen Transistor vorgeschaltet.

Die Schaltung

Die Schaltung besteht aus drei einzelnen Platinen, die aber nicht unbedingt alle benötigt werden. Die erste Platine ist die Lichtsteuerung , auf der zweiten sitzt der Schaltregler für den Landescheinwerfer und die letzten Platine ist der USB-Programmieradapter. Der Schaltplan für die letzten beiden Platinen ist auf der zweiten Seite des Schaltplans zu finden.

Schaltplan
Schaltplan 1/2
Schaltplan
Schaltplan 2/2

Auf der Steuerplatine ist hauptsächlich der Mikrocontroller und die LED-Treiber verbaut. Der Mikrocontroller bekommt vom RC-Empfänger die Signale, wertet sie aus und steuert mit diesen Informationen die LED-Treiber an. Den LED-Strom habe ich auf 350mA festgelegt, er kann aber auch mit den Widerständen R2 bis R5 verringert werden. Die 3 Positionslichter sollen bei meinem Heli Dauerleuchten, deswegen schalte ich die 3 LEDs einfach in Reihe. So benötige ich für die 3 LEDs nur einen Ausgang. Die Antikollisionslichten sollen unabhängig von einander blitzen. Wenn nicht alle Ausgänge benutzt werden, kann natürlich auch nur ein Teil der LED-Treiber bestückt werden.

Auf der Platine des Landescheinwerfers befindet sich auch ein Schaltregler. Über die zwei parallelen Widerstände (R201) wird der LED-Strom festgelegt. Der Gesamtwiderstand muss je nach Bedarf und Beschaffbarkeit aus zusammen gesetzt werden. Werden mehr als zwei Widerstände benötigt, können sie auch Huckepack auf die Platine gelötet werden. Dazu ein paar Beispiele / Vorschläge:

LED-Strom
(mA)
Gesamt R
(Ohm)
Einzel R
(Ohm)
Anzahl Rs
1400 0,143 0,43 3
1400 0,143 1,0 7
1000 0,2 0,43 2
700 0,286 0,56 2
Widerstände Landescheinwerfer

Zum Flashen des Mikrocontrollers und zum konfigurieren wird die RS232 (5V-Pegel) genutzt. Heutige Computer besitzen aber oft keine RS232 Schnittstelle mehr. Deswegen verwende ich einen USB zu Serienkonverter auf einer extra Platine. Man könnte diesen IC auch auf die Lichtsteuerplatine setzen, aber da nimmt er meiner Meinung zu viel Platz weg und er kostet auch Gewicht.

Software

Die Schaltung besitzt eine serielle Schnittstelle, über die der Mikrocontroller mit neuer Firmware und mit Daten versorgt werden kann. Mit einem PC kann sehr einfach eingestellt wann und wie die LEDs leuchten sollen.

Es kann für jeden LED-Kanal eingestellt wann die LED leuchten soll:

  • Aus - Der LED-Kanal ist deaktiviert.
  • Ein - Sobald die Schaltung mit Strom versorgt wird leuchtet die LED.
  • Eingang 1 - Die LED kann vom Sender über den Eingang 1 gesteuert werden.
  • Eingang 2 - Die LED kann vom Sender über den Eingang 2 gesteuert werden.
  • Spannung - Beim Unter- bzw. Überschreiten einer bestimmten Betriebspannung wird die LED eingeschaltet.
Screenshot
Screenshot

Ist für die Steuerung Eingang 1, Eingang 2 oder Spannung ausgewählt, muss mit Auswertungsart und Schaltwert festgelegt werden, wie die Steuerung ausgewertet werden soll. Für die beiden Eingänge 1 und 2 steht eine Auswertung bei Überschreiten eines bestimmten Wertes und eine Auswertung eines gemixten Bitkanals zur Verfügung. Für die Spannungssteuerung steht nur die Überschreitung eines Wertes zur Verfügung.
Bei der Auswertung eines gemixten Bitkanals können über einen Eingang mehrere Funktionen gesteuert werden. Dazu müssen im Sender mehrere Geber auf einen Kanal gemixt werden. Zur Programmierung des Senders im nächsten Abschnitt mehr. Bei dieser Form der Auswertung wird der Einstellbereich zuerst halbiert (Bit 0), dann geviertelt (Bit 1), dann geachtelt usw.
Als nächstes kann die Wirkrichtung umgekehrt werden. Damit wird zum Beispiel bei der analogen Auswertung aus "LED an bei Überschreitung des Schwellwertes" ein "LED an bei Unterschreitung des Schwellwertes".
Nun muss noch die Leuchtart eingestellt werden. Dazu gibt es ein vordefinierte Auswahl mit Dauerleuchten und verschiedene Blinkrhythmen. Die Auswahl kann auch selbst von jedem mit einem Texteditor in der Ini-Datei angepasst werden. Außerdem kann der Blinkrhythus auf als 64Bit Hex-Wert eingegeben werden. Diese Bitfolge wird einfach Bit für Bit durchgeschoben. Das LSB (niederwertigste Bit, rechteste Bit) wird zu erst auf die LED ausgegeben. Alle Kanäle laufen dabei Synchron. Damit hat man die Möglichkeit die LEDs abwechselnd Blinken zu lassen. Für diejenigen, die sich unter der 64Bit Hex-Zahl nicht sehr viel vorstellen können habe ich eine kleine Hilfe programmiert, die mit der Schaltfläche neben der Bitmaske aufgerufen wird.

Screenshot
Screenshot

In diesem Fenster in auch gleich eine Vorschau zu sehen, damit man eine Vorstellung vom Blinkrhythmus erhält.

Zum Schluss gibt es noch ein paar Einstellungen, die allgemeingültig sind:

  • Blinktakt - Hiermit wird eingestellt, wie schnell die Bit durchgeschoben werden als die Zeit die eine LED pro Bit Leuchtet. Die Zeit ist dabei in Millisekunden angegeben. Der Standardwert 50 bedeutet also 50ms was einer Taktfrequenz von 20Hz entspricht.
  • Bitanzahl - Wem die 64Bit zu viel sind kann hier die Anzahl der Bit die von der Bitmaske verwendet werden reduzieren. Es wird trotzdem das rechteste Bit das LSB zu erst verwendet. Das bedeutet anders herum gesagt das die linken Bits keine Wirkung mehr auf den Blinkrhythmus haben.
  • Cutoff Vcc - Gib hier einen Spannungsindex ein, bei dessen Unterschreitung alle LEDs ausgeschaltet werden, um den Akku nicht zu sehr zu entladen.
  • Servo Min. und Servo Max. - Diese beiden Werte sind für die Bitmix-Auswertung des Eingang von Bedeutung, damit der Mikrocontroller den Wertebereich des Senders kennt um den Wertebereich richtig halbieren, vierteln und achteln zu können. Ohne diese Einstellung können die gemixten Bits nicht richtig getrennt werden.
    Bei meinem Spektrum DX7 Sender wird bei 0% des Gebers ein Impuls von 1,1ms ausgegeben und bei 100% des Gebers ein Impuls von 1,9ms Länge. Die entspricht einem Wertebereich von 10% bis 90% am Ausgang des Senders.

Programmierung eines Bitmix-Kanals am Sender

Da ich die Spektrum DX7 mein eigen nenne, kann ich nur über diesen Sender etwas schreiben. Wenn jemand einen anderen Sender besitzt und Lust hat die Programmierung in Bezug auf den Bitmix nieder zu schreiben, kann es dies gerne tun und mir zukommen lassen.

Programmierung des Bitmix bei der Spektrum DX7

Das Programmieren des Mix-Kanals ist etwas tricky. Man muss sehr auf den Wertebereich aufpassen. Teilweise geht der Wertebereich von -100% bis +100% und teilweise von 0% bis +100%. Ich verwende hier Skala von -100% bis +100% da es so im Sender eingestellt wird.
Ich möchte 3 Schaltkanäle über einen Senderkanal übertrage, also 3Bit was insgesamt 8 Schaltzuständen entspricht.

Diagram
Kanal/Werte Diagram

Ich verwende als Mix-Kanal den Gear-Kanal. Im [Input Select] Menü muss der Gear-Schalter dem Gear-Kanal zugeordnet werden. Standardmäßig ist der Wertebereich des Gear-Kanals im [Travel Adjust] Menü -100% bis +100%. Damit hätten wir eigentlich schon das Bit 0 funktionsfähig, da der Wert bei Gear Aus kleiner 0% oder Wert bei Gear Ein größer als 0% ist. Dies reicht aber nicht, da wir noch mehr Bits über diesen Kanal übertagen möchten. Ich möchte erreichen, das der ausgegebene Wert jeweils in der Mitte der 8 Bereiche von Bit 2 im Bild oben liegt. Die 8 Werte haben einen Differenz von 25%.
Demzufolge sehen meine möglichen 8 Werte die ich erreichen möchte wie folgt aus:

  • Wert 1: -87%
  • Wert 2: -62%
  • Wert 3: -37%
  • Wert 4: -12%
  • Wert 5: 13%
  • Wert 6: 38%
  • Wert 7: 63%
  • Wert 8: 88%

Mit dem Gear-Schalter kann ich das Bit 0 Steuern. Ist der Schalter eingeschaltet liegt das Signal des Kanals in der oberen Hälfte. Das Bit 0 ist aktiv. Bei ausgeschaltetem Gear diegt das Signal in der untern Hälte und der Bit 0 ist aus.

Dateien zum herunter laden

Eagle Pläne und Bauteilliste : herunter laden (125 KiB)
Firmware : herunter laden (? KiB)
Firmware Quelltext : herunter laden (? KiB)

©2009

nach oben