Jedes Jahr, wenn Weihnachtsstimmung aufkommt, schmücken wir unsere Wohnungen oder Häuser mit Weihnachtsschmuck und Weihnachtsbeleuchtung. In diesem Projekt werden wir eigenen beleuchteten Weihnachtsschmuck anfertigen. Es wird ein Mikrocontroller verwendet, um die Farbe der Beleuchtung in einem bestimmten Rhythmus automatisch ändern zu lassen.
Wir entwerfen drei Ornamente: einen Würfel mit weihnachtlichen Motiven auf seinen Seiten, eine Laterne und unsere eigene Weihnachtskugel. Für die Beleuchtung nutzen wir einen Ring mit 8 RGB-LEDs und zur Steuerung einen Mikrocontroller AZ-Nano V3-Board Atmega328. Das Projekt soll als Anstoß dienen, damit Sie Ihrer eigenen Kreativität freien Lauf lassen können und eigene Objekte entwerfen.
Lassen Sie uns mit diesem Weihnachtsprojekt beginnen.
Benötigte Hardware und Materialien
- 1 AZ-Nano V3-Board Atmega328
- 3 RGB LED Ring 8 bit WS2812 5050 + integrierter Treiber
- (alternativ: LED Ring 5V RGB WS2812B 12-Bit 37mm)
- (alternativ: LED Ring 5V RGB WS2812B 12-Bit 50mm)
- 1 MB 102 Breadboard Kit - 830 Breadboard
- Ultraflexibles verzinntes Silikonkabel Schaltlitzen Kit
- 3 mm dicke Balsaholzplatten / Pappelsperrholz
- weißer Holzleim
- weiße Küchenrolle
- Luftballon
- weißes Papier
- Holzfarbe
Benötigte Software und Sketch
- Arduino IDE
- Adafruit_NeoPixel.h library (über Bibliotheksverwalter)
- Christmas_tree_ornaments.ino
Schaltplan
Die drei WS2812 LED-Ringe sind mit den digitalen Pins 7, 8 und 9 des AZ-Nano Mikrocontrollers verbunden. Die erforderliche 5 VDC-Spannung wird vom Netzteiladapter geliefert. Statt den Nano über den USB-Port mit Strom zu versorgen, können Sie auch den VIN-Pin verwenden.
Montage
Die Weihnachtskugel besteht aus Küchenpapier. Für den Bau verwenden wir einen Ballon, den wir auf die gewünschte Größe aufblasen. Wir verdünnen Holzleim in Wasser im Verhältnis 1:1 und kleben Küchenpapierstücke mit dem verdünnten Leim auf den Ballon. Schichten Sie das Papier auf, bis die gewünschte Dicke der Kugel erreicht ist. Lassen Sie sie ein paar Tage trocknen, bis sie vollständig getrocknet ist. Durchstechen Sie dann den inneren Ballon, so dass er platzt und die Kugel ist fertig. Je nachdem, wie Sie das Küchenpapier aufbringen, entstehen Muster. Je mehr Schichten Sie aufbringen, desto dunkler werden diese Stellen.
Für die Installation des LED-Rings innerhalb der Kugel gibt es zwei Möglichkeiten: Die erste besteht darin, die Kugel mit einem Messer in der Mitte zu zerschneiden, um den LED-Ring in einer Hälfte zu installieren, die Kabel und die Aufhängeschnur durchzuführen und dann die Hälften mit etwas Leim wieder zu verbinden. Die andere Möglichkeit besteht darin, nur einen Teil der Kugel mit einem Durchmesser etwas größer als der des LED-Rings abzuschneiden, den LED-Ring zu installieren und in der Mitte der Kugel ein Loch für die Kabel und die Aufhängeschnur einzuschneiden.
Die Teile des Würfels und der Laterne sind aus Balsaholz bzw. Pappelsperrholz gefertigt. Für die bessere Montage sind die Kanten nicht gerade geschnitten, sondern mit Nut und Feder versehen. Für die Laterne werden die Kanten leicht angeschliffen, da Ober- und Unterteil in einem schrägen Winkel zueinanderstehen.
Im Inneren der Seitenteile wird weißes Papier mit den entsprechenden Abmessungen aufgeklebt. In diesem Projekt habe ich aus dem Papier Formen gefaltet der Laterne und des Würfels gefaltet, die dann dort hineingelegt und befestigt werden. Dadurch wird das Licht diffus und besser sichtbar.
Zuletzt können Sie das Holz noch mit Farbe versehen.
Im folgenden Bild sind die Maße zu sehen (hier sind die Nuten und Federn nicht eingezeichnet).
Hinweis: wenn Sie einen anderen LED-Ring verwenden, achten Sie auf die Größe und passen Sie eventuell Ihre Bauteile daran an.
Beschreibung der Funktion und des Sketches
Jedes Ornament, das wir gebaut haben, ändert die Farbe seiner Beleuchtung in den von uns ausgewählten Farben und in regelmäßigen Zeitabständen. Schauen wir nun auf den Sketch.
Zuerst werden die erforderlichen Bibliotheken inkludiert. Die einzige Bibliothek, die in diesem Projekt installiert werden muss, ist die NeoPixel-Bibliothek von Adafruit, um die LED-Ringe nutzen zu können. Die LEDs sind nummeriert und können einzeln angesteuert werden.
#include <Adafruit_NeoPixel.h>
Die folgenden vier Zeilen enthalten die Variablendefinitionen für die Verbindungen der Ringe zum Mikrocontroller und die Variable zur Festlegung der Anzahl der LEDs der Ringe.
#define cube_ring_LED 7 #define lantern_ring_LED 8 #define ball_ring_LED 9 #define number_LEDs_ring 8
Hinweis: wenn Sie einen LED-Ring mit mehr LEDs verwenden, müssen Sie für die Konstante number_LEDs_ring hier statt 8 den Wert für die Anzahl eintragen.
Um jeden LED-Ring einzeln anzusprechen, muss je ein Objekt der NeoPixel-Bibliothek erzeugt werden. In den Argumenten müssen die Anzahl der LEDs pro Ring, die Pins am Mikrocontroller, an denen jeder Ring angeschlossen ist, sowie die Eigenschaften jedes Rings, nämlich RGB LEDs (NEO_GRB) und die Betriebsfrequenz von 800 kHz (NEO_KHZ800), angegeben werden.
Adafruit_NeoPixel cube_ring(number_LEDs_ring, cube_ring_LED, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel lantern_ring(number_LEDs_ring, lantern_ring_LED, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel ball_ring(number_LEDs_ring, ball_ring_LED, NEO_GRB + NEO_KHZ800);Als Nächstes wird die Definition der Variablen für die Farben jedes Rings mit den RGB-Werten jeder Farbe durchgeführt. Hier sehen Sie die Variablen für den Würfelring. Im Sketch finden Sie die Werte für die Ringe der Laterne und der Weihnachtskugel.
uint32_t cube_color_red = cube_ring.Color(150,0,0); uint32_t cube_color_green = cube_ring.Color(0,150,0); uint32_t cube_color_blue = cube_ring.Color(0,0,150); uint32_t cube_color_yellow = cube_ring.Color(150,150,0); uint32_t cube_color_purple = cube_ring.Color(150,0,150); uint32_t cube_color_light_blue = cube_ring.Color(0,150,150); uint32_t cube_color_white = cube_ring.Color(150,150,150); uint32_t cube_color_black = cube_ring.Color(0,0,0);
Nachdem die Bibliotheken implementiert und die Variablen deklariert wurden, müssen die LED-Ringe initialisiert werden. Der Anfangszustand, wenn Spannung angelegt wird oder der Mikrocontroller zurückgesetzt wird, wird in der setup()-Methode konfiguriert. Der Ausgangszustand für die LEDs der Ringe ist AUS.
cube_ring.begin(); lantern_ring.begin(); ball_ring.begin(); cube_ring.Dégager(); lantern_ring.Dégager(); ball_ring.Dégager();
Danach beginnt die Ausführung der loop()-Methode, die kontinuierlich läuft und damit die Farben dauerhaft verändert werden. Die aufgerufenen Methoden bestimmen die Farben des jeweiligen RGB-Rings. Die erste aufgerufene Methode ist die Beleuchtung des Würfels mit der Farbe Rot.
cube_red();
In der Methode wird zuerst die Helligkeit der LEDs auf die Hälfte des maximalen Werts (125 von 254) eingestellt. Dann wird eine Schleife ausgeführt, die von der ersten LED an Position 0 bis zur letzten LED an Position 7 (insgesamt 8 LEDs) läuft, sie auf die rote Farbe setzt und einschaltet. Es wird eine Pause von 200 Millisekunden zwischen den LEDs eingelegt, um einen sanften Übergang zwischen den Farbwechseln jedes Rings zu erreichen. Anschließend wird noch einmal pausiert, bevor die Methode verlassen und zur loop() zurückgekehrt wird. Anschließend wird die Methode lantern_yellow() aufgerufen, die genauso aufgebaut ist. Unterschied ist der Ring und die Farbe.
void cube_red() { cube_ring.setBrightness(125); for (int i=0; i<number_LEDs_ring; i++) { cube_ring.setPixelColor(i, cube_color_red); cube_ring.show(); delay(200); } delay(3000); }
Im Sketch sind die Befehle kommentiert, um sie nachvollziehen zu können. Wir hoffen, dass Sie Spaß daran haben, dieses Projekt zur Weihnachtsdekoration durchzuführen.
Tipp: Wenn Sie drei ESP8266 oder ESP32 mit Akkus verwenden, können Sie die Elektronik separat in den Lampen unterbringen und sogar per Webportal oder Android App steuern. Lassen Sie sich dazu von unseren anderen Projekten inspirieren
Wir wünschen Ihnen ein frohes Weihnachtsfest.
Sollte an dieser Stelle kein Video angezeigt werdern, müssen Sie die Cookies in ihrem Webbrowser zulassen.