Day 10: Colour mixing

Behind today’s door is the reason for the many 1-kohm resistors. Namely, what you find there is a so-called RGB LED RGB stands for red-greenblue, since this LED is actually three LEDs that can be connected through a common cathode. By varying the brightness of the individual LEDs using PWM, you can generate almost every colour conceivable.

You can see the layout of today’s circuit in the following figure. Note that the somewhat longer leg (the cathode) must be plugged into the GND contact strip.

Die RGB LED mit allen drei Vorwiderständen

The RGB LED with all three series resistors

In the Blynk app, a totally new element comes into play today, namely the ZeRGBa element (combination of Zebra and RGB). You can already see roughly how it works from the colourful design. You can either insert the element in your own new project and adjust the pins manually (red at D3, green at D5 and blue at D6) or load the interface of the test as usual via QR code. Whichever way you choose, don’t forget to enter the new token in the programme, which you can download as usual from below:

blynk_tag1010-1

When you have uploaded the programme with your data and the interface has started in the app, you can move the circle in the ZeRGBa widget. You see that the colour of the circle changes. At the same time, the colour of the RGB LED on the board changes. So you can have fun playing around and trying out various colours. You can even get white if you move the circle to the top left corner. The three numbers above also give the current PWM value of the pins D3, D5 and D6. This time, too, you can conceivable use the programme for a living room lamp with mood lighting that can be controlled via app.

Das ZeRGBa-Element

Das ZeRGBa-Element

42 Comments

  1. Adrian

    Lade ich den Code hoch, erscheint im seriellen Monitor "failed to disable MUX" und nichts weiter passiert. Wo liegt das PRoblem?

    Reply
  2. efee.paem

    Bei uns hat es wieder auf Anhieb funktioniert. Es ist schon erstaunlich, dass die Verzögerungszeit zwischen App-Steuerung und Reaktion auf dem NanoESP kaum zu bemerken ist.

    Reply
  3. Philipp

    Hallo,
    bei mir funktioniert jedes Projekt gottseidank auf anhieb.
    Nun habe ich aber seit dem es um Analoge Werte mit dem Board geht ein kleines Problem. Und zwar sobald ich egal bei welchem Analog experiment den Wert ändere tut es das auch auf dem Board aber nur für ein paar Sekunden danach bricht die verbindung ab und auf meinem Handy wird angezeigt "Your Arduino Nano is not in the Network" und nichts funktioniert mehr. Nach ein paar Sekunden steht dann wiederrum die Verbindung. Hat einer von euch eventuell eine Ahnung woran dieses Verbindungsproblem liegt? Danke im Vorraus:)

    Reply
  4. kub0185

    Mein 3 Jahre alter Sohn ist total begeistert von diesem Experiment !!! Weiter so.

    Reply
  5. Stefan

    Hallo,
    bei mir funktioniert der PIN D5 nicht, keine grüne Farbe.
    Verwende ich den PIN D9 im Aufbau und der App leuchtet die grüne Farbe korrekt auf.

    Selbst folgende Codeanpassung um die grüne Farbe gleich nach dem Start leuchten zu lassen zeigt keine Wirkung.
    #define GREEN 5

    void setup()
    {
    // Set console baud rate
    Serial.begin(19200);
    EspSerial.begin(19200);
    pinMode(GREEN, OUTPUT);
    analogWrite(GREEN, 255);

    Kann das an einer alten Library liegen?
    Für mich scheint das Board defekt.

    Hat noch jemand das Problem?

    Reply
    1. kub0185

      Ich tippe eher auf ein Kontaktproblem.

      Reply
      1. Stefan

        Ich habe bis auf das Board die Zuleitung zum grünen Beinchen verändert und daran liegt es nicht.
        Das Board habe ich auch 2 Mal angerufen und wieder auf das Steckboard gesteckt.
        Ich probiere heute Abend das Board einen Pin Versatz einzustecken.

        Reply
        1. Max

          Hab das selbe Problem

          Reply
          1. Stefan

            Auch mit versetztem Board kein Erfolg Pin d5 bleibt ohne Funktion.
            Wende mich jetzt an Conrad.

  6. ct

    Türchen 10 macht sehr viel Spaß :)

    pic.twitter.com/HrKOvl6EoP

    Reply
  7. Paul

    RGB und Leuchtkraft. Der Unterschied ist normal, aber es werden 'normalerweise' unterschiedliche Vorwiderstände zur jeweiligen Farbe der LED verwendet, da ja die Spannungen der 3 verschiedenen Farben auch variieren.

    Paul

    Reply
  8. Uli

    Mich hat interessiert, wie heiß der RSP8266 eigentlich wird. In den ersten Tagen war von 80 °C die Rede. Siehe Bild anbei. Bei mir wird der Chip 56 °C heiß. Das geht noch…

    Reply
  9. bibikati

    Diese RGB-LED hat mir dann doch den Adventskalender gerettet. Ich habe dem Spender des Kalenders vorgestern gesagt, dass ich den Kalender nicht mehr weitermachen werde, da ich keine Lust habe min. 1,5 Stunden zu inverstieren um ein Netzwerk von Arduino und Tab über den Hotspot einzurichten, für einen 10 Minuten Versuch. Hab aber trotzdem immer brav jeden Tag das Türchen geöffnet. Dann kam die RGB-LED und ich musste doch mal gucken wie ich hier weiter komme.
    Also dann doch den Hotspot über Datenvoumen des Handys eingerichtet und siehe da alles ohne Probleme.
    Somit bin ich jetzt wieder up to date. Ich freu mich ;)

    Reply
  10. Marius

    Bei meiner RGB ist rot am schwächsten. Das ist zwar vollkommen normal bei LED’s das die Leuchtkraft variiert und mich würde es auch nicht stören wenn ich diese für 1 Euro bei e-bay gekauft hätte.
    Aber bei einem 50 Euro Adventskalender (von Conrad!) sollte man schon erwarten, dass dieser GUTE QUALITÄT UND NICHT B-WARE enthält.
    Ich finde das ist eine FRECHHEIT.

    Reply
  11. Paul

    So, wie ich hier lesen kann war bei euch eine RGB LED drin.
    Bei mir nur eine einfache LED mit 2 Anschlüssen. Pfennigartikel meint ihr, die richtige sollte in jeder Bastelkiste vorhanden sein?!
    Das mag zwar stimmen, doch bei dem Preis für den Kalender und manch Käufer hat nur den Kalender und will sich dem Thema widmen.

    Paul

    Reply
  12. DS2072

    Ich kann keinen Token mehr in Blynk sehen und mir zusenden lassen. Wie soll ich dann das Projekt durchführen?

    Reply
    1. fk (Post author)

      Zur Not Abtippen aus der App

      Reply
    2. DS2072

      erledigt, wenn man das Device ändert.

      Reply
    3. HPRS

      Blynk (in der frisch aktualisierten Version)liefert offensichtlich keinen token mehr. Ich habe den bereits im Programm eingesetzten token verwendet. Das Programm wird damit einwandfrei kompiliert.Der serielle Monitor zeigt die Verbindung zum WLAN an.
      Wenn ich aber die Oberfläche in der App starten wiil, erhalte ich immer den Kommentar "Device is offline". und es klappt nichts. Das Smartphone ist aber mit dem WLAN verbunden. Was mache ich falsch?

      Reply
      1. Sven

        Das Token ist etwas versteckt. War wohl zu einfach zu finden :-(. Man muss das Device auswählen und auf der Device Detailseite kann man den key dann sehen und sich zuschicken lassen.

        Reply
      2. basti

        Das "Device is offline" Problem habe ich auch. Ich habe auch die Blynk App aktualiesiert.

        Was kann man da machen?

        Reply
      3. basti

        Hallo HPRS,

        konntest du dein Problem lösen oder hängst du immer noch genauso fest wie ich? Es liegt wohl an der aktuellen Blynk App…

        Reply
        1. HPRS

          Gestern (Tag 11, 7:07) hat mir Athanasie geschrieben, was ich machen muss,und jetzt klappt es. Schau doch dort einmal nach.

          Reply
          1. basti

            Danke, ich probiere das dann mal aus…

  13. Voulxe

    Gibt es die Möglichkeit, die onBoard LEDs auszuschalten? Damit man das Board in einen 'Stealth-Modus' versetzt?

    Das ZeRGBa-Widget habe ich gegen 3 Slider getauscht. Ein vierter Slider ist für die Blink-Geschwindigkeit. Und ein Schalter, um die LED als solche zu an- und auszuschalten.

    Reply
    1. Nico

      Wie hast du den vierten Slider / den Button eingestellt damit er die Blinkgeschwindigkeit steuert bzw. die LED an und ausschaltet?

      Reply
      1. Voulxe

        Alle Slider gehen auf einen virtuell Pin(V0, V1, …).
        Diese werden dann im Code ausgelesen. Siehe auch : http://docs.blynk.cc/#blynk-main-operations-send-data-from-app-to-hardware

        Mit analogWrite(3, valRed); wird dann auf der Hardware der Pin für 'rot' gesetzt.

        Der vierte Slider macht einen Delay: delay(valDelay);
        Dabei kann der Slider von 0-1000 gesetzt werden.

        Reply
        1. Cubiator

          Hi,

          eine einfache Möglichkeit zum Blinken suche ich auch. Dürfte ich den Code mal sehen?

          Gruss
          Cubiator

          Reply
          1. Voulxe

            void setPins(int r, int g, int b); // Funktion wird deklariert
            int valRed=100; // Startwert Rot
            int valGreen=0; // Startwert Grün
            int valBlue=0; // Startwert Blau
            int valDelay=250; // Blinkpause
            int button1 = 1; // Status Button = On
            bool isFirstConnect = true; // Nach Reset holt sich die Hardware den Status der App

            void loop()
            {
            Blynk.run();

            if (button1 == 1) // falls die LED überhaupt leuchten soll
            {
            setPins(valRed, valGreen, valBlue);
            delay(valDelay);
            }

            // falls blinken soll, oder der Button auf 'Off' ist
            if (valDelay != 0 | button1 == 0)
            setPins(0, 0, 0);
            delay(valDelay);
            }

            void setPins(int r, int g, int b)
            {
            analogWrite(3,r);
            analogWrite(5,g);
            analogWrite(6,b);
            }

            BLYNK_WRITE(V0) // Red
            {
            valRed = param.asInt();
            }

            BLYNK_WRITE(V1) // Green
            {
            valGreen = param.asInt();
            }

            BLYNK_WRITE(V2) // Blue
            {
            valBlue = param.asInt();
            }

            BLYNK_WRITE(V3) // Delay
            {
            valDelay = param.asInt();
            }

            BLYNK_WRITE(V4) // on/off
            {
            button1 = param.asInt();
            }

            BLYNK_CONNECTED()
            {
            if (isFirstConnect)
            {
            Blynk.syncAll();
            isFirstConnect = false;
            }
            }

          2. Voulxe

            Der Code ersetzt alles ab Zeile 30 im oben angegebenen Quellcode.

    2. Uli

      So wie ich das sehe, ist die blaue LED D2 direkt an der Versorgungsspannung angeschlossen. Die kann man also nicht abschalten. Ich habe schon überlegt, ob ich den Widerstand drastisch erhöhe, dann brennt mir die LED nicht mehr das Auge aus.
      Die D6 ist dann bestimmt auch an der Versorgung angeschlossen. Die ist aber nicht so penetrant hell. Die würde ich so lassen.

      Reply
      1. Voulxe

        Laut Skizze ist es auch D3 und nicht D2 ;-)

        Reply
  14. emiel

    the blink app has updatedand now it doesn’t work anymore

    Reply
    1. Tech_Nick

      I had the same problem at first too but i reinstalled the app and now its working

      Reply
      1. emiel

        doesn’t work for me

        Reply
        1. Marco

          Make sure you installed the latest version of the app. There were 3 or 4 updates yesterday because they fixed several bugs after rolling out the first update.

          For further help you will have to specify what "doesn’t work anymore" means.

          Reply
          1. basti

            I think I have the latest version, because there are no further updates. But nevertheless there is still the message "device is offline" when I want to start the programm.

            I am connected to the WiFi as the days before.

            What could help us out?

  15. Bernd

    ja, reichlich blau.Aber funktioniert.
    nachdem man das Zebra auf "merge" änderte genauso. Und nachdem "send on release" on und zurück auf split und "off" tut sich überhaupt nichts mehr (LED aus).
    half auch nicht das progam umzuladen.

    Kann man die Blynk knöpfe grösser machen? ist ja ziehmlich fummelig darauf was zu verschieben.

    Reply
    1. Uli

      Ja, auch bei mir ein starker Blaustich! Rot ist sehr dunkel. Naja, aber es funktioniert.
      Mein Zebra war etwas sendefaul. Es hat nur ca. bei jedem 3. Loslassen gesendet. Zumindest ist nur dann etwas im Log auf dem COM des nanoESP angekommen. Jetzt habe ich "send on release" abgeschaltet und jetzt sendet es bei jeder Bewegung. Das ist besser.
      Wenn Du übrigens den "split" auf "off" stellst, dann werden nicht mehr 3 einzelne Nachrichten "aw???" (analog write, port, wert) geschickt, sondern eine kombinierte message, die dann der Controller auswerten muss. Wenn das der nano nicht macht, dann geht die Info verloren. Deswegen ist die RGB-LED bei Dir wohl dunkel.

      Reply
  16. Hansi

    Bei mir hat sie einen leichten grün Stich. Liegt daran, dass jede einzel LED (bei mir ist grün die hellste und blau die schwächste) eine andere Leuchtkraft hat. Wenn Du "echtes" weiss sehen willst, musst Du etwas mit den PWM Werten tüffteln… und es funktioniert nur solange die Helligkeit nicht voll oder minimum ist, also solange die PWM Werte entsprechend der Leuchtkraftunterschiede eben unterschiedlich sind.

    Reply
  17. salid

    Leuchtet bei Euch die LED in der "Weiß Stellung" in Reinweiß oder eher so bläulich? Ich hab die Schaltung jetzt mehrfach durchkontrolliert und die LED ist eher bläulich…

    Reply
    1. prisma01

      Geht mir auch so, leider. Auch rot ist etwas 'unterbelichtet'

      Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.