PICAXE 18M2 LED Laterne

#Einleitung

Ein Kita Laternenumzug stand an und wir wollten mit. Da sowohl meine Frau als auch ich keine normalen Laternen wollten, war schnell der Entschluss gefasst, selbst was zu machen.

Kerzen machen zwar einen schönen Eindruck, aber 2 Kindern mit knapp über 1 Jahr sowas in die Hände zu drücken kam nicht in Frage. Eine LED Beleuchtung stand schnell fest, aber es sollte keine einfache Leuchte sein, es sollte einer Kerze zumindest ähnlich sein und etwas flackern.

Außerdem sollte das Licht keine einfache Laterne sondern eine kleine Tasche mit Lichtfenster erhellen. Und so kümmerte sich meine Frau um 2 Handtaschen mit leicht transparenten Seitenfenstern und ich mich um 2 LED-Kerzen + Batterien.

#LED Kerze

Um eine flackernde Kerze zu simulieren, wollte ich auf jeden Fall einen µC nehmen, da ich hier die besten Einstellungsmöglichkeiten habe. Würde ich mit Transistorschaltungen mit unterschiedlichen R-C Verbindungen verwenden, wäre es einerseits deutlich komplexer geworden und ließe andererseits nicht mehr so leicht eine Änderung zu.

So griff ich nach langer Zeit mal wieder zum Picaxe 18M2. Das ist der kleinste, in Frage kommende µC bei mir.
Zuerst hab ich einen auf einem Steckbrett platziert und ihn dafür Programmiert, das ein Pin langsam blinkt. Danach hab ich mit Transistor und LED getestet, ob es klappt, wie es soll. Nachdem die erste weiße 10mm LED geblinkt hat, folgte der Aufbau der LED-Leiste.

#LED Leiste

LED Leiste

Auf den Bildern links sieht man die LED-Leiste aus verschiedenen Blickrichtungen und im Einsatz.
Die verwendeten 10mm LEDs sind auf einen kleinen Öffnungswinkel ausgelegt, um wie ein Spot einen kleineren Bereich auszuleuchten.
Da aber vor allem seitlich das Licht abgestrahlt werden sollte und das möglichst nicht zu punktuell, hab ich mit einem Handfräser einen Keil in die LED-Kuppel gefräst. Statt das von unten kommende Licht nun oben zu bündeln, traf das Licht mittig auf die gefräste Fläche. Wegen ihrer diffusen Beschaffenheit, strahlte so das Licht nun seitlich und nach oben ab.

Mit 10mm sind die LEDs zwar ganz schön groß, aber sie leuchten so auch besser die Fläche aus. Ursprünglich kam mir der Gedanke gelbe und weiße LEDs zu mischen, um es Farblich etwas Kerzenähnlicher zu gestalten.
Letztendlich hab ich mich dagegen entschlossen, weil nutzen und Aufwand in einem unpassenden Verhältnis standen. Hinzu kommt noch, dass das Sichtfenster der noch entstehenden Tasche selbst Farben mitbringt.

#Schaltung

Schaltung

Die Schaltung war nach ein paar Probedurchläufen am Labornetzteil schnell gefunden. Ich hab sie nur zur Darstellung nochmal am PC aufgebaut. Verwendet wurde LTspice IV, welches kostenlos verfügbar, aber etwas Gewöhnungsbedürftig im Handling ist.

Durch die niedrige Spannung von 2.8V-3V kann ich die LEDs ohne Vorwiederstände an den Transistoren betreiben. Die Transistoren sind ziemlich überdimensioniert, da sie bis zu 10A schalten können. Eine LED zieht aber max. 100mA laut Datenblatt. Mein Labornetzteil zeigte für die ganze Schaltung sogar nur 0.15A wenn alle 4 LEDs an waren. Es war also bei beiden noch ordentlich Platz nach oben, aber es würde sonst zu hell werden.

Die Transistoren hatte ich mal irgendwo runter gelötet. Es sind PNP Transistoren, welche bei mir nun schon einige Jahre rumlagen. Daher stört es mich auch herzlich wenig, dass sie so unterlastet sind.
Für den µC sind die LEDs aber zu hoch im Verbrauch:
Sourced through chip : 70mA
Sunk through chip : 95mA
Sourced through all ports combined : 140mA
Sunk through all ports combined : 200mA
Sourced or sunk per pin : 25mA
Diese Angaben sind von Microchip, dem Hersteller des Picaxe Bausteins. Ich fand sie, auf der Suche nach der Belastbarkeit des µC, in einem Forum.

Beim durchsuchen meiner Komponenten bin ich auch auf 2 analoge Bewegungssensoren gestoßen. Die hatte ich damals für einen Roboter gedacht, damit er sich selbst auf den Beinen halten kann. Da die ebenfalls nur ungenutzt da lagen, hab ich sie gleich mit eingebunden.
Dadurch reagiert die LED-Kerze jetzt auch auf Bewegungen und flackert dann noch wesentlich heftiger. Dafür gab es in LTspice IV natürlich auch kein Bauteil. Da es aber nur darum ging, die 3Polige Beschaltung einzubinden, hab ich irgendwas 3poliges genommen... hier ein Modulator.

Im Quellcode unten sieht man, wie durch erzeugen von Zufallszahlen und dem Auslesen der Bewegungsspannung das Flackern berechnet wird.
Es sind zwar nur 4 LEDs... da sie aber teilweise durch PWM gedimmt werden, gibt es insgesamt 16 Helligkeitsstufen. Wobei es nicht nur Helligkeitsstufen sind, sondern auch Beleuchtungsfläche. Man sieht gewissermaßen wie das Licht nach oben "wächst".

    setfreq m16
    adcconfig %000
    input C.0,C.1,C.2
    symbol del_short = 200
    symbol LED = b10
    symbol A_Val = b11
    symbol cnt = b12
    symbol steps = b13
    LED = 16

main:   
    //;zufällig die oberste LED flackern lassen
    if LED > 13 then
        random w0
        //;w0 enthält nun eine Zufallszahl zwischen 0 und 65535
        //;je höher die abgefragte Zahl,
 desto seltener flackert die LED
        if w0 > 60000 then : LED = 13 : endif
    endif

    //;bei Bewegung das Licht reduzieren
    //;(starke Bewegung -> noch mehr reduzieren)
    readadc C.2,A_Val
    select A_Val
        case <70
        case >190
            LED = LED-10
        case <130
        case >160
            LED = LED-5
    endselect

    //;0-16 Grenze
    if LED > 16 then : LED = 0 : endif
    if LED < 16 then : inc LED : endif

    //;bis nur obersten LED schnell steigen,
 dann immer langsamer
    if LED < 13 then : steps = 1 : else : steps = LED+LED : endif
    for cnt = 0 to steps
        gosub dimm  
    next cnt

    goto main

dimm:   
    #rem
//  Diese Funktion führt zu einer Gesamtbeleuchtung in 16 Stufen
//  dafür werden die 4 LEDs teilweise durch PWM gedimmt
    #endrem

    select LED
        //;0 - 4 LED 3 unten
        case 0
            high B.0 : high B.1 : high B.2 : high B.3
        case 1
            high B.0 : high B.1 : high B.2
            low B.3 : high B.3
        case 2  
            high B.0 : high B.1 : high B.2
            low B.3 : pause 1 : high B.3
        case 3  
            high B.0 : high B.1 : high B.2
            low B.3 : pause 5 : high B.3
        case 4  
            high B.0 : high B.1 : high B.2 : low B.3
        //;5 - 8 LED 2
        case 5
            high B.0 : high B.1 : low B.3
            low B.2 : high B.2
        case 6  
            high B.0 : high B.1 : low B.3
            low B.2 : pause 1 : high B.2
        case 7  
            high B.0 : high B.1 : low B.3
            low B.2 : pause 5 : high B.2
        case 8  
            high B.0 : high B.1 : low B.2 : low B.3
        //;9 - 12 LED 1
        case 9
            high B.0 : low B.2 : low B.3
            low B.1 : high B.1
        case 10 
            high B.0 : low B.2 : low B.3
            low B.1 : pause 1 : high B.1
        case 11 
            high B.0 : low B.2 : low B.3
            low B.1 : pause 5 : high B.1
        case 12 
            high B.0 : low B.1 : low B.2 : low B.3
        //;13 - 16 LED 0 oben
        case 13
            low B.1 : low B.2 : low B.3
            low B.0 : high B.0
        case 14 
            low B.1 : low B.2 : low B.3
            low B.0 : pause 1 : high B.0
        case 15 
            low B.1 : low B.2 : low B.3
            low B.0 : pause 5 : high B.0
        case 16 
            low B.0 : low B.1 : low B.2 : low B.3
    endselect
    return

#Aufbau komplett

Aufbau komplett

Hier ein Blick ins fertige Innenleben.
Von außen sind nur (neben den LEDs) der BNC zur Stromversorgung und ein 3poliger Anschluss zum Programmieren (oder kommunizieren über RS-232) erreichbar. Dadurch kann ich das Teil einfach umprogrammieren und muss es nicht erst aufschrauben, wenn es mal soweit kommen sollte.

Der DC-DC Wandler macht aus rund 4.5V bis 30V meine Versorgungsspannung. Das LM2596 DC-DC Board, mit Mehrgangtrimmer zur Spannungseinstellung, war im 10er Pack für 12 Euro zu haben.
So brauch ich mich nur wenig um die Genauigkeit der Batterien kümmern. Verwendet hab ich 2 Li-Ion Akkus in Reihe.
Eine Schwachstelle gibt es da noch. Batterien mögen keine Tiefentladung (Besonders Li-Akkus sind dann hin), was bei diesem Aufbau passieren kann. Aber so lange wird die Laterne nicht im Betrieb sein. Für später könnte man aber einen der 10bit ADC Eingänge mit entsprechenden Vorwiederständen beschalten, sodass ein niedriger Batteriestatus mit Blinken angezeigt wird oder die LEDs gleich abgeschaltet werden.

Der analoge Bewegungssensor ist eine etwas ältere Komponente, was man an seiner Größe schon erahnen kann. Neben dem µC wirkt es fast wie eine kleine Batterie, finde ich.

Es sind noch sehr viele Pins unbenutzt, aber man kommt zumindest leicht ran. Geplant sind keine Änderungen, aber die Option halte ich mir immer gern offen, sofern umsetzbar.

#Lichtanpassung

Lichtanpassung

Die 4 LEDs leuchten nun schön weiß, aber das passt farblich nicht so gut zur Kerze.
Ursprünglich hatte ich den Gedanken, vorwiegend gelbe und nur wenig weiße LEDs zu nutzen.
Davon kam ich aber ab, da meine einzigen gelben 3mm LEDs sind und mir der Testaufbau mit der 10mm weißen gut gefiel.

Um das LED Licht etwas Kerzenähnlicher zu bekommen, hab ich mit Isolierband und Folienstreifen rumprobiert. Um die (relativ instabile) LED Konstruktion sollte außerdem noch eine Schutzhülle kommen.
Das Bild oben rechts zeigt eine Folie, welche bei TFT-Displays zu finden ist. Aber die Lichtverteilung ist auf kurze Distanz zu gering, daher blieb ich bei diffusen Materialien.

Das Kunststoffgehäuse ist ein zersägte "Zahnbürstendose Perlmutt". Sie verteilt das Licht ebenso nochmal recht gut.

#Download

led laterne (ZIP, 2.36 KB)

Die Datei led_Laterne.zip enthält:

  1. Laterne.bas (Picaxe Editor Programm für den µC)
  2. Schaltung.asc (LTspice Schaltung, siehe Bild oben)
  3. Picaxe_18M2.asy (LTspice Symbol)
    LTspice IV enthält normalerweise den Picaxe Baustein nicht. Deshalb hab ich ihn erstellt. Man braucht ihn nur bei sich einfügen.
    Bei mir ist der Ordner: C:\Program Files (x86)\LTC\LTspiceIV\lib\sym\Misc

Zuletzt geändert am: Dez 18 2013 um 7:38 AM

© by joe-c, 2023 - 2024. All Rights Reserved. Built with Typemill.