LED Stripe
Achtung:
Aktuelle Informationen zur LED Stripe finden Sie unter www.ledstripe.net/!
Ich habe eine Platine zur Beleuchtung der Quadrokopter-Ausleger entworfen. Die Platine ist 10mm breit und 136mm lang und mit 12 RGB-LEDs bestückt. Die folgenden Fotos zeigen Ober- und Unterseite der Platine:
Auf der Platine befindet sich neben den RGB-Leuchtdioden ein kleiner Mikrocontroller (Atmel ATtiny84) und zwei Shift-Register zur Ansteuerung der einzelnen LEDs. Durch eine Multiplex-Ansteuerung können die Farben Rot, Grün und Blau jeweils einer LED beliebig zu anderen Farben kombiniert werden. Die Spannungsversorgung erfolgt direkt über den Akku des Quadrokopters (7 – 18 Volt). Die unbestückte Platine wiegt etwa 3,3 Gramm, ein bestücktes Exemplar bringt ca. 6,6 Gramm auf die Waage (in 1mm Platinenstärke).
Features
Die Software erlaubt die Ansteuerung jeder einzelnen LED mit der gewünschten Farbe. Momentan sind für jede LED-Farbe 8 Helligkeitsstufen einstellbar, so dass sich 512 Farben ergeben. Auf diese Weise lassen sich verschiedenste Farbspielereien realisieren. Folgende Funktionen wurden bereits implementiert:
- dauerhaftes Leuchten (uh, wie langweilig ;-))
- einfarbiges oder mehrfarbiges Lauflicht (Laufrichtung einstellbar oder Wechsel der Richtung am Ende (Ping-Pong))
- Darstellung des Akku-Stands als Bar-Graph (blinkt wenn Spannung unter einstellbarem Schwellwert)
- Kommunikation per RS232/UART mit dem PC oder andere Platinen (mit 5V Spannungspegel, zum PC wird ein Pegelwandler benötigt)
- Kommunikation per I²C/TWI (Slave-Device, mit 5V Spannungspegel)
- ab Version 2.0: Erstellung und Programmierung beliebiger Lichtsequenzen mit dem PC-Programm LED Stripe Tool
- ab Version 2.3: Zeitliche Synchronisierung mehrerer LED Stripes untereinander möglich
Die Software kann hier heruntergeladen werden (als Quelltext und kompilierte Binärdateien).
Demo
Das folgende, erste Video zeigt einen ersten automatisch ablaufenden Test der Software. Die Platine wurde von der Seite gefilmt, da die hellen LEDs sonst die typischen Streifen bei einer CCD-Kamera verursachen würden. Im zweiten Video wird die Platine über die RS232-Schnittstelle vom PC angesteuert (deswegen auch das seitlich aufgesteckte Kabel). Nachdem die verschiedenen Effekte durchlaufen wurden, wird die an der Platine anliegende Spannung als Bar-Graph visualisiert. Dabei ist die Anzahl der leuchtenden LEDs proportional zur Spannung. Sinkt die Spannung zu weit (siehe Multimeter im Video), leuchten die verbleibenden LEDs rot. Unter einem einstellbaren Schwellwert (im Beispiel 9,0 Volt) blinken alle LEDs rot. Somit lässt sich der Akkustand am Quadrokopter visuell darstellen.
Schaltplan
Bauteile-Liste
Die unbestückte Platine kann im Shop unter https://mikrocontroller.com/ (Artikelbezeichnung LK_LED_STRIPE_V11) bestellt werden.
Die Platine wurde so entworfen, dass alle notwendigen Bauteile bei den beiden Elektronik-Versendern Reichelt und CSD-Electronics bestellt werden können. Die folgende Tabelle listet alle benötigten Bauteile auf.
Falls Sie Interesse an bestückten LED Stripes haben, fragen Sie einfach mal nach. Gelegentlich kann ich fertig aufgebaute und getestete Exemplare anbieten.
Anz. | Bestellnr. | Bezeichnung | Lieferant | Preis | Bauteil |
2 | SMD HC 595 | Schieberegister SO16 | Reichelt | 0,14 € | IC2, IC3 |
1 | L-PIS2816 68µ | Induktivität, 68µH | Reichelt | 0,69 € | L1 |
12 | BSS 138 SMD | SMD-Transistor SOT-23 | Reichelt | 0,06 € | T1-T12 |
12 | BCN16 47 | SMD-Widerstands-netzwerk 47R | Reichelt | 0,02 € | RN6-RN17 |
3 | BCN16 100 | SMD-Widerstands-netzwerk 100R | Reichelt | 0,02 € | RN3-RN5 |
12 | LRTB G6TG | Osram RGB-LED | Reichelt | 1,20 € | U1-U12 |
2 | 10-06K027 | Widerstand, 0603, 27 kOhm | CSD | 0,05 € | R3, R4 |
4 | 10-06K010 | Widerstand, 0603, 10 kOhm | CSD | 0,05 € | R11-R14 |
1 | 121-D10R100 | Tantal-Kondensator, Low ESR 100µF 16V | CSD | 0,85 € | C6 |
3 | 10-060100 | Widerstand, 0603, 100 Ohm | CSD | 0,05 € | R5-R7 |
3 | 13762 | Transistor IRLML6302, SOT-23 | CSD | 0,18 € | Q1-Q3 |
1 | 24-2594V05S | Spannungsregler, LM2594-5.0V | CSD | 2,89 € | IC4 |
1 | 11153 | Diode, MBRS130 | CSD | 0,12 € | D1 |
1 | 121-035V047 | Elko, 47µF, 35V, SMD | CSD | 0,13 € | C5 |
1 | 3012366 | Mikrocontroller, ATTINY84-20SU | CSD | 2,95 € | IC1 |
4 | 115-06N100 | Kondensator, 0603, 100 nF | CSD | 0,04 € | C1-C4 |
2 | 10-06K004,7 | Widerstand, 0603, 4.7k (optional für I2C) | CSD | 0,05 € | R1, R2 |
Die Bauteile, die bei Reichelt-Elektronik erhältlich sind, können Sie bequem über diesen gespeicherten Warenkorb in Ihren Warenkorb übernehmen. Die Bauteile von CSD-Electronics muss man leider einzeln in den Warenkorb legen.
Bestückungsplan und Aufbau
Die folgenden beiden Grafiken zeigen die Platzierungen der Bauteile auf der Ober- und Unterseite. Beim Aufbau der Platinen sollte zuerst die Spannungsversorgung aufgelötet und anschließend getestet werden. Diese besteht aus den Kondensatoren C5 und C6, der Spule L1, der Diode D1 sowie dem Spannungsregler IC4. Wird an den beiden Akku-Anschlüssen auf der Unterseite (untere Grafik, ganz rechts) eine Spannung >7 Volt angelegt, muss an Pin 2 vom Programmieranschluss (siehe Abschnitt Anschluss) eine Spannung zwischen 4,75-5,25 Volt zu messen sein. Ist dies der Fall, kann mit der Bestückung der restlichen Bauteile fortgefahren werden.
Die beiden Widerstände R1 und R2 werden nur für I²C benötigt und sind nur dann zu bestücken, wenn am I²C-Bus noch keine Pullup-Widerstände vorhanden sind.
Hinweis: Die LEDs sollten möglichst zügig und nicht zu heiß eingelötet werden, da sie relativ hitzeempfindlich sind. Empfohlene Vorgehensweise: Lötstation auf ca. 300°C stellen und dann jeweils ein Kontakt von allen LEDs anlöten, anschließend den zweiten Kontakt aller LEDs, usw. So bleibt den LEDs mehr Zeit zum Abkühlen als wenn alle Kontakte einer LED nacheinander gelötet werden.
Alternative Bestückung
Falls kein Wert auf die RGB-LEDs gelegt wird und stattdessen einfarbige LEDs ausreichen, kann die Platine auch mit anderen LEDs mit der Bauform 1206 bestückt werden. In diesem Fall werden die Widerstandsnetzwerke RN6-RN17 nicht benötigt. Stattdessen muss ein entsprechender Vorwiderstand mit Bauform 0603 (beispielsweise 120 Ohm) aufgelötet werden. Die folgenden Bilder zeigen, wie die LEDs und Widerstände aufgelötet werden müssen:
Anschlussbelegung
Die Spannungsversorgung der Platine erfolgt über zwei Anschlusspads auf der Platinenunterseite (siehe Bestückungsplan für die Unterseite, rechte Seite). Hier können einfach zwei Kabel angelötet werden (richtige Polarität beachten).
Außerdem befinden sich auf der Platine 6 Anschlusspads (3 auf jeder Seite). Diese Anschlüsse werden zur Programmierung und für die serielle UART-Schnittstelle (zukünftig auch I²C) verwendet. Zur Programmierung und Konfiguration via UART kann einfach eine doppelreihige Stiftleiste verwendet werden, deren Pins etwas enger gebogen wurden. Die Stiftleiste kann dann einfach auf die Platine aufgesteckt werden und nach erledigter Arbeit wieder abgezogen werden. Wer möchte, kann natürlich auch Kabel oder die Stiftleiste dauerhaft anlöten. Die folgende Grafik zeigt den Anschluss der Stiftleiste sowie die Pinbelegung.
Verbindung mit der SerCon von Mikrokopter
Zum Programmieren des Mikrocontrollers auf der LED Stripe-Platine und als Pegelwandler für die Kommunikation via RS232/UART kann beispielsweise die SerCon-Platine von Mikrokopter.de verwendet werden. Dazu sind zwei getrennte Adapterkabel notwendig, die schnell selbstgelötet werden können. Die folgende Grafik zeigt wie die beiden Platinen jeweils miteinander zu verbinden sind. Für die Programmierung wird der 6-polige Anschluss ISP2 (miniISP) auf der SerCon verwendet (obere Hälfte in der Grafik). Damit die Programmierung klappt, muss auf der SerCon der Jumper JP1 aufgesteckt sein. Zur Programmierung muss die LED auf der SerCon nicht leuchten, da die SerCon dabei nicht mit Strom versorgt wird. Zur Kommunikation via UART wird auf der SerCon der Anschluss SIO verwendet (untere Hälfte der Grafik). Der Pegelwandler auf der SerCon (MAX232) wird in diesem Fall von der LED Stripe-Platine mit 5 Volt versorgt, so dass auch die LED auf der SerCon bei korrekter Verkabelung leuchtet.
Die Konfiguration der LED Stripe kann auch über den MK-USB von Mikrokopter.de erfolgen. Hierzu kann das gleiche Kabel wie zur UART-Kommunikation mit der SerCon (siehe Grafik) verwendet werden. Das Kabel muss am SIO/FC/NC-Anschluss vom MK-USB angeschlossen werden. Zum Programmieren/Flashen ist der MK-USB allerdings nicht geeignet.
Synchronisierung mehrerer LED Stripes
Setzt man mehrere LED Stripe Platinen zusammen ein, so muss man leider feststellen, dass die Lichteffekte auf den verschiedenen Stripes aufgrund der Toleranzen des Taktsignals nach einigen Sekunden sichtbar zeitlich auseinander laufen. Um dennoch das zeitgleiche Abspielen von Lichteffekten auf mehreren Platinen zu ermöglichen, gibt es seit Firmware-Version 2.3 die Möglichkeit zur Synchronisierung. Dabei erzeugt eine LED Stripe ein Synchronisierungssignal, welches durch eine Kabelverbindung an die restlichen LED Stripes im Verbund weitergegeben wird und diesen als zeitliche Referenz dient. Damit wird ein Auseinanderlaufen des zeitlichen Ablaufs vermieden. Weitere Details zu dieser Funktion sind in der Dokumentation des LED Stripe Tools zu finden.
Das folgende Video zeigt 4 synchron laufende LED Stripe Platinen. Bei etwa 17 Sekunden im Video wird zur Demonstration die Versorgungsspannung verringert und die Platinen signalisieren einen leeren Akku durch rotes Blinken. Nach Erhöhen der Spannung ist das Lauflicht aller Platinen nach wie vor synchron zueinander.
.