Home Of MetaWops.

OS X. iOS. Gadgets. Social Media. Basketball. Music. Synths. Electronics.

Arduino, Elektronik

RGB LED Ketten mit Arduino & Web GUI steuern

Aufbau der Schaltung auf Breadboard und Arduino

Nachdem das letzte Projekt — Focus Stacking mit dem Raspberry Pi — ja nun erfolgreich umgesetzt wurde (wir verbessern jetzt nur noch Optik und fotografieren andere Makro Motive), ist auch schon das nächste am Start. Wir haben am Gartenhäuschen zwei RGB LED Ketten angebracht und ich will sie natürlich nicht über die mitgelieferte, in ihren Funktionen und Reichweite beschränkte Infrarot Fernbedienung steuern. Sondern über mein Smartphone! Zwar bin ich iPhone Fan und auch registrierter Entwickler, aber eine native iOS App empfinde ich dafür als zu einschränkend. Schließlich habe ich auch Android Smartphones und Tablets aller Art und „normale“ Computer (also Macs) und ich möchte die Dinger einfach steuern können von egal was ich gerade vor oder bei mir habe. Also muss ein Web Interface her. Der Plan ist: die LED Ketten schließe ich an einen Arduino an, der im heimischen WLAN hängt und auf dem Arduino läuft ein Web Server. Aber das sind die Schritte 2, 3 und 4. Vorher steht erstmal die Elektronik. Aber wie immer hübsch der Reihe nach.

RGB LED Ketten

Die LED Ketten sind diese hier von Yorbay. Sie kommen mit einem 12V= Netzteil, einem Infrarotempfänger nebst Steuereinheit und einer Infrarot Fernbedienung. Die Reichweite ist da aber nur wenige Meter, so dass man die Farbe und/oder Animation leider nicht bei Schmuddelwetter bequem vom Wohnzimmer aus steuern kann. Diese Variante der Ketten sind wassergeschützt und für draußen geeignet. Die 5 Meter Rolle enthält 150 LEDs und alle drei LEDs kann man sie kürzen. An den sichtbaren Dachkanten haben wir den kleinsten, im Baumarkt verfügbaren Kabelkanal angebracht und dann die LED Kette auf den Kabelkanaldeckel geklebt (Rückseite ist selbstklebend). So kann man bei Bedarf die LED Ketten auch mal relativ leicht wieder abnehmen. Ins Häuschen hatte ich ja im Sommer schon Strom gelegt und die Apple AirPort Express Station (als Bridge) verrichtet dort ihren Dienst seitdem ohne Murren. Party mit Musik aus Wohnzimmer UND Gartenhaus kann man dann im Frühjahr mal machen. 😉

Die Elektronik

Die abgeschnittenen Reste sind jetzt meine Bastelexemplare. Als erstes habe ich mal vier Drähtchen an die vier Anschlüsse gelötet, damit ich so eine Kette auch aufs Breadboard bringe.

 IMG_9433

 Die vier Anschlüsse sind

  • +12 Volt Gleichspannung
  • grün
  • rot
  • blau

Also common anode. Der Direktanschluss ans Labornetzgerät und Einstellen desselben auf 12 V brachte alle drei Grundfarben fein zum Leuchten. Keine kalten Lötstellen produziert. Fein.

Die Frage war nun, wie man die drei Farben von drei Arduino Pins aus schalten (und später dann auch dimmen) kann. Denn mit den süßen 5V und 40mA eines Arduino Pins kommt man nicht weit, wenn die mitgelieferte Stromversorung 12V hat. Habe also erstmal den Stromverbrauch gemessen. Er war je nach Farbe unterschiedlich, lag bei den 63 LEDs (übrigens alle schon mit Vorwiderständen im Strip) meines Experimentier-Reststücks so um die 380 mA pro Farbe. Leuchten alle drei Farbkanäle (also weiß), kommt man auf knapp 1 A.

Meine Elektronik Kenntnisse sind jetzt nicht sooo ausgeprägt, aber nicht zuletzt vom Ansteuern des Kamera Drahtauslösers beim Focus Stacking Projekt her kenne ich ja die Standard-Transistor-Schaltung für so etwas. Nur hatte ich Zweifel, ob ich hier die Masse des 12 V Stromkreises in den 5 V Bereich des Arduino bringen kann. Und welche Transistoren und Basiswiderstände man braucht wusste ich auch nicht. Ganz zu schweigen davon, dass man so zwar an-/ausschalten, aber nicht dimmen kann (wie ich dachte). Ich habe dann mal aufgezeichnet, wie es meiner Meinung nach gehen könnte …

Schaltplan Skizze

Schaltplan Skizze

… und das ganze Thema als Frage bei mikrocontroller.net ins Forum eingestellt. Da der Ton dort gern auch mal etwas rauher ist, war ich auf harsche Kritik gefasst. Aber, oh Wunder, es kam erfreulicherweise viel Konstruktives! Und mein Schaltplan wurde im Prinzip so bestätigt. 🙂

Also wagte ich mich dran und baute das auf. Aber welchen Transistor nehmen? Und welchen Basis Vorwiderstand? Na, so groß war die Auswahl beim Transistor-Typ auch nicht. Bei den NPN Typen hatte ich eh nur vier Varianten im Sortiment: BC546, BC547, BC548 und BC332-40. Ich habe lediglich ins Datenblatt des letzten Modells einen flüchtigen Blick geworfen und fand dort ein paar Zahlen, die irgendwie gut aussahen. Bis 50 V und 800 mA sollte der auf jeden Fall schalten können. Na dann mal los! Alles, was ich über den Vorwiderstand wusste war: soll nicht zu klein und nicht zu groß sein. Hm. Und was genau ist „nicht zu klein“ oder „nicht zu groß“? Glaskugel. Sowas kann man sicher ausrechnen. Man schon. Ich nicht. Also nach Bauchgefühl mal einen 470 Ohm Widerstand gewählt. Falls ein Transistor kaputt gehen sollte: ich hatte noch mehr davon. 😉

Erster Erfolg

Also erstmal für nur einen Kanal auf dem Breadboard aufgebaut, Labornetzteil wieder auf 12 Volt, einen super simples Arduino Sketch geschrieben, der den Kanal auf HIGH schaltet, eine Sekunde wartet, ihn auf LOW schaltet und wieder eine Sekunde wartet programmiert und gestartet. Klappte! 🙂 Große Freude. Dann noch zweimal gebaut für die anderen Kanäle. Sieht dann etwa so aus:

Aufbau der Schaltung auf Breadboard und Arduino

Aufbau der Schaltung auf Breadboard und Arduino

Hier sieht man schon das Ethernet Shield auf meinem Arduino Uno stecken. Doch das kommt gleich erst ins Spiel. Die einzelne grüße LED, die man hinten sieht auch.

Arduino Sketch & Dimmen

Nun musste ich natürlich erstmal meinen Sketch erweitern und Mischfarben ausprobieren und all sowas. Zu meiner positiven Überraschung erfuhr ich im Forum, dass mit unveränderter Schaltung auch das Dimmen der LEDs gehen soll, wenn man einfach nur statt eines rein digitalen einen der PWM Pins des Arduinos nimmt. Und das klappt tatsächlich! Was hier passiert ist: der Transistor schaltet so schnell (eben wie der gepulste Arduino Ausgang vorgibt), dass das menschliche Auge das nur als unterschiedliche Helligkeiten wahrnehmen kann. Reicht für meine Zwecke. Und die Transistoren werden auch (momentan noch) nicht zu warm. Sollten sie das mal werden, kann man da wohl auch andere Bauteile nehmen, sogenannte MOSFET Transistoren.

Ein erster Demo Sketch sieht dann z.B. so aus:

[Hier kommt noch der Quellcode, sobald ich ein schönes, funktionierendes Plugin für Syntax Highlighting gefunden habe…]

Netzwerk & WiFi

Der nächste Schritt war, sich (mal wieder) damit zu befassen, wie man den Arduino ins heimische Netz bekommt. Später muss er draußen im Gartenhaus sitzen und per WiFi im LAN sein, da ich dort kein Ethernetkabel habe. Aber zum Experimentieren im Keller genügt ja erst einmal die kabelgebundene Variante. Zumal ich gar kein WiFi Shield für den Arduino habe. Das gibt es zwar, es ist aber unverhältnismäßig teuer (> €80). Da kam der Tipp aus dem Forumbeitrag gerade recht, stattdessen ein kleines Gerätchen von TP-Link im Wert von €18 zu benutzen. Da kam heute an und es funktioniert tatsächlich bestens — hier im „Client“ Modus. Es braucht lediglich Strom über Micro-USB, 5 V (z.B. auch vom Arduino …) genügen. Und dann mit einem kurzen Ethernet Kabel mit dem Ethernet Shield auf dem Arduino verbinden. Klappt einwandfrei, wenn man vorher das heimische WLAN auf dem Kästchen konfiguriert hat. So war der Arduino drahtlos im Netz und braucht jetzt nur noch Strom. So sieht das kleine TP-Link Teilchen aus:

TP-Link

TP-Link TL-WR702N

Für die ersten Experimente mit der Ethernet Library fand ich im empfehlenswerten Buch „Arduino Cookbook“ ein gutes Beispiel für das, was ich auch vorhabe. Der Sketch dort implementiert einen simplen WebServer auf dem Arduino und ein einfaches Formular mit zwei Buttons. Der eine schaltet Port 8 des Arduino auf HIGH, der andere auf LOW. So kann man z.B. eine an diesem Port angeschlossene LED — und das ist die grüne oben im Bild — über einen beliebigen Webbrowser ein- und ausschalten. Der Weg zu Buttons „rot an“, „rot aus“, „blau an“, „blau aus“ etc. ist da nicht mehr weit! Aber ich habe noch mehr vor. Das ganze Web GUI soll natürlich nach Möglichkeit responsive sein und man soll kleine „Programme“ (Licht-Abläufe) schreiben können. Das wird noch ein Weg … Ich werde diesen Artikel hier aktualisieren. Stay tuned!

  1. Roman

    Hallo, fast ein Jahr her 😉 Kommt da noch was ?
    Bin an sowas ähnlichem interessiert und finde den Anfang hier sehr gut, bin allerdings ein kompletter Neuling.

    Ich möchte per WebBrowser am Handy ein LED Strip ansteuern können. Und zwar nicht nur an/aus sondern bestimmte Bereiche des Strips in bestimmten Farben leuchten lassen. So ähnlich wie ein Lauflicht, nur mit einer etwas komplexeren Logik dahinter.

    Ums programmieren mach ich mir keine Sorgen nur habe ich von der Hardware keine Ahnung, weswegen ich gerne eine Fortführungs deines Projekts inkl. des Webservers sehen wollen würde 😉

    gruß Roman

  2. Timo Just

    Also ich weiß das die ganze Anleitung schon etwas älter ist, allerdings würde ich mich auch noch für den Code interessieren wie der Webserver konfiguriert werden muss.

    • Hallo Timo und Roman,
      leider ist das Projekt irgendwie dann versickert. Wer kennt das nicht.
      ABER: mittlerweile hat die LED-Kette am Gartenhäuschen den Geist weitestgehend aufgegeben und ich habe schon Ersatz hier liegen. Das könnte also bedeuten, dass ich das Projekt mal wieder angehe, vielleicht im Winter. 😉

  3. Cedric Lonski

    Hallo Stefan,
    Wie sieht es aus? Hast du dein Projekt wieder angegangen?
    Ich würde gerne das gleiche machen, bin aber mit der Programmierung komplett überfordert..
    Viele Grüße und vielen Dank für deine Hilfe

  4. Thomas Hinz

    Hallo,
    Hast du schon was neues?

  5. Hallo, ich bin neu hier und finde die Seite sehr gut.
    Ich habe mir einen RGBWW Ledstreifen zugelegt, den ich mit einem Arduino steurn möchte. Der Sketch kann aber nicht hochgeladen werden, da die richtige Library fehlt. Neopixel geht nicht.
    Kannjemand helfen?

Schreibe eine Antwort

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Theme von Anders Norén

%d Bloggern gefällt das: