video_vorschaubild

Dazu benötigen wir:

  • das Arduino-Board (z.B. Uno, Leonardo oder Nano)
  • das Ethernet-Shield (Oder anderes Netzwerkmodul)
  • RGB Stripe
  • 12V Netzteil für RGB Stripes
  • LM2596S DC  Step-Down (optional, aber sonst muss der Arduino zusätzlich per USB oder Netzteil mit Strom versorgt werden)
  • 128 x 64 Pixel OLED Display (optional)
  • 3 Transistoren (z.B. IRLZ34N)
  • 3 Widerstände (mindestens 200-Ohm)
  • Lötkolben, Lötzinn, Kabel und Schrumpfschlauch 
  • oder alternativ zum löten ein kleines Steckbrett und Steckbrücken (jumper wire)

 

 

Schaltplan

rgb1

 

Zuerst verdrahten wir die gesamten Komponenten entsprechend des Schaltplans. Die 3 LEDs vor dem Gate des Mosfets sind optional. Diese dienen nur dazu den Ausgangspegel des jeweiligen Kanals zu visualisieren. 

Der DC  Step-Down (LM2596S) ist ebenfalls optional.
Lässt man diesen weg, muss der Arduino allerdings über USB oder den Stromanschluss mit Strom versorgt werden. Der Arduino hat zwar einen DC  Step-Down integriert, aber da dieser sehr schnell heiß wird habe ich mich dazu entschlossen den Step-Down über ein externes Bauteil zu realisieren. 
Bei Verwendung des LM2596S muss man die 12V Stromquelle mit den Eingangspins des LM2596S verbinden und mit einem Multimeter an den Ausgangspins die Spannung überprüfen. Der LM2596S hat eine Einstellschraube für die Ausgangsspannung. An dieser drehen wir nun so lange, bis die Spannung am Ausgang möglichst genau 8V beträgt. 
Ist die Ausgangsspannung eingestellt, verbinden wir die Ausgangspins mit VIN und GND des Arduino. 

 

 

Display (optional)

Das OLED Display habe ich nicht in den Schaltplan mit aufgenommen. Da ich ein Display mit I2C Schnittstelle verwendet habe (OLED Display 128×64) ist das aber schnell erklärt. 
Dieses wird wie folgt mit dem Arduino verdrahtet.

Display Arduino
VCC 3,3V
GND GND
SDA A4
SCL A5

ACHTUNG!!! Wenn kein Display am I2C angeschlossen ist, muss das Display im Sketch-Konfigurationsbereich deaktiviert werden, ansonsten hängt sich das Sketch auf, wenn das Display angesprochen wird!

 

 

Sketch einrichten

Das notwendige Sketch für den Arduino könnt ihr unter dem folgenden Link downloaden.
http://smarthomeyourself.de/hc_downloads/arduino/homecontrol_rgb_stripe_controller.ino

 

Der Sketch startet auf dem Arduino einen Webserver, der die aktuelle Farbeinstellung anzeigt und diese ändern lässt. Ebenfalls kann man über URL-Parameter von außen direkt die Farbwerte setzen. Der Webserver lauscht auf die Parameter red, green und blue.
Diese Parameter akzeptieren Zahlen zwischen 0 und 255.

Beispiel:
http://IP_DES_CONTROLLERS/rawCmd?red=75&green=0&blue=100

webintf

Wird die Farbeinstellung geändert, werden diese neuen Werte, falls useEepromToStoreSettings aktiviert ist, ins EEPROM geschrieben und beim nächsten Start wieder geladen. So startet das System immer mit der zuletzt eingestellten Farbeinstellung. Das hat allerdings zur Folge dass nach 100.000 Schaltvorgängen die Speicherbereiche des EEPROM den Geist aufgeben.
Ist useEepromToStoreSettings deaktiviert startet das System immer im ausgeschalteten Zustand. (Rot, Grün und Blau = 0)

 

Um das Sketch zu installieren öffnet Ihr die Datei mit dem Arduino-Editor. Wie Ihr die Arduino-Software einrichtet, falls noch nicht geschehen, erfahrt Ihr hier: 
http://smarthomeyourself.de/anleitung-zum-selber-bauen/arduino-ide-installieren/

 

Die benötigten Librarys findet Ihr hier: 
OLED Display
Da das Sketch sonst zu groß geworden wäre, habe ich auf die sonst übliche GFX-Lib verzichtet und eine reine Text-Library für das Display verwendet
http://smarthomeyourself.de/hc_downloads/arduino/SSD1306Ascii.rar

Alternative Ethernet Library UIPEthernet.h
wird nur benötigt, wenn ENC28J60 anstelle eines Ethernet-Shield verwendet wird
http://smarthomeyourself.de/hc_downloads/arduino/arduino_uip.rar

 

 

Am Anfang des Sketchs findet Ihr die folgenden Einstellungen. Passt diese frei nach euren Bedürfnissen an und ladet anschließend das Sketch auf euren Arduino.

// ---------------------------------------------------------------
// --                      START CONFIG                         --
// ---------------------------------------------------------------
// Display
boolean useDisplay = false;
#define OLED_I2C_ADDRESS 0x3C
// Display-Timeout in ms
long displayTimeout = 60000; 

// Die 3 RGB-Pins müssen PWM-fähig sein
#define RED_PIN 3
#define GREEN_PIN 5
#define BLUE_PIN 6

// Netzwerk
unsigned char _mac[]  = {0xB2, 0xAB, 0x32, 0x56, 0xFE, 0x0D  };
unsigned char _ip[]   = { 192, 168, 1, 130 };
unsigned char _dns[]  = { 192, 168, 1, 15  };
unsigned char _gate[] = { 192, 168, 1, 15  };
unsigned char _mask[] = { 255, 255, 255, 0  };

// EEPROM
// Ist das EEPROM aktiviert, werden bei Neustart die zuletzt verwendeten Farbwerte geladen. 
// Bei Deaktiviertem EEPROM wird mit Default R=0, G=0, B=0 gestartet.
// Deaktivieren um EEPROM zu schonen (da maximal 100.000 Schreibzyklen)
boolean useEepromToStoreSettings = false;

// Serielle Ausgabe zu Debugzwecken aktivierbar
boolean serialOut = true;
// --------------------------------------------------------------- 
// -- END CONFIG -- 
// ---------------------------------------------------------------

 

Prüft nach anpassen der Einstellungen des Sketches unter „Werkzeuge“ noch, dass auch der richtige Arduino-Typ und Port in der Software ausgewählt sind.

settings

 

 

Sobald Ihr alle Einstellungen angepasst habt, könnt Ihr das Sketch auf den Arduino hochladen. 

upload

 

Wenn alles geklappt hat sollte der RGB-Controller nun einsatzbereit sein. 

 

Die STL-Dateien findet Ihr auf Thingiverse unter:
http://www.thingiverse.com/thing:2044160

 

Zum Abschluss gibt es die ganze Anleitung noch mal als Video: