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.

 

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s