Quick & Dirty: LED-Tester

Im Laufe der Zeit hat sich bei mir eine kleine Kiste mit wild durcheinander geworfenen LEDs angesammelt. Da die meisten modernen LEDs (Low-Current mal ausgeschlossen) ein klares Gehäuse haben, kann man also ohne weitere Hilfsmittel nicht so einfach sagen, welche Farbe man da gerade in der Hand hat. Als Abhilfe für das Chaos gibt es hier eine kurze Anleitung für einen LED-Tester. Gefüttert wird der mit einem 9V-Block und spuckt dann freundlicherweise einen Strom von 20mA aus. Damit kann man gefahrlos alle gängigen LEDs testen, und auch bei High Power-Typen glimmt die Diode dann in ihrer richtigen Farbe, so dass man auch die richtig zuordnen kann.

Kleiner Tipp: Ein Durchgangsprüfer (auch die in einem Multimeter) erzeugen für ihren Betrieb eine Prüfspannung im Bereich 1,5-4,5V, der Strom dahinter ist sehr begrenzt. Damit lassen sich LEDs im Normalfall auch gut zum Glimmen bringen, falls man also mal nichts anderes zur Hand hat ist das eine praktische Alternative. Wenn man sich allerdings gerne öfter mal mit LEDs beschäftigt, ist ein extra Tester schon ein lohnender Luxus.  🙂

Die Schaltung dazu stammt nicht von mir, sondern von einer tollen Website. Dort ist die Herleitung für die Widerstandswerte und allgemein die Funktion sehr schön erklärt. Als kleine Fingerübung habe ich den Schaltplan jedoch hier nochmal selber zusammen geschustert, erweitert um einen optionalen Schalter und eine Low-Current Betriebs-LED (D2) mit Vorwiderstand (R3):

attiny3

Zum Spaß habe ich die Schaltung dann auch gleich noch simuliert mit LTSpice. Es passiert wie zu erwarten nicht viel Aufregendes – der Ausgangsstrom bleibt auch bei 12 V am Eingang noch unter den angepeilten 20 mA.

img_9392

Für das Gehäuse gibt es so gut wie keine Vorschriften, praktisch ist jedoch eines mit Batteriefach. Ich habe zufällig noch dieses Gehäuse hier daheim liegen gehabt, da passt alles locker rein.  Auch eine Alternative.

img_9396

Achja – die schwarze 4mm-Buchse ist übrigens mit Edding angemalt, ich hatte nämlich nur zwei rote zur Hand. Damit hat das Projekt dann auch das Prädikat ‚Dirty‘ verdient.  🙂

Advertisements

These Aren’t The Droids You’re Looking For…

Ein bisschen Star Wars-Geraffel darf ja eigentlich nicht fehlen. Als Inbegriff für die futuristische Technik aus der weit entfernten Galaxis steht für mich der kleine R2. R2-D2 ist wohl einer der sympathischsten Roboter-Ikonen die die Welt so kennt. Also mal überlegt, in welcher Form man den Droiden noch unterbringen könnte, als Handyhülle oder Keksdose ist er ja schon ganz nett, aber für beides habe ich eigentlich keine Verwendung, aaber…

Eine neue Schreibtischlampe wäre mir sehr gelegen. Dann könnte ich beim abendlichen Programmier-Vergnügen auf meine bisherige Energiesparlampe verzichten. Mit ihrem ultra-kaltweißen Licht ist sie zwar perfekt für die Konzentration beim Lernen – aber eine behagliche Stimmung kommt damit nicht auf. Das ist auch schon die Lösung. Beziehungsweise die Grundlage zur Lösung.

img_9362

Der Dome der Lampe hat ja schon die perfekten Abmessungen; ein paar Streifen blaue Klebefolie sollten reichen, um ihm das typische Antlitz von R2-D2 zu verpassen.

img_9361

Als Leuchtmittel sollen selbstverständlich LEDs arbeiten. Aus einer älteren Bestellung habe ich noch 10x Nichia 1W LEDs und einen Ring aus blauen SMD-LEDs übrig. Irgendwie hab ich mir beim Bestellen keine Gedanken gemacht, wie ich die Nichias überhaupt verarbeiten soll – also hab ich die SMD-Knirpse kurzerhand auf die Kupferseite einer Lochrasterplatine gepflastert. Nicht die feine Art, funktioniert aber wie es soll.

img_9383

Bei der Bestromung gibt es wieder einen kleinen Kompromiss: die Lampe läuft mit 12V, die weißen LEDs mit ungefähr 3V. Ergo bietet es sich an, jeweils drei LEDs als Strang zu verschalten, über eine Konstantstromquelle dann an 12V. Obwohl LEDs zu den effizientesten Leuchtmitteln überhaupt gehören, entwickeln sie bei entsprechender Leistung doch eine gehörige Abwärme. Besonders bei so einer kleinen Bauform. Da die LEDs hier jedoch nicht an einem satten Kühlkörper betrieben werden, muss die Leistung entsprechend angepasst werden. Anstatt den maximalen 300mA sollen sie mit 100mA bestromt werden.

Da ich aber nur eine Konstantstromquelle mit 350mA Ausgang zur Hand habe, werden die drei LED-Stränge parallel an die einzelne KSQ gehängt. Theoretisch kann es jetzt durch Abweichungen in der Fertigung zu unterschiedlich hohen Strömen kommen – der Aspekt ist hier jedoch vernachlässigbar; zum einen ist die Fertigungsqualität bei Nichia sehr gut, und zum anderen bewegen wir uns in einem sicheren Strombereich, der praktisch unmöglich zu einer Zerstörung der LEDs führen kann – dafür müsste die Abweichung zwischen den LEDs wirklich abnormal groß sein.

Natürlich soll die Lampe nicht nur Vollgas kennen – eine Dimmbarkeit ist wünschenswert, das Zauberwort heißt Pulsweitenmodulation. Dafür braucht es einen µC, aufgrund der Überschaubarkeit des Projektes ist mir ein Arduino (Pro Mini) zu groß, es wird Zeit für den kleinen Bruder: den ATtiny85. Ein toller Controller im kompakten DIP-8-Gehäuse, durch die begrenzte Pin-Zahl aber natürlich nicht überall einsetzbar. Der ATtiny liest eine analoge Poti-Spannung ein und verwurstet sie zu zwei PWM-Signalen. Steht das Poti in der Mitte, sind alle LEDs aus. Dreht man zur einen Richtung wird Weiß heller, zur anderen strahlt die Lampe heller blau.

Für eine authentische Erscheinung darf aber eines nicht fehlen: die piepsige Sprachausgabe. Aus diesem Grund habe ich mir zusammen mit einem Visaton-Kleinlautsprecher noch ein Audio-Dekoder-Modul besorgt, ein WTV-020-SD. Das Modul wird über eine µSD-Karte gefüttert und mit 3,3V versorgt. Klingt angenehm? Naja, bei beidem ist das Modul mehr als nur anspruchsvoll. Zum Starten benötigt das Modul einen Strompeak von >100 mA. Bekommt es den nicht, bleibt es beleidigt ruhig. Bei den SD-Karten ist mir keine Logik aufgefallen, von drei 1GB-Karten sind zwei in Ordnung, mit der dritten mag das Modul einfach nicht arbeiten.

img_9386

Die Soundfiles im .WAV-Format habe ich mir aus den Installationsdateien eines Klassikers aus meiner Kindheit besorgt – Star Wars Jedi Knight II. Die mussten dann noch in ein proprietäres Dateiformat gezwängt werden, damit das Soundmodul sie versteht, danach klappt dann aber alles wie es soll.  🙂

Angesteuert wird das Modul durch einen Bewegunsmelder, der optisch das Auge von R2-D2 bildet. Das HIGH-Signal vom Bewegungsmelder muss dann erst noch über einen PNP-Transistor invertiert werden, da das Soundmodul ungeschickterweise bei einem LOW-Signal anfängt zu tüdeln (die Invertierung übernimmt nun doch noch der µC, spart ein Bauteil, hehe). Über einen Schalter lässt sich das Signal auch kappen, falls einem mal nach mehr Ruhe ist.

attiny2Hier das ganze noch als Schematic. Um bei der Kompaktheit die Übersichtlichkeit zu wahren, habe ich die Konstantstromquelle mit den weißen LEDs nicht mit eingezeichnet.

Wochenendprojekt: 240W-Stroboskop

Tja, wenn die Software nicht wäre… Eigentlich lief alles nach Plan, in später Samstagnacht war das Projekt hardwaremäßig sehr gut abgeschlossen, aber dann musste ja der µC beweisen, dass er die Macht über den gelungenen Abschluss eines elektronischen Projektes hat. Aber alles von Anfang:

Für kleinere Festlichkeiten wollten ein paar Kumpels und ich ein Stroboskop haben. Das sollte zeitgemäß mit LEDs betrieben und auch selbstgebaut werden, damit man auch noch die Möglichkeit hat mit der Ansteuerung etwas zu spielen. Natürlich braucht ein ordentliches Strobo entsprechend viel (Licht-)Saft – daher kamen beefige 10W-LEDs zum Einsatz. Diese Chip-On-Board-Typen haben nämlich die sehr angenehme Eigenschaft, dass ihre Betriebsspannung bei 12V liegt und nicht wie üblicherweise bei 3,2V. Das funktioniert durch eine interne Beschaltung von 3 Dioden in Reihe und jeweils 3 Dioden parallel – in Summe also 9 Dioden pro LED.

Das spart den größten Teil der Kosten – nämlich die Konstantstromquellen, die die Spannung tiefsetzen und gleichzeitig den Strom begrenzen. Für maximale Lebensdauer der LEDs sollten im Allgemeinen jedoch lieber Konstantstromquellen verwendet werden.

Natürlich muss der Strom aber weiterhin begrenzt werden, sonst würden die LEDs innerhalb von Sekunden den Hitzetod sterben. Oder sie müssten enorm gekühlt werden, auch keine wünschenswerte Alternative. Abhilfe schaffen also eine Hand voll MOSFETs und ein getaktetes Signal. Die Steuerung dafür übernimmt ein Arduino Pro Mini.

Über einen Poti und einen Taster wird das Licht gesteuert. Der Taster schaltet nach GND durch, am Arduino-Pin ist der interne Pull-up-Widerstand aktiviert. Damit kann auf weitere externe Bauteile verzichtet werden. Beim Drücken des Tasters wird ein Interrupt ausgelöst, in der Service Routine wird dann ein Betriebsmodi-Zähler inkrementiert. So kann zwischen den Programmen (Strobo, Larsonscanner, evtl. noch Automatik) weiter geschaltet werden. Mit dem Poti lässt sich die Geschwindigkeit der Programme regeln.

led

Für genügend große Helligkeit haben wir uns für 24 Stück der 10W-Bomber entschieden. Diese werden in 3er-Grüppchen von je einem MOSFET versorgt. Laut den chinesischen Angaben soll eine einzelne LED ca. 1000 Lumen auf 10 W bringen. Das wäre fast zu schön um wahr zu sein, ich denke 700 Lumen ist realisitischer. Das wären dann in Summe so 17000 Lumen. Nicht schlecht.

Das stellt uns dann auch vor das letzte Hardware-Problem: die LEDs wollen beim Stroboskop allesamt zusammen blitzen, dabei fällt dann ein Strom von 24 Ampere an. Mit den normalen Steckernetzteilen kommt man da nicht sehr weit, es sollte aber trotzdem eine günstige Lösung geben… und die gibt es auch und heißt: Servernetzteile. Im Internet findet man massig ausgediente Servernetzteile für einen sehr fairen Preis. Diese kompakten Biester können bei sehr konstanter Spannung einen enormen Strom ausspucken. So habe ich mich dann für ein Modell von HP entschieden, bei 12 V kann dies einen Strom von 41 A liefern. Da diese Netzteile auch für die Sendeanlagen von CB-Funkern sehr interessant sind, kommen aus jenen Kreisen sehr gute Anleitungen für das Modifizieren der Netzteile, so dass diese auch ohne angestecktes Motherboard anlaufen:

netzi

Wie bereits angesprochen war das Sägen, Kleben, Löten und Testen der Hardware planmäßig Samstags abgeschlossen – eigentlich wie auch die kompakte Software. Die habe ich unterwegs schon mal im Editor verfasst, dummerweise halt ohne Testmöglichkeit. Da sie aber recht überschaubar war, war ich mir sicher das müsste auch so klappen… Pustekuchen!  🙂

uiuiui

Der µC wollte sich partout nicht so verhalten wie er eigentlich sollte… die Eingabe durch den Taster wurde ignoriert. Ein Schutztimer, der die LEDs nach einer gewissen Zeit abschalten sollte um eine thermische Überlastung zu verhindern, funktionierte auch nicht. Leider gibt es beim Arduino keine einfache Möglichkeit des Debuggens, und in der späten Stunde war der Fehler nur schwer durch bloßes Grübeln zu entdecken. Sonntags war das Wetter zu schön zum Basteln, so lag das Projekt dann halbfertig erst mal nur rum.

Mithilfe des Debuggers des kleinen Mannes (Serial.print()) stellte sich der Fehler wie erwartet als Kleinigkeit heraus: Um ein bisschen Rechenzeit zu sparen, habe ich beim Strobo-Programm auf die Arduino-eigenen DigitalWrite() verzichtet und stattdessen die MOSFETs direkt über eine Portmanipulation geschalten. Leider habe ich dabei auch den internen Pull-up vom Interrupt-Pin deaktiviert. So hing der arme µC dann dauerhaft in der Interrupt Service Routine fest, das erklärt auch warum der Schutztimer nicht mehr hochlief wie er soll. Ende gut, alles gut!

qrpyyir4yvjvk

Hier zu sehen der Betrieb als Larson-Scanner mit variierender Geschwindigkeit.