Routinensammlung und Gewusst-wie für Mikrocontroller

Sternhimmel

Genügend billige weiße Leuchtdioden lassen den Wunsch nach einer modernen, Energie sparenden und kindgerechten Zimmer(decken)beleuchtung aus bis zu 100 LEDs aufkommen.

Diese einfache Schaltung ermöglicht mittels zweier Potenziometer die Einstellung der Beleuchtungshelligkeit und die Auswahl eines „Animationsprogramms“, welches die Anzeige einzelner Sternbilder oder die Simulation von „Supernovas“ einschließt.

Die Basissoftware macht jede LED einzeln in 256 linearen (32 logarithmischen) Helligkeitsstufen dimmbar! Die Firmware ist hierzu trickreich und in Assembler erstellt.

Natürlich eignet sich eine derartige LED-Decke nicht als Raumbeleuchtung im herkömmlichen Sinne, dafür sind die LEDs (noch) zu leistungsschwach; die eingesetzten Schalttransistoren können aber schon ordentliche Ströme schalten.

Die Schaltung wird mit einem Schaltnetzteil mit 5 V (maximal ca. 1 A) versorgt. Notfalls tut es auch ein PC/Notebook über USB.

[Schaltplan]
Schaltplan, Eagle-Quelle

Die Schaltung ist eine einfache Multiplexansteuerung, wie sie für LED-Anzeigen bekannt ist. Statt der üblichen LED-Treiber (ULN2003 u.ä.) wurden hier viel besser geeignete MOS-Leistungstransistoren verwendet, die in der Lage sind, die hohen Ströme für superhelle LEDs verlustarm zu schalten. Da jede einzelne LED einzeln in ihrer Helligkeit angesteuert werden kann, ist der Rest (bspw. die Gruppierung zu bekannten Sternbildern) nur eine Frage ihrer Anordnung und der Mikrocontroller-Firmware.

Die Leiterplatte findet bspw. in einer Zwischendecke Platz. Programmiert wird der Chip am einfachsten über die parallele Schnittstelle eines PCs über den (rechten) SubD-Stecker.

[Bestückung oben (Durchsteck)] [Bestückung unten (SMD)]
Leiterplatten-Bestückung: Ziemlich übersichtlich! Eagle-Quelle

Der USB-Anschluss dient nur zum Firmware-Update (zurzeit nicht implementiert). Dazu müssen beide Potenziometer auf Linksanschlag stehen, damit durch die dann inaktiven LEDs die Betriebsspannung ruhig genug ist, dass (mit dem internen RC-Oszillator) eine USB-Kommunikation zustande kommt.
Ursprünglich war eine komplette PC-Steuerung vorgesehen, diese funktioniert aber nur stabil mit Quarz – dafür fehlen nun zwei Pins. Bei Verzicht auf K1 und K0 (nur 80 LEDs) wäre dies aber deutlich schöner.

Die Verdrahtung der Außenbeschaltung ist simpel.

[Anschlussplan]
Anschlussplan, Eagle-Quelle

Der SubD-Stecker wird links angeschlossen.

Zunächst wurde der Sternhimmel als 10x10-Matrix auf einer Plastscheibe erstellt, um die Firmware zu entwickeln. Gelötet wurde die Leiterplatte von Lehrlingen einer Elektronikwerkstatt; das können sie offenbar ganz gut.

[Foto Versuchsaufbau]   [Foto SMD-Lötarbeit]
Versuchsaufbau und SMD-Lötarbeit

Hier: Eagle-Schaltplan und -Board herunterladen!

Hier: Firmware herunterladen! oder auf dem Server ansehen

Es existiert eine Implementationsstudie für Windows, an der man die Funktion der Firmware am PC nachvollziehen kann.

Screenshot
Screenshot der Implementationsstudie (Flimmer-Programm)


haftmann#software, 6. Januar 2010