NL239141
Projects
Actieve LED-kerstboom
Met uitgebreide lichtshow en doorlusmogelijkheid Willem Tak (Nederland)
Zelfs bij de kerstartikelen is elektronica tegenwoordig niet meer weg te denken. Moesten we het vroeger meestal doen met een keten van gloeilampjes die hooguit konden knipperen, nu kunnen we kiezen uit vele soorten LED-verlichting met ingebouwde lichteffecten. Maar als echte elektronicus kun je dat natuurlijk beter en uitgebreider zelf maken, zoals deze kerstboom die met 56 LED’s een uitgebreide lichtshow van meer dan drie kwartier laat zien.
Het wordt weer tijd om de kerstspullen van zolder te halen en te gaan kijken voor een (echte of namaak) kerstboom. Gelukkig wordt zo’n kerstboom nog maar zelden voorzien van echte kaarsjes, die zijn al lang vervangen door minigloeilampjes of zelfs LED’s. Dat geldt ook voor de overige kerstversieringen, daarin worden steeds meer LED’s toegepast die worden aangestuurd door een elektronische schakeling. De auteur van de hier beschreven elektronische kerstboom wilde een mini-kerstboompje maken dat toch net wat exclusiever is dan de standaard producten in bouwmarkt of tuincentrum. Dat resulteerde in een schakeling die bestaat
uit niet veel meer dan een microcontroller en 56 lichtgevende dioden. De LED’s zijn op een print in klassiek kerstboomgelid opgesteld, zoals u kunt zien op de kopfoto. De intelligentie zit - zoals gebruikelijk bij dit soort schakelingen - in de software! Die zorgt er voor dat de microcontroller de kerstboom in de meest interessante patronen laten oplichten (bekijk de video op [1]). Het is zelfs mogelijk twee van deze boompjes aan elkaar te koppelen, waarna de geproduceerde patronen zelfs heen en weer kunnen lopen tussen de twee boompjes. Het resultaat is een verbazend effectieve blikvanger wanneer deze in de vensterbank worden gezet. En er zitten meer dan
26 | december 2012 | www.elektor.nl/tijdschrift Personal Download for Jansen, E | copyright Elektor
NL239141
LED-kerstboom
D45
D44
D43
D42
D41
D40
D39
D38
D37
D36
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
D21
D20
D19
D18
D17
D16
D15
D14
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
C0
D46
C1
D47
C2
D48
C3
D49
C4
D50
C5
D51
C6
D52
C7
D53
A0
A2
A3
A4
A5
D54
8
7
6
5
4
3
2
1
K1
4k7
R13
R12
R11
R10
1
R9
C2
2
R8
C3
20
3 C0
C4
R1
4 C1
5
R7
6
R6
7
C6
C7
A0
A1
A2
A3
A4
A5
B0
8 C5
K4 16 15 14 13 12 11 10 9
R8...R13 = 680R; 820R; 1k
VDD 1 2 3 4 5 6
K1 +5V
7 21
2 1
27 R14
26 25
3
K2 1 C1 47u
2
24
MCLR/VPP
RC7
IC1
RC6
RA0
RC5
RA1
RC4
RA2
RC3
RA3
RC2
RA4
RC1
RA5
RC0
PIC18F2685
RB0
RB1 RB6 RB5
RB2
RB4 RB3
RB7
VSS OSC1 8
9
OSC2 X1
C3
18 17 16 15 14 13 12 11 22 23
R2 0R R3
K3
R4 0R
1
4k7
2 3
28 R5
4
VSS
10
19
C2
5
330R
Vanwege de matrix-opstelling (elke LED licht slechts gedurende 1/7 van de tijd op) en de beperkte stromen die de controller kan leveren, lichten de aangestuurde LED’s niet extreem helder op, maar de schakeling is dan ook bedoeld om in een niet al te heldere omgeving gebruikt te worden (een sfeervol verlichte huiskamer bijvoorbeeld). De auteur gebruikte rondom stralende LED’s van de firma SBL [2] en bereikte daarmee een bruikbaar resultaat. Goede resultaten worden vooral dan verkregen wanneer u geen normale LED’s gebruikt, maar heldere LED’s met een hoog optisch rendement. De uitgangen van de controller kunnen elk met maximaal 25 mA worden belast. Ten gevolge van het multiplexen betekent dat zodoende ongeveer 3 mA per LED; in het donker kan dat zelfs al te veel zijn. De acht weerstanden in de aansluitingen van poort C bepalen de stroom door elke LED. Afhankelijk van de gewenste helderheid kunt u hiervoor
D55
16 15 14 13 12 11 10 9
4k7
Aangezien de optische effecten hier een belangrijke rol spelen en het niet de bedoeling is dat men na korte tijd weer dezelfde patronen voorbij ziet komen, heeft de auteur gekozen voor een microcontroller met een flinke hoeveelheid geheugen. Dat is het type 18F2685-E/SP van Microchip geworden, een microcontroller die is uitgerust met 96 KB flash-geheugen (dus 96 KB programmeerruimte). Dat geheugen is overigens bijna helemaal vol met het huidige programma, vandaar ook de zeer lange looptijd van ruim 50 minuten. De microcontroller wordt via een gangbaar 24-MHz-kristal extern geklokt (de interne klok van 8 MHz bleek voor sommige patronen niet snel genoeg te zijn). De schakeling zelf (figuur 1) is heel eenvoudig: de LED’s worden in een 8x7-matrix rechtstreeks door de controller aangestuurd. De 7 kolommen van elk 8 LED’s worden door de pennen A0...A5 plus BO beurtelings met de positieve voedingsspanning verbonden. Daarbij worden de rijen van elk 7 LED’s door de uitgangen van poort C via weerstanden naar massa getrokken. De niveaus op de C-uitgangen bepalen dus welke LED’s van een kolom oplichten, terwijl de A- en B0-uitgangen voor het multiplexen van de kolommen zorgen.
B0
Weinig elektronica, veel geheugen
D56
A1
alleen maar een paar simpele effecten in - de cyclustijd waarna de hele voorstelling zich herhaalt, bedraagt maar liefst 40 minuten!
D1
24MHz 22p
22p 120634 - 11
weerstanden met een waarde van 680 Ω, 820 Ω of 1 kΩ nemen. Via een sync-aansluiting (pen 22 en 23, uitgevoerd naar K3) kunnen twee elektronische kerstbomen aan elkaar worden gekoppeld. Bepaalde patronen springen dan van de ene boom over op de andere. Om dit effect te bereiken worden twee kerstbomen via pen 22 en 23 kruislings met elkaar verbonden. De software bepaalt of een boompje een linker of een rechter exemplaar is. De l-versie staat (zoals te verwachten) voor
Figuur 1. Simpeler kan het haast niet: een microcontroller stuurt rechtstreeks 56 in een matrix opgestelde LED’s aan. Het leeuwendeel van het werk zit in een uitgebreid programma dat de aansturing verzorgt.
| december 2012 | 27 Personal Download for Jansen, E | copyright www.elektor.nl/tijdschrift Elektor
NL239141
Projects
K3 C2
C1
C3
5V
5
1
R1
X1
D1
R4
IC1
Figuur 2. De print voor de microcontroller met enkele passieve componenten. Een handige elektronicus kan dit ook makkelijk opbouwen op een stuk experimenteerprint.
R5
K1 R13
R11 R3
R9 R8 1
R10
R12
K4
R14 K2
R7 R6
R2 16
1
linker boompje en de r voor rechter. De effecten zijn zodanig geschreven dat een linkerboompje in vooraanzicht ook links staat. De status-LED aan pen RB7 is niet noodzakelijk. Bij het inschakelen van de voedingsspanning of een reset zal deze enkele malen snel knipperen. Zo kan de correcte werking van de PIC en inhoud worden getest. Voor de voeding kan men het beste een 5-V-netadapter nemen, elke standaard adapter is voldoende voor zeker 2 boompjes. Bij 2 gekoppelde boompjes kan men de voedingsdraden samen met de synchronisatielijnen mee laten lopen (allemaal aanwezig op connector K3). In figuur 2 en 3 zijn de printjes te zien die voor het kerstboompje zijn ontworpen. Deze zijn via Elektor verkrijgbaar [1]. Het opbouwen is gemakkelijk, er zijn alleen maar bedrade componenten gebruikt. Voor de verbinding tussen de microcontroller en de display-print kan men het beste een stukje 16-aderige flatcable nemen. De software voor deze schakeling kan gratis worden gedownload van de Elektor-website [1]. Er zijn aparte versies voor een linker en een rechter boompje, houd hier rekening mee bij het programmeren. Bouwt u maar één boompje, dan maakt het niet uit welke software u in de PIC zet. Op de website staan ook een demo-video van de auteur en de bestanden voor de print-layouts voor degene die zelf zijn printjes wil etsen. Wanneer u niet genoeg hebt aan de standaard aangeboden patronen en eigen effecten wilt creëren, dan kunt u zelf aan de slag gaan met de beschikbare source-code. Maar bij een programmaduur van meer dan 50 minuten zullen de voorgeprogrammeerde lichtpatronen niet zo snel gaan vervelen... (120634)
Weblinks
Figuur 3. Zo ziet de (dubbelzijdige) print met de LED’s in kerstboomvorm er uit.
[1] www.elektor.nl/120634 [2] www.superbrightleds.com
Onderdelenlijst
C2,C3 = 22 p ker.
Controller-print
Halfgeleiders:
Weerstanden:
R1,R4,R14 = 4k7 R2,R3 = draadbrug R5 = 330 Ω (optioneel) R6...R13 = 680 Ω (of 820 Ω of 1 k, zie tekst)
Condensatoren: C1 = 47 µ/16 V
D1 = LED rood, 3 mm (optioneel) IC1 = PIC18F2685-E/SP (Microchip)
Diversen: X1 = kristal 24 MHz K1 = voedingsconnector (bijv. Lumberg 1613 20) K2 = 2-pens SIL-header (optioneel)
K3 = 5-pens SIL-header K4 = 16-pens-SIL-header (of stukje 16-aderige flatcable) evt. druktoets voor modus en reset Print 120634-1 (zie [1]) LED-Print D1...D56 = high-efficiency-LED 5 mm K1 = 16-pens-SIL-header (zie K4 controller-print) Print 120634-2 (zie [1])
28 | december 2012 | www.elektor.nl/tijdschrift Personal Download for Jansen, E | copyright Elektor