LED Laterne

Veröffentlicht von Joe-C (jch) am Dec 18 2013
Mikrocontroller >>

Index

Zurück zur Übersicht

Einleitung

zurück zum Index


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

zurück zum Index


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

Ausblenden / Schließen


 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

Die Datei 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

Laterne.zip (0.3 MB)

Tasche

zurück zum Index


...folgt später...

zurück zum Index




 

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

Zurück