LED-Kerze (Teil 2)

Licht Weihnachten DIY

Es werde Licht! Heute bauen wir die Elektronik für unsere LED-Kerze.

Fertigstellung der LED-Kerze

Im letzten Teil dieses Projekts haben wir einen Kerzenständer und einen passenden Kerzenschirm gebaut. In diesem zweiten Teil werden wir uns um die Elektronik kümmern. Es ist an der Zeit, dass wir unsere LED-Kerze zum Leuchten bringen. Dafür werden wir einen kleinen Mikrocontroller verwenden: den ATtiny85.

Die Elektronik wird in zwei Baugruppen aufgeteilt. Die LED-Schaltung mit dem Mikrocontroller und eine separate Platine für den Batteriehalter. Später werden beide Komponenten zur LED-Kerze zusammengefügt. Die LED-Schaltung auf einer separaten Platine zu haben, macht den Aufbau kompakter und ermöglicht es uns, die Platine über einen Arduino Uno mit Strom zu versorgen, während wir den Mikrocontroller programmieren.

Erforderliche Komponenten für die LED-Kerze

Für den Bau der Elektronik benötigst du:

  • 2x Lochrasterplatinen (einseitig, 11x8 Löcher, 2,54 mm Rastermaß)
  • 2x Buchsenleisten (4-polig)
  • 2x Stiftleisten (4-polig)
  • 1x ATtiny85
  • 1x Schalter
  • 1x 68 Ω oder 100 Ω Widerstand
  • 1x 10 kΩ Widerstand
  • 1x 100 nF Keramikkondensator
  • 1x CR2032-Knopfzelle + Clip

Zusätzlich werden folgende Werkzeuge benötigt:

  • Arduino Uno und sechs Verbindungsleitungen (Buchse auf Stecker) für die Programmierung
  • Lötkolben, Lötzinn, Seitenschneider
  • Heißklebepistole und Heißkleber
  • Bohrer mit passender Größe für die Kontakte des Batterieclips

Los geht's!

Aufbau der LED-Schaltung

Beginnen wir mit der LED-Schaltung. Die Schaltung selbst ist ziemlich einfach. Eine LED wird über einen 68 Ω-Widerstand an den ATtiny85 angeschlossen. Ein Schalter dient zum Ein- und Ausschalten der Versorgungsspannung. Zusätzlich wird ein 100 nF Kondensator zu den Versorgungsleitungen hinzugefügt und ein 10 kΩ Pull-Up-Widerstand wird an den Reset-Pin angeschlossen, um unbeabsichtigte Resets zu verhindern. Diese letzten beiden Komponenten sind zwar sinnvoll, aber nicht zwingend für die Funktion der Schaltung erforderlich.

Die fertige Schaltung sieht dann so aus:

Gehen wir den Bauprozess Schritt für Schritt durch:

Einlöten der Bauteile für die LED-Schaltung

Löte zunächst die einzelnen Bauteile gemäß der Breadboard-Ansicht ein. Beginne mit dem flachsten Bauteil und arbeite dich dann nach oben vor. Achte dabei auf die richtige Ausrichtung der Bauteile. Pin 1 des ATtiny85, der durch einen kleinen Punkt gekennzeichnet ist, muss sich oben links befinden. Die Kathode (-) der LED, die mit einem abgeflachten Kannte am Gehäuse markiert ist, muss sich auf der rechten Seite befinden.

Vorder- und Rückseite der Platine mit der LED-Schaltung

Nachdem du alle Bauteile verlötet hast, ist es an der Zeit, die Verbindungen zwischen den einzelnen Bauteilen herzustellen. Dazu kannst du dünne Drähte verwenden, massive Lötbahnen erstellen oder die abgeschnittenen Drahtenden der Bauteile nutzen. Die Verbindungen sind in der Breadboard-Ansicht, dem Schaltplan und im Bild oben dargestellt. Die Leiterplatte wurde in horizontaler Richtung umgedreht.

Fixieren des Schalters mit etwas Heißkleber

Je nach genutztem Schalter kann es erforderlich sein, diesen zu fixieren, damit er beim wiederholten Drücken nicht abreißt. Hierfür kannst du Heißkleber verwenden und den Bereich hinter dem Schalter ausfüllen. Dies verleiht dem Schalter zusätzliche mechanische Stabilität. Der Schalter sollte jedoch nicht zu sehr erhitzt werden, da sich sonst das Kunststoffgehäuse verformen könnte. Achte auch darauf, dass der Kleber nicht in den Schalter gelangt.

Bau des Batteriehalters

Weiter geht's mit dem Bau des Batteriehalters. Das Bild unten zeigt die Breadboard-Ansicht und den Schaltplan dafür:
Breadboard-Ansicht und Schaltplan für den Batteriehalter

Vorbereiten der Lochrasterplatine für die Batterieklemme

Als Erstes muss die Lochrasterplatine für die Batterieklemme vorbereitet werden. In der Regel sind die Kontakte des Batterieclips zu groß für die normalen 0,8 mm Löcher in der Lochrasterplatine. In diesem Fall musst du zwei Löcher für die Kontakte deines Batterieclips bohren. Anschließend löte zwei blanke Metalldrähte ein, die den Kontakt zur Unterseite der CR2032-Knopfzelle herstellen. Du kannst dafür z.B. die abgeschnittenen Drahtenden der Bauteilen der LED-Schaltung verwenden.

Vorder- und Rückseite der Lochrasterplatine mit dem Batteriehalter

Nachdem du die Platine vorbereitet hast, ist es an der Zeit, den Batterieclip und die Buchsenleisten einzulöten. Achte auf eine feste Lötverbindung zum Batterieclip. Die Verbindung wird mechanisch verhältnismäßig stark beansprucht werden. Beim Verbinden des Batterieclips mit den Buchsenleisten ist es wichtig, auf die richtige Ausrichtung zu achten. Die Platine ist horizontal umgedreht worden, der Schaltplan zeigt die Anschlüsse von oben.

Zusammenbau der Module

Nachdem wir nun beide Module gebaut haben, können wir sie nun miteinander verbinden. Das Bild unten zeigt den finalen Aufbau. Beachte, dass die LED nicht leuchten wird, bevor wir nicht den ATtiny85 programmiert haben.

Finale LED-Kerzenkonstruktion mit Batteriehalter und LED-Schaltung

Wichtig ist es, die Module nicht verkehrt herum zusammenzusetzen. Die Öffnung des Batterieclips sollte nach unten zeigen, die LED nach oben. Um sicherzugehen, kann man einen nicht benötigten Pin, z.B. den dritten pin auf der Linken Seite, abschneiden und den entsprechenden Pin am Batteriemodul blockieren, wie es im Bild unten gezeigt wird. Dies macht es unmöglich, beide Module verkehrt herum ineinander zu stecken

Mechanischer Verpolungsschutz durch Abschneiden eines Pins und Blockieren des entsprechenden Lochs am Batteriemodul

Programmieren des ATtiny85

Um die LED zum Leuchten zu bringen, müssen wir den ATTiny85 programmieren. Dazu habe ich ein kleines Programm vorbereitet, das die LED über PWM ansteuert. Das Programm ändert die Helligkeit zufällig. Dazu errechnet es einen Zufallswert, der zur aktuellen Helligkeit addiert wird, um den neuen Zielwert zu definieren. Danach wird in einer Schleife die Helligkeit langsam an den Zielwert angepasst. Dies erzeugt einen angenehmen und ruhigen Flackereffekt, der durch Ändern der Konstanten für Geschwindigkeit, Varianz und Helligkeit angepasst werden kann.

Hier ist der Code für dieses Programm:

const int outputPin = 4;

void setup() {
  randomSeed(0);
  pinMode(outputPin, OUTPUT);
}

const int maxValue = 200;
const int minValue = 0;
const int variance = 20;
const int fadeSpeed = 100;

int targetValue = 50;
int value = 50;

void loop() {
  targetValue += random(variance*2)-variance;
  targetValue = max(targetValue, minValue);
  targetValue = min(targetValue, maxValue);

  while(value < targetValue) {
    value++;
    analogWrite(outputPin, value);
    delay(fadeSpeed);
  }

  while(value > targetValue) {
    value--;
    analogWrite(outputPin, value);
    delay(fadeSpeed);
  }
}

Es gibt nur ein kleines Problem: Wie können wir dieses Programm auf den ATtiny85-Mikrocontroller laden? Nun, da der ATtiny85 keine USB-Unterstützung besitzt, ist es nicht möglich, ihn direkt an einen Computer anzuschließen. Wir müssen ihn mit einem speziellen Programmiergerät programmieren. Glücklicherweise können wir den Arduino Uno als ein solches Programmiergerät verwenden. Dieser Vorgang wird im Folgenden erklärt.

Zuerst müssen wir die Unterstützung für die ATtiny85 Hardware zur Arduino IDE hinzufügen. Dies ermöglicht es uns, ein Programm für diesen zu kompilieren. Zu diesem Zweck verwenden wir die ATTinyCore-Bibliothek, die von SpenceKonde bereitgestellt wird. Um sie zu installieren, folge der unten verlinkten Installationsanleitung.

Der nächste Schritt besteht darin, den Arduino Uno für die Verwendung als Programmiergerät vorzubereiten. Dazu müssen wir ihn mit dem Arduino ISP-Sketch programmieren. Du findest diesen Sketch unter Datei > Beispiele > 11. ArduinoISP > ArduinoISP. Öffne ihn und lade ihn auf den Arduino Uno. Achte darauf, dass du dabei Arduino Uno als Board ausgewählt hast.

Arduino Uno als Zielplattform auswählen

Wir haben nun den Arduino Uno für den Einsatz als Programmiergerät vorbereitet. Um den ATtiny85 zu programmieren, müssen wir ihn mit dem Arduino Uno verbinden. Dies ist in der folgenden Abbildung dargestellt.

Verbinden des ATtiny85 an einen Arduino Uno zur Programmierung

Wenn alles verkabelt ist, ist es an der Zeit, unser LED-Kerzen-Programm auf den ATtiny85 zu laden. Dazu musst du als Board ATtiny25/25/85 (No bootloader) auswählen. Reduziere außerdem die Taktfrequenz auf 1 MHz, damit der ATtiny85 auch dann noch zuverlässig läuft, wenn die Batteriespannung mit der Zeit abnimmt. Danach wählst du Arduino as ISP als Programmer und lädst den LED-Kerzen-Code auf den ATtiny85.

Auswählen der notwendigen Optionen für den ATtiny85

Das Ergebnis

Geschafft! Du hast jetzt deine ganz eigene LED-Kerze. Die LED sollte jetzt aufleuchten und du solltest ein ähnliches Ergebnis wie in dem Video unten sehen. Der Effekt ist aufgrund seiner langsamen Geschwindigkeit kaum sichtbar. Wenn du jedoch durch das Video scrollst, wird er deutlich.

Übrigens habe ich auch einen kleinen Hut aus weißem Transparentpapier auf die LED gesetzt. Dadurch wird das Licht besser gestreut und leuchtet den Kerzenschirm gleichmäßiger aus.

Verbesserung der Lichtstreuung durch Hinzufügen eines kleinen Hütchens aus weißem Transparentpapier

Zum Schluss, möchte ich dir ein frohes Weihnachtsfest und ein gutes neues Jahr wünschen. Gott segne dich!

Vorheriger Beitrag Nächster Beitrag