Diesmal bauen wir uns eine effektvolle, animierte und programmierbare Stimmungsleuchte, die sich sehr schön als funktionale Deko verwenden lässt. Hiermit können wir, vor allem nicht Technik affinen Mitmenschen zeigen, warum man so viel Zeit in sein Hobby investiert. Deshalb geht es im heutigen Projekt, mal nicht nur um Elektronik, sondern auch um das Basteln im Allgemeinen. Natürlich versteht sich dieses Tutorial nur als Anregung, insbesondere das Design liegt natürlich immer im Auge des Betrachters.

Stimmungslicht (Mood light) mit einem Olimexino-32U4 (Arduino Leonardo kompatibel) und einem digitalen RGB-LED-Strip (5050 LEDs mit WS2811-Controller) – leider kommt die schöne Farbwirkung auf dem Foto nicht sehr gut zur Geltung
Um es nur kurz vorweg zu nehmen, wir müssen natürlich vorher einige Besorgungen machen, verwendete Materialien mit Bezugsquellen finden sich am Ende des Artikels.
Bastelanleitung Stimmungsleuchte:
Der einzeln ansteuerbare verwendete LED-RGB-Strip hat zwischen den LEDs einen Abstand von ca. 16mm, da bietet es sich aufgrund einer symmetrischen Anordnung an, Acrylglasscheiben von 8mm Dicke zu verwenden, ohne den Strip extra teilen zu müssen. Wir verwenden hier daher 10 vorgeschnittene transparente Acrylglasscheiben (Plexiglas) mit den Abmessungen 50mm x 50mm x 8mm.
Zuerst nehmen wir uns diese mit einem Dremel und einer Trennscheibe oder einer Säge vor und schneiden an einer Ecke ein gleichschenkliges und rechtwinkliges Dreieck (ca. 10mm bei den gleichschenkligen Seiten) heraus, ohne die Schutzfolie allerdings vorher abzuziehen. Anschließend müssen alle 5 Schnittkanten der Acrylscheiben mit feinem Schleifpapier gründlich abgeschliffen werden. Eventuell mit 40er, dann 80er Körnung – falls die Schnittkanten zu rau und uneben sind – anschleifen und anschließend mit einer 120er Körnung fein nachbearbeiten. Man könnte natürlich auch gleich komplett fertig zugeschnittene und an den Seiten satinierte Acrylscheiben kaufen, jedoch wird dieses dann auch deutlich teurer.
Als nächstes bringen wir das Plastik-Profil (L, 90° rechtwinklig, ca. 20mm x 20mm) schwarz auf eine Länge von ca. 250mm (im Baumarkt gibt es diese Längen meist leider nicht, deshalb müssen wir kürzen). Dies geht wieder mit einem Dremel und einer Trennscheibe oder einer Säge.
Nun kleben wir die Acrylglasscheiben in das Plastik-Profil, eventuell kann der LED-Strip schon vorher darin fixiert werden (Kabel vorher anlöten!). Ein schwarzes Kabel macht übrigens, nicht so wie im Beispiel, wahrscheinlich mehr Sinn.
Kommen wir jetzt zum Boden. Hierfür eignet sich eine Acrylglasplatte in schwarz (Abmessungen ca. 140mm x 100mm x 10mm) wobei diese natürlich auch variabel ist, allerdings ist eine Dicke von mindestens 10mm empfehlenswert um der Lampe auch genügend Stabilität zu verleihen. Wir zeichnen hier ein Dreieck an, welches die Maße des L-Profils hat, welches später dort eingesteckt werden soll. Am besten bohrt man dafür 3 Löcher an den Ecken des Dreiecks und sägt dann mit Hilfe einer Laubsäge die Schlitze an den gleichen Schenkeln. (Mangels einer Laubsäge wurde beim Beispiel ein wenig gepfuscht und mit einem Dremel und Tennscheibe gearbeitet.) Anschließend wird noch eine kleine Ecke für die Kabelführung eingesägt oder gefeilt.
Jetzt kleben wir noch 4 Gummifüße unter die Bodenplatte, damit unser Kabel später auch frei liegen kann und stecken dann das Profil, inklusive Kabel, hinein bzw. hindurch.
Nun schneiden wir uns noch Abdeckungen für den Fußteil, oberhalb und zwischen den Acrylscheiben zurecht, dann sind der LED-Strip und das Kabel besser verdeckt. (Muss natürlich nicht gemacht werden, wenn die Technik zu sehen sein soll.) Die Klebekanten auf Rückseite der Abdeckungen schleifen wir für einen besseren Halt, mit einem ca. 45° Winkel, leicht an und kleben dann alle Abdeckungen vorsichtig ein.
Allerdings ist es besser vorher einen Funktionstest mit dem Strip zu machen (Schaltplan und Code unten).
Schaltplan (Verdrahtung):
Jetzt verbinden wir den LED-Strip (an dem wir das Kabel ja hoffentlich schon angelötet hatten) noch mit dem Arduino und der Stromversorgung:
Arduino (Uno, Nano, Pro Mini, Leonardo, Olimexino 32U4) |
RGB-Strip (WS2811) |
Stromversorgung 5V (zur Sicherheit ca. 500mA oder mehr) |
VCC | 5V+ | VCC 5V |
GND | GND | GND |
D12 | DIN |
mit der Maus über Elemente fahren (oder im Touch-Modus: Elemente antippen)...
Achtung, die gesamte Schaltung darf auf gar keinen Fall nur über die Stromversorgung des Arduinos erfolgen. Es wird eine externe 5V Spannungsquelle benötigt.
Programmcode (Sketch):
Vor dem Hochladen des Sketches auf den Arduino, müssen wir noch die FastSPI_LED2-Bibliothek installieren und dann kann es losgehen.
Der folgende Sketch beinhaltet ein einfaches animiertes Regenbogenfarbspektrum mit verschiedenen zufälligen Geschwindigkeiten, Helligkeitsstufen und Richtungswechseln.
#include "FastSPI_LED2.h" #define NUM_LEDS 10 // Anzahl der LEDs im Strip struct CRGB { byte g; byte r; byte b; }; struct CRGB leds[NUM_LEDS]; WS2811Controller800Mhz<12> LED; // Strip an Pin D12 void setup() { LED.init(); } CRGB rgb; void loop() { randomSeed(millis()); int wait=random(1,30); int dim=random(4,6); int max_cycles=8; int cycles=random(1,max_cycles+1); rainbowCycle(wait,cycles,dim); } void rainbowCycle(uint8_t wait,byte cycle,byte dim) { int cycles, j, k; for(cycles=0;cycles<cycle;cycles++){ byte dir=random(0,2); k=255; for (j=0; j < 256; j++,k--) { // cycles of all 25 colors in the wheel if(k<0)k=255; for(int i=0; i<NUM_LEDS; i+=1) { Wheel(((i * 256 / NUM_LEDS) + (dir==0?j:k)) % 256,dim); leds[i]=rgb; } LED.showRGB((byte*)leds, NUM_LEDS);; delay(wait); } } } void Wheel(byte WheelPos,byte dim){ if (WheelPos < 85) { rgb.r=0; rgb.g=WheelPos * 3/dim; rgb.b=(255 - WheelPos * 3)/dim;; return; } else if (WheelPos < 170) { WheelPos -= 85; rgb.r=WheelPos * 3/dim; rgb.g=(255 - WheelPos * 3)/dim; rgb.b=0; return; } else { WheelPos -= 170; rgb.r=(255 - WheelPos * 3)/dim; rgb.g=0; rgb.b=WheelPos * 3/dim; return; } }
Download Source Code (WS2811_Rainbow.ino)
Kleines Video, mit einem Regenbogen-Farbübergang im Dunkeln (mit wechselnden Umgebungslichtstärken):
Weitere Anregungen:
- ein Arduino Pro Mini oder Nano könnten direkt unter den Fuß gebaut werden, ebenfalls ein Standardanschluss für ein 5V-Netzteil
- weitere Programme mit verschiedenen Effekten
- andere Formen oder Größen für die Acrylglasscheiben
- Mikrofon oder Line-In für eine zusätzliche Aussteuerungsanzeige für Sounderkennung
(z.B. Musik)
Einkauf:
Einige Bauteile die wir benötigen können und sollten direkt im Baumarkt gekauft werden, wie beispielsweise das Plastik-Profil ( 20mm x 20mm x 250mm ).
Für die Acrylscheiben ist es möglicherweise erforderlich sich wegen der Maße, direkt an einen Händler zu wenden, Telefonnummern stehen meist innerhalb der unten verlinkten Acrylglassuche auf eBay. (Acrylscheiben LEDs: 10 Scheiben je 50mm x 50mm x 8mm transparent, plus Bodenplatte ca. 140mm x 100mm x 10mm schwarz).
Bei den Strips gibt es Anbieter die weniger als einen Meter Strip verkaufen, sogar kurze Strips mit nur einer LED. In diesem Tutorial wird ein Abschnitt mit 10 LEDs verwendet, wobei als Basis ein Strip mit 60 LEDs pro Meter verwendet wurde. Vorsicht, es gibt auch Strips mit beispielsweise nur 30 LEDs/m, was den Abstand zwischen den LEDs natürlich verdoppelt und dann nicht mehr passen könnte (Design).
Eine zusätzliche Stromversorgung ist erforderlich, entweder wie hier ein Breadboardmodul oder einfach ein normales 5V Netzteil mit möglichst mindestens 500mA.
Bauteile (Bezugsquellen):
Gut?











