Der LED-Weihnachtsbaum ist eine in Tannenbaum-Form ausgesägte Platine mit verschiedenfarbigen LEDs, die von einem Mikrocontroller angesteuert werden. (September 2009, überarbeitet März 2015)

LED-Weihnachtsbaum
Rückseite
LED-Weihnachtsbaum in Betrieb
LED-Weihnachtsbaum
Rückseite
LED-Weihnachtsbaum in Betrieb

Die Platine ist 73,66 mm breit und 91,44 mm hoch. Im Zentrum befindet sich der Mikrocontroller, welcher die LEDs ansteuert. Es wurden 15 SMD-LEDs in der Bauform 0603 in den Farben Rot, Orange, Gelb, Grün, Blau und Weiß verbaut. Der verwendete Mikrocontroller ist ein ATtiny2313 aus der AVR-Familie von Atmel. Über die fünf verzinnten Flächen kann ein ISP-Programmiergerät mit dem Mikrocontroller verbunden werden.

Über eine zweipolige abgewinkelte Stiftleiste auf der Rückseite wird die Betriebsspannung von 5 V zugeführt. Mit dem abgebildeten Kabel mit USB-Stecker kann der LED-Weihnachtsbaum an einem USB-Steckernetzgerät oder an der USB-Schnittstelle eines PCs betrieben werden. Aus 2,5-mm²-Kupferdraht wurde ein Drahtgestell zur Aufstellung der Platine gebogen und gelötet.

Die zum Nachbau benötigten Dateien können hier heruntergeladen werden: led-weihnachtsbaum.zip. Im ZIP-Archiv sind unter anderem der Schaltplan und das Layout jeweils als EAGLE- und PDF-Datei enthalten. Das Programm liegt als Quelltext und in assemblierter Form als Intel-HEX-Datei vor. Bei einem fabrikneuen ATtiny2313 müssen keine Änderungen an den Fuse-Bits vorgenommen werden, da das Programm mit den werksseitig gesetzten Fuses arbeitet.

Das Programm im ATtiny2313 arbeitet einfach eine Liste von im Programmspeicher abgelegten Datensätzen ab, in denen die Zustände der LEDs sowie die Anzeigedauer festgelegt sind. Ein Datensatz besteht aus drei Bytes. Das erste Byte gibt die Anzeigedauer an. Der Wert dieses Bytes für eine bestimmte Anzeigedauer in Sekunden berechnet sich wie folgt: Wert = (Anzeigedauer ⋅ 3906,25 − 1) ÷ 256. Das zweite Byte gibt die Zustände der LEDs an Port B an. Beim dritten Byte geben die sieben unteren Bits die Zustände der LEDs an Port D an. Das achte und höchstwertigste Bit zeigt das Ende der Liste an. Wenn dieses Bit gesetzt ist, wird die Abarbeitung am Anfang der Liste fortgesetzt.