Stimmungslicht mit einem digitalen RGB-LED-Strip (WS2811/WS2812), einem Arduino, Acrylglas und ein paar Bauteilen aus dem Baumarkt

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.

Stimmungsbeleuchtung (Moodlight) mit einem Arduino und einem digitalen RGB-Strip

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.

Acrylscheiben mit Schutzfolie Acrylscheibe Schnittkanten deutlich erkennbar

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.

Acrylscheibe anschleifen der Seiten Acrylscheibe mit abgeschnittener Ecke ohne Schutzfolie Acrylscheibe mit abgeschnittener Ecke ohne Schutzfolie 2 Fertige Acrylscheibe

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.

DSCF3674 DSCF3683 DSCF3681

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.

DSCF3689

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.

DSCF3768

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).

DSCF3692 DSCF3794 DSCF3795

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
(UnoNano, 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

Schaltplangröße:

1afbgchdie1j55101015152020252530afbgchdie30j-+-+5V OFF 3.35V OFF 3.3Breadboard power module (YwRobot) - http://blog.simtronyx.de - SVG created by Ronny Simon - All rights reserved.Olimexino-32U4 (Arduino compatible) - http://blog.simtronyx.de - SVG created by Ronny Simon - All rights reserved.DIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDDIN+5VGNDDO+5VGNDWS2812 LED Strip - http://blog.simtronyx.de - SVG created by Ronny Simon - All rights reserved.
Für weitere Informationen (z.B. Pinbelegungen von Bauteilen oder genaue Kabelverbindungen)
mit der Maus über Elemente fahren (oder im Touch-Modus: Elemente antippen)...

Digitaler RGB-LED-Strip mit WS2811 Controller Olimexino 32u4 (Arduino Leonardo Klon) mit Breadboard, Stromversorgung und Verkabelung zum WS2811-RGB-LED-Strip

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):

eBay: 5V Netzteil
Acrylglas
Arduino
Breadboard
Breadboard Power Modul
Digitaler LED Strip (WS2812)
Gummifüße selbstklebend
Amazon: 5V Netzteil
Acrylglas
Arduino
Breadboard
Breadboard Power Modul
Digitaler LED Strip (WS2812)
Gummifüße selbstklebend

Gut?

Facebooktwittergoogle_plusredditpinterestlinkedinmailFacebooktwittergoogle_plusredditpinterestlinkedinmail