…mit einem ATTINY 85
von Rainer Kembügler.
von Rainer Kembügler.
Antikollisionslichter, neudeutsch ACL genannt, werden immer beliebter. Das nicht zuletzt deshalb, weil sie die Sichtbarkeit eines Modells für den Pilot und andere Luftraumteilnehmer erhöhen. Diese Blitzer sind sehr hell, was im Umgang eine gewisse Vorsicht erfordert.
Kern des ACL ist eine leistungsstarke LED. Um die geht es hier aber nicht. Es gibt eine große Auswahl an fertigen Produkten oder für geübte Bastler auch Bauelemente, um eigene Projekte zu realisieren. Problem bei der Sache ist aber der Blitz. Der muss von einer vorgeschalteten Elektronik erzeugt werden. Ein weiteres Problem ist der Strom. Klassische Schaltungen haben vor der LED einen Vorwiderstand. Das ist ein probates Mittel, verheizt aber am Vorwiderstand Leistung, was 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.
Mein Ziel war es, eine Steuerung zu bauen, die von einem freien Servokanal versorgt wird und über das Servo-Signal gesteuert wird. Am Ausgang der Steuerung wird 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. Damit kann man, je nach vorhandener LED-Hardware, zwischen verschiedenen Stromversionen wählen (300 mA, 500 mA, 750 mA, 1000 mA oder 1500 mA). Die max. zulässige Versorgungsspannung (üblicherweise der Antriebsakku) beträgt 28 V, was den Einsatz auf max. 6s Antriebe begrenzt.
LED Stromregler - SM-Modellbau | RC Telemetrie Sensoren
Der LED Stromregler ist ein Schaltregler speziell für die Konstantstromversorgung von LEDs Der bisher verwendete Vorwiderstand mit all seinen Nachteilen wir
Für 8s Antriebe kann ich die Meanwell LDD-Serie empfehlen, die bis max. 36 V Eingangsspannung spezifiziert ist (LDD-1000L)
Es gibt eine Vielzahl von Microcontrollern (µC], die diese Aufgabe erledigen können. Viele moderne µC haben aber lediglich einen Versorgungsspannungsbereich bis 6 V. Das ist für viele RC-Systeme, die Hochvoltservos bis 8,4 V einsetzen, aber nicht genug.
Daher bin ich letztlich beim sog. DigiStump gelandet. Das ist eine kleine µC Platine, die den ATTiny 85 nutzt und einen Spannungsregler an Bord hat, der mit Versorgungsspannungen bis 12 V 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 die Aufgabe bei einer bestimmten Servo-Pulslänge ein bestimmtes Blitzmuster am definierten Ausgang bereitzustellen. Dazu muss der µC natürlich entsprechend mit einem Programm versorgt werden. Da gibt es sicher viele unterschiedliche Möglichkeiten. Ich habe mich für den Weg einer Schleife entschieden, die zuerst die am Servoausgang anliegende Pulslänge abfragt und dann über verschiedene Bedingungen die entsprechende Schleifenprozedur abarbeitet. Dabei nutze ich der Einfach halber die Arduino IDE-Umgebung, da sie recht weit verbreitet ist. Damit der DigiStump entsprechend programmiert werden kann, ist eine zusätzliche Board-Bibliothek erforderlich. Diese kann bei Github heruntergeladen werden.
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 bzw. die Servoposition einstellen kann.
Der komplette Aufbau sieht in meinem Fall 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.
Der Arduino Code:
// Code by Onki.
// Onkisoft :-)
// Einfacher ACL Steuersignal-Generator abhängig vom Servosignal (Pulslänge)
// Version 1.0 vom 21.01.26
int 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 2
unsigned 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 die Variablen festgelegt. Darunter die Blitz- und Pausendauer. Für meine Zwecke haben sich 50 ms bewährt, dies kann aber jeder 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 Dauerbetrieb ausgelegt sind. Nach der Festlegung der Variablen werden die Ein- und Ausgänge definiert.
In der Schleife wird zunächst die Pulslänge am Servoausgang abgefragt und in den folgenden Schleifen ausgewertet. Pulslängen unter 1400 µs bewirken nichts. Das ACL ist quasi abgeschaltet. Überschreitet die Pulslänge 1400 µs erfolgt ein Doppelblitz (50 ms Blitz, 50 ms 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, dem eine 850 ms Pause folgt. Das ergibt eine Sequenzlänge von knapp 1,2 s. 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 angapasst werden.
Wenn soweit alles eingestellt ist, muss der Programmcode noch kompiliert und anschließend übertragen werden. Dabei 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 so eine Übertragung des Codes ermöglicht. Dies ist nur innerhalb einer 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 beispielsweise an einem Servotester ausprobiert werden. Die OnBoard LED gibt an, wie der Ausgang zur KSQ geschaltet wird. Das Blinken nach dem Einschalten ist der Grund, weshalb Monitorausgang und Steuerausgang für die KSQ getrennt behandelt werden. Ansonsten würde beim Einschalten des Modells sowohl das ACL als auch 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.


