Antikollisionslichter – neudeutsch ACL genannt werden immer beliebter. Das nicht zuletzt, weil sie die Sichtbarkeit des Modells gegenüber dem Piloten und möglicher anderer Luftraumteilnehmer erhöhen.
Diese Blitzer sind sehr hell, womit im Umgang eine gewisse Vorsicht mitzubringen ist.
Kern des ACL ist eine leistungsstarke LED. Um die geht es hier aber nicht. Hier gibt es am Markt eine große Auswahl an fertigen Lösungen oder für geneigte Bastler auch Bauelemente um seine eigene Lösung umzusetzen. Problem bei der Sache ist aber der Blitz. Der muss von einer vorgeschalteten Elektronik erzeugt werden. Weiteres Problem ist der Strom. Bei klassischen Lösungen wird vor die LED ein Vorwiderstand geschaltet. Das ist ein probates Mittel, verheizt aber am Vorwiderstand Leistung, was so nicht sein muss. Daher bevorzuge ich den Einsatz einer sogenannten Konstantstromquelle auch KSQ genannt. Viele Dieser KSQ lassen sich über ein Steuersignal „fernsteuern“. Und genau hier setzt die von mir beschriebene Lösung an.
Ziel ist es eine Steuerung zu bauen, die einerseits von einem freien Servokanal versorgt wird und über das Servo-Signal gesteuert wird. Am Ausgang der Steuerung wird dann ein Schaltsignal bereitgehalten, das weiter zur KSQ geleitet wird um die LED des Blitzers entsprechend mit Leistung zu versorgen.
Eine sehr kompakte und leistungsfähige Lösung hat SM-Modellbau mit dem LED-Stromregler im Programm. Hier kann man, ja nach vorhandener LED-Hardware zwischen verschiedenen Stromversionen wählen (300,500,750,1000,1500mA). Die max. zulässige Versorgungsspannung (üblicherweise der Antriebsakku) beträgt 28V was den Einsatz auf max. 6s Antriebe begrenzt.
Für 8s Antriebe sei die Meanwell LDD-Serie empfohlen, die bis max. 36V Eingangsspannung spezifiziert ist (LDD-1000L).
Nun gibt es eine Vielzahl von Microcontrollern (µC], die diese Aufgabe erledigen können. Viele moderne µC haben aber lediglich einen Versorgungsspannungsbereich bis 6V. Das ist für viele RC-Systeme, die Hochvoltservos (bis 8,4V) einsetzen aber nicht genug.
Daher bin ich letztlich beim sog. DigiStump gelandet einer kleinen µC Platine, die den ATTiny 85 nutzt und einen Spannungsregler an Bord hat, der mit Versorgungsspannungen bis 12V zurechtkommt. Zudem ist die Platine so ausgeführt, dass man sie direkt in einen USB-A Anschluss am PC einstecken kann und somit kein extra Programmieradapter nötig ist.
Der ATTINY85 übernimmt hier wie schon gesagt die Aufgabe bei einer bestimmten Servo-Pulslänge ein vorbestimmtes Blitzmuster am vordefinierten Ausgang bereitzustellen. Dazu muss der µC natürlich entsprechend mit einem Programm versorgt werden. Hier gibt es sicher viele unterschiedliche Möglichkeiten. Ich habe mich für den Weg einer Schleiufe entschlossen, die zuerst die aktuell am Servoausgang anliegende Pulslänge abfragt und dann über verschiedene Bedingungen die entsprechende Schleifenprozedur abarbeitet. Hierzu nutze ich der Einfach halber die Arduino DIE Umgebung, da sic doch recht weit verbreitet ist. Damit der DigiStump entsprechend programmiert werden kann ist eine zusätzliche Board-Bibliothek erforderlich. Diese kann bei Github heruntergeladen werden. https://github.com/digistump/DigistumpArduino
Der für den Arduino Boardmanager nötige Link ist dort genannt.
Der Verdrahtungsplan sieht wie folgt aus:
Vom Servoanschluss am Empfänger gehen die Plus- bzw. Minusleitungen zu den Spannungsversorgungspins am DigiStump. Das Servosignal wird bei meiner Lösung an den Ausgang P2 angeschlossen. Das Steuersignal für die KSQ liegt dann am Ausgang P0. Der P1 ist intern mit der roten LED auf der Platine verbunden und wird als Monitor genutzt, damit man die Blitzfunktion auch ohne angeschlossene KSQ sehen kann bzw. die Servoposition so einstellen kann.
Der komplette Aufbau sieht in meinem Fall dann so aus:
Die Verbindung zum Antriebsakku erfolgt über die rote BEC-Steckverbindung. Der Ausgang ist so beschaffen, dass man den Stecker direkt an den SM LED Stromregler anschließen kann.
Hier nun der Arduino Code:
// Code by Onki.
// Onkisoft :-)
// Einfacher ACL Steuersignal-Generator abhängig vom Servosignal (Pulslänge)
// Version 1.0 vom 21.01.26int RXin = 2; //Pin an den das Servosignal angeschlossen wird
int AUXout = 0; //LED Monitor Ausgang auf dem Board
int AUX1out = 1; // ACL Steuer-Ausgang zur Konstantstromquelle
int Blitz = 50; //Blitzdauer in ms
int Pause = 50; //Blitzpause in ms
int Sequenz1 = 1500; //Länge der Pause nach der Blitz-Sequenz bei Trigger 1
int Sequenz2 = 850; //Länge der Pause nach der Blitz-Sequenz bei Trigger 2
int Trigger1 = 1400; //Pulslänge zum Trigger von Blitzsequenz 1
int Trigger2 = 1900; //Pulslänge zum Trigger von Blitzsequenz 2unsigned long number;
void setup()
{
pinMode(RXin, INPUT); //Definition des Servo-Eingangssignals
pinMode(AUXout, OUTPUT); //Definition des MOnitorausgangs mit on-board LED
pinMode(AUX1out, OUTPUT); //Definition eines zusätzlichen Ausgangs
//Serial.begin(115200); //Festlegung der Baudrate der Seriell-Konsole
}void loop()
{
number = pulseIn(RXin, HIGH); //Definition der Pulslängenmessung
//Serial.println(number); //ermittelte Pulslänge wird in der Seriellkonsole ausgegeben
//Blitzsequenz 2
if (number > Trigger2)
{
digitalWrite(AUXout, HIGH);
digitalWrite(AUX1out, HIGH);
delay (Blitz);
digitalWrite(AUXout, LOW);
digitalWrite(AUX1out, LOW);
delay (Pause);
digitalWrite(AUXout, HIGH);
digitalWrite(AUX1out, HIGH);
delay (Blitz);
digitalWrite(AUXout, LOW);
digitalWrite(AUX1out, LOW);
delay (Pause);
digitalWrite(AUXout, HIGH);
digitalWrite(AUX1out, HIGH);
delay (Blitz);
digitalWrite(AUXout, LOW);
digitalWrite(AUX1out, LOW);
delay (Sequenz2);
}
//Blitzsequenz 1
else if (number > Trigger1)
{ digitalWrite(AUXout, HIGH);
digitalWrite(AUX1out, HIGH);
delay (Blitz);
digitalWrite(AUXout, LOW);
digitalWrite(AUX1out, LOW);
delay (Pause);
digitalWrite(AUXout, HIGH);
digitalWrite(AUX1out, HIGH);
delay (Blitz);
digitalWrite(AUXout, LOW);
digitalWrite(AUX1out, LOW);
delay (Sequenz1);
}
else
{
digitalWrite(AUXout, LOW);
digitalWrite(AUX1out, LOW);
delay (300);
}}
Zuerst werden alle Variablen festgelegt. Darunter die Blitz- und Pausendauer. Für meine Zwecke haben sich hier 50ms bewährt, dies kann jeder aber individuell gestalten. Man sollte die Verlustleistung der LEDs im Auge behalten und einen max. Leistungszyklus von etwa 10% beachten, das bedeutet, die LED wird nur zu etwa 10% der Zeit eingeschaltet, da sie nicht für Dauerstrombelastung ausgelegt sind. Nach der Festlegung der Variablen werden die Ein- bzw. Ausgänge definiert.
In der Schleife wird zunächst die Pulslänge am Servoausgang abgefragt und in den folgenden Schleifen dann ausgewertet. Pulslängen unter 1400µs bewirken nichts. Das ACL ist quasi abgeschaltet. Überschreitet die Pulslänge 1400µs erfolgt ein Doppelblitz (50ms Blitz, 50ms Pause) gefolgt von einer Pause von 1,5s. Damit ergibt sich eine Sequenzlänge von etwa 1,7s.
Bei einer Pulslänge größer 1900µs wird ein Dreifachblitz ausgegeben mit 850ms Pause danach. Das ergibt eine Sequenzlänge von knapp 1,2s. Diese Einstellung ergeben für einen 3-Stufenschalter am Sender, der die Funktion bedient in einer Stellung kein Blitz, in der Mittelstellung den Doppelblitz und in der entgegengesetzten Stellung den Dreifachblitz. Dies kann durch ändern der Zeiten natürlich flexibel geändert werden.
Wenn soweit alles eingestellt ist, muss der Programmcode noch kompiliert und anschließend übertragen werden. Hier gibt es beim DigiStump eine Besonderheit. Nach dem Kompilieren wird in der Statusleiste angezeigt, dass man den DigiStump einstecken soll. Beim Einstecken wird der sog. Bootloader gestartet (LED auf dem Board blinkt schnell) und somit eine Übertragung des Codes ermöglicht. Dies ist nur eine sehr kurze Zeit möglich, weshalb man auch erst nach der Aufforderung den DigiStump einstecken darf. Nach der Übertragung ist das Teil Einsatzbereit und kann z.B. an einem Servotester ausprobiert werden. Die OnBoard LED gibt hier an, wie der Ausgang zur KSQ geschaltet wird. Das Blinken nach dem Einschalten ist ein Grund dafür, weshalb Monitorausgang und Steuerausgang für die KSQ getrennt behandelt werden. Ansonsten würde beim Einschalten des Modells das ACL auch so wie die rote LED auf dem Board blinken, was zu Irritationen führen kann.
Wenn alles funktioniert kann man den Aufbau einschrumpfen. Um jederzeit Anpassungen vornehmen zu können empfiehlt es sich, den USB-Anschluss separat mit einem Schrumpfschlauch zu versehen, der zur Umprogrammierung vorübergehend abgezogen werden kann.
Damit hat man eine einfache und flexible Lösung für ein ACL.









