Light-CTRL, was ist das...

Die Light-CTRL ist eine Licht oder auch Lastschaltung, basierend auf der Bl-CTRL.

... und warum eigentlich?

Das Problem bestand darin, dass zum einen die LED-Beleuchtung über J16/J17 der FL-CTRL steuerbar sein sollte und zudem die teilweise blinken oder besser doppelt blitzen sollte. Die erste Überlegung war, die LED-Beleuchtung über eine Transistorschaltung zu realisieren und den Blitzer über eine Reihenschaltung von NE555-Timern zu realisieren. Jedoch stößt man aufgrund der Abmessungen auf einer Lochrasterplatine schnell an seine Grenzen. Auch die Einstellung der Zeit über Potentiometer ist nicht sauber realisierbar.

Viel einfacher kann eine solche Schaltung mit einem Mikrokontroller wie dem ATMEGA8 aufgebaut werden. Die BL-CTRL-Platine eignet sich aufgrund der vorgesehenen FETs auch wunderbar dazu.

Umbau der bestehenden BL-Ctrl

Auf einer Fertig bestückten BL-CTRl müssen die FETs IRFR 5305 und deren Ansteuerung entfernt werden. Die FETs IRFR1205 und die Transistoren BC817-16SMD können als Schalter verwendet werden. Die Widerstände R7,R12,R13,R20,R21,R22,R1,R4,R18,R10,R14, sowie die Kondensatoren C1,C2, C4 und C17 müssen entfernt werden. Anbei hier auch ein abgeänderter Schaltplan des BL-CTRL:

ImageLink(http://gallery.mikrokopter.de/main.php?g2_view=core.DownloadItem&g2_itemId=11926,http://gallery.mikrokopter.de/main.php/v/tech/Light-CTRL_Schaltplan.JPG.html) ImageLink(http://gallery.mikrokopter.de/main.php?g2_view=core.DownloadItem&g2_itemId=11949,http://gallery.mikrokopter.de/main.php/v/tech/bild+087.jpg.html) ImageLink(http://gallery.mikrokopter.de/main.php?g2_view=core.DownloadItem&g2_itemId=11951,http://gallery.mikrokopter.de/main.php/v/tech/bild+091.jpg.html)

FETs und Transistoren der Bl-Ctrl als Schalter nutzen

Die Transistoren und FETs, die bereits mit dem Emitter, bzw. Source an Masse liegen können relativ leicht als Masseschalter verwendet werden. z.B. können direkt über die 12V Versorgungsspannung und einen FET, LED-Leisten angesteuert werden. /!\ Bei den SMD-Transistoren muss man die Leistung beachten!

Eingänge mit J16/J17 (FL-Ctrl) schalten

Bei einem Mikrokontroller lassen sich die Ports auch als Eingänge deklarieren. Die Ports PC0..PC2 bieten sich dabei an, denn diese wurden für die Motorenbemessung bereits auf Lötflächen herausgeführt.

Programmierung

Programmieren WinAVR

Der Programmcode

Zu Beginn des Programms wird mit den Präprozessordirektiven gestartet. Hier werden die Unterprogramme und wichtige Parameter, wie z.B. die Prozessorgeschwindigkeit angegeben.

// Einstellen des Systemtakts des µC auf 1Mhz.
// UL gibt an, dass es ein unsigned-Long Datentyp ist.
#define F_CPU 1000000UL                

// Erstellt eine Instanz des Prozessabbilds der Eingänge. Soll heißen,
// dass die Zustände der Eingänge ständig in die Variable WP übergeben werden.                                       
#define WP PINC 

// Einbinden zusätzlicher Bibliotheken oder Unterprogramme. Z.B. die Funktionen
// der Ein- und Ausgabe des ATMEL.
#include <avr/io.h>
#include <util/delay.h>

Im Hauptprogramm (main) werden zunächst die Parameter für die einzelnen Ports und Pins definiert. Pin C2 (BL-CTRL auch NULL_C genannt) wird als Eingang verwendet

int main(void)
{
        // Port C "pauschal" als Eingänge festlegen     
        DDRC =0x00;                    
        // Pullup für PC2 aktivieren. Damit entfällt der Aufbau
        // eines Pull-Up wiederstandes für die Eingangsbeschaltung
        PORTC |= (1 << PC2);        
        // Pin D3,D4,D5 und D7 als Ausgänge festlegen   
        DDRD |= (1 << PD7)|(1 << PD3)|(1 << PD4)|(1 << PD5);

Erzeugen des Makefiles

Aufspielen der Software per Ponyprog