RGB-LED-Tutorial (mit einem Arduino) (RGBL)

6 Schritt:Schritt 1: Ersatzteile Schritt 2: Testen Schritt 3: Beispielschaltung Schritt 4: Digital Arduino-Code Schritt 5: Analog Arduino-Code Schritt 6: Beendet

RGB-LED-Tutorial (mit einem Arduino) (RGBL)

RGB-LED-Tutorial (mit einem Arduino) (RGBL)

LEDs sind groß. Aber bei jedem Projekt kommt ein Punkt, an dem Blinken ist einfach nicht genug. Für diese Fälle ein RGB (Rot, Grün, Blau) LED ist die Antwort.
Mit eine RGB LED Sie in der Lage zu produzieren jede Farbe leuchtet das Herz begehrt sein.
Zuerst mit einem RGB-LED scheint ziemlich komplex, aber es ziemlich schnell klar, dass seine nicht schwieriger als die Steuerung eines ihrer einzigen Farbe Gegenstücke.
Was folgt, ist eine kurze Anleitung Ihnen den Einstieg Steuerung eines RGB-LED zunächst mit Drähten dann mit einem Arduino Mikrocontroller zu bekommen.
Wenn Sie möchten, um voran zu jedem Teil springen hier ist Ihre Chance.
Schritt 1 Die Parts
Schritt 2 Testing
Schritt 3 Arduino Kontrollierte Beispielschaltung
Schritt 4 Digitale Steuerung von Farbe
Schritt 5 Analog Control von Colour
(Shamless Stecker)
Sie interessieren sich immer ein paar RGB-LEDs zu spielen, um mit und in Großbritannien? Bestandteil Bündel können an unseren Online-Shop gekauft werden oomlout.co.uk

Schritt 1: Ersatzteile

  1. RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    Nur wenige Teile erforderlich sind.

    RGB LED (gemeinsame Anode)
      Eine allgemeine Anode RGB-LED ist nichts komplizierter als drei einfarbig LEDs (eine rote, eine grüne und eine blaue) in einem einzigen Gehäuse untergebracht sind. Anstatt 6 führt (eine Kathode und die Anode für jede LED) nur 4 eine Kathode für jede Farbe, und eine gemeinsame Anode. (Siehe schematische Darstellung unten) Eine allgemeine Anode RGB-LED ist die beliebteste Art. Es wird am häufigsten entweder in einem 5mm Zwiebelgröße oder als 5mm pirahna Formfaktor gefunden.
      Strombegrenzungswiderstände (270 Ohm) (rot-schwarz-braun)
        Die meisten LEDs sind so konzipiert, mit einer Spannung zwischen 1,5 V und 3 V arbeiten. Da die meisten Mikrocontroller (einschließlich des Arduino) arbeiten auf 5 Volt eine Strombegrenzungswiderstand erforderlich. Fragen Sie Ihren LEDs Datenblatt zur Grenzwerte aber wir mögen bis 270 Ohm-Widerstände zu verwenden. Dies begrenzt den Strom auf ca. 20mA, auch innerhalb der meisten LEDs und Microcontroller Bewertungen.
        Arduino Mikrocontroller und Breadboard
          Eine große Open-Source-Mikrocontroller-Plattform (für weitere Informationen besuchen Sie arduino.cc )

Schritt 2: Testen

  1. RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    Bevor wir verbinden unsere RGB-LED, um unsere Arduino ist es eine gute Idee, es einen Test, um zu geben.

    Fragen Sie Ihren RGB LEDs Datenblatt für seine Pin-out oder unten sind die beiden häufigsten RGB-LED-Formfaktoren und Pin-outs.

    Verdrahten Sie die Test-Schema (siehe unten)
      Schließen Sie das RGB-LED in das Steckbrett Schließen Sie einen Strombegrenzungswiderstand zu jedem der drei Kathoden Schließen Sie das gemeinsame Anode bis 5 V (5 Volt) Testen Sie jede Farbe durch die Verbindung seiner Strombegrenzungswiderstand mit Masse (GND) Experimentieren Sie mit Farbmischung ein wenig nach dem Einschalten mehrere Elemente auf einmal
      (Eine schnelle Video von uns Testen eines RGB LED)

Schritt 3: Beispielschaltung

  1. RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    Zeit, sich auf die Steuerung Ihres RGB-LEDs mit einem Arduino.

    Für das Beispiel-Code, um folgen Sie drei RGB-LEDs und 9 Strombegrenzungswiderstände müssen (avaliable zum Kauf in Großbritannien von oomlout.co.uk )

    Verdrahten Sie die unten Kreis.

    Es gibt zwei Möglichkeiten, dies zu tun. Für den fortgeschrittenen finden Sie in der schematischen unten.

    Oder für die weniger fortgeschrittenen können Sie eine Steckbrett Layoutblatt (die unten pdf) herunterladen. Drucken Sie diese aus und legen Sie es über Ihrem Steckbrett für die bequeme Bestückung.

Schritt 4: Digital Arduino-Code

  1. RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    RGB-LED-Tutorial (mit einem Arduino) (RGBL)

    Es ist möglich, ein RGB-LED-digital zu steuern. Dies erfordert 3 digitale Stifte für jede LED und ermöglicht die 7 Farben, die angezeigt werden (Rot, Grün, Blau, Gelb, Cyan, Magenta, Weiß).
    Aber nehmen Sie nicht unser Wort für es den Code herunterzuladen unter und erhalten Sie spielen. Um dies zu tun, einfach ...
      Kopieren Sie den nachfolgenden Code und fügen Sie ihn in einen leeren Arduino Sketch. Kompilieren und laden Sie die Skizze, um Ihre Arduino Board. Genießen Sie, wie Sie Ihre drei LEDs leuchten Rot, Grün und Blau. Wenn Sie auf den Abschnitt loop () des Codes unter Beispiel 1 gehen Sie sehen, wo Sie die Farben ändern. Probieren Sie ein paar andere Variationen zu sehen, wie wir kontrollieren jede LED-Blick auf die setColor () Funktion. Weiter Kommentar aus (fügen Sie //) zu den drei Linien aus Beispiel 1 Un-Kommentar (löschen //) aus vor jeder Zeile in dem Beispiel 2 Abschnitt der Schleife () Code Hochladen dieser auf Ihre Bord und beobachten Sie, wie Ihre drei LEDs die Farbe wechseln nach dem Zufallsprinzip. Spielen Sie mit dem Code, um zu sehen, wie es funktioniert und machen Sie Ihren eigenen Spaß Farbfunktionen.
      (Ein kurzer Video Digitale Beispiel ein und Digital-Beispiel 2)

      Anhang 1: _RGBL_Digital.pde
        // --- Bof RGBL - RGB Digitale Präambel // RGB LED pinsint ledDigitalOne [] = {14, 15, 16};  // Die drei digitalen Pins des ersten digitalen LED 14 = redPin, 15 = greenPin, 16 = bluePinint ledDigitalTwo [] = {9, 10, 11};  // Die drei digitalen Pins des ersten digitalen LED 14 = redPin, 15 = greenPin, 16 = bluePinint ledDigitalThree [] = {3, 5, 6};  // Die drei digitalen Stiften des ersten digitalen LED 14 = redPin, 15 = greenPin, 16 = bluePinconst ON Boolean = niedrig;  // Definieren als LOW (dies, weil wir eine gemeinsame Anode RGB-LED (gemeinsame Stift mit +5 Volt verbunden) const boolean OFF = HIGH; // Definieren Sie ab, wie HOCH // Vordefinierte Colorsconst boolean RED [] = {ON , OFF, OFF}; const boolean GREEN [] = {AUS, EIN, OFF}; const boolean BLUE [] = {AUS, AUS, EIN}; const boolean YELLOW [] = {ON, ON, OFF}; const boolean CYAN [] = {AUS, EIN, EIN}; const boolean MAGENTA [] = {ON, OFF, ON}; const boolean WHITE [] = {ON, ON, ON}; const boolean BLACK [] = {AUS, AUS , OFF}; // Ein Array, das die vordefinierten Farben speichert (ermöglicht es uns, eine Farbe nach dem Zufallsprinzip angezeigt werden später) const boolean * FARBEN [] = {ROT, GRÜN, Blau, Gelb, Cyan, Magenta, WEISS, SCHWARZ}; // --- eof RGBL - RGB Digitale Preamblevoid setup () {for (int i = 0; i <3; i ++) {pinMode (ledDigitalOne [i], output); // Setze die drei LED-Pins als Ausgänge pinMode (ledDigitalTwo [ i], output); // Setze die drei LED-Pins als Ausgänge pinMode (ledDigitalThree [i], output); // Setze die drei LED-Pins als Ausgänge}} void loop () {/ * Beispiel - 1 Stellen Sie eine Farbpalette Die drei LEDs an jedem vordefinierten Farb * / setColor (ledDigitalOne, RED);  // Die Farbe der LED eine setColor (ledDigitalTwo, grün) Set;  // Stellen Sie die Farbe der LED zwei setColor (ledDigitalThree, blau);  // Setzt die Farbe der LED-drei / * exampe - 2 Go durch zufällige Farben Legen Sie die LEDs in eine zufällige Farbe * / // int rand = random (0, sizeof (Farben) / 2);  // Erhalten eine Zufallszahl im Bereich von Farben // setColor (ledDigitalOne, FARBEN [rand]);  // Setze die Farbe führte man eine zufällige Farbe // rand = random (0, sizeof (Farben) / 2);  // Stellen Sie die Farbe der LED 2 zu einem zufälligen Farb // setColor (ledDigitalTwo, FARBEN [rand]);  // Rand = random (0, sizeof (Farben) / 2);  // Stellen Sie die Farbe der LED 3 in eine zufällige Farbe // setColor (ledDigitalThree, FARBEN [rand]);  // Verzögerung (1000);  } / * Legt eine führte zu einer beliebigen Farbe führte - ein Dreielementanordnung definieren, die drei Farbstifte (LED [0] = redPin, LED [1] = greenPin, führte [2] = bluePin) Farbe - ein Dreielement boolean-Array ( Farbe [0] = Rot-Wert (LOW = auf, HIGH = off), Farbe [1] = Grün-Wert, Farbe [2] = Blau-Wert) * / void setColor (int * geführt, boolean * Farbe) {for (int i = 0; i <3; i ++) {digital (LED [i], Farbe [i]);  }} / * Eine Version, die für die Verwendung setColor const boolean Farben * / void setColor erlaubt (int * geführt, const boolean * Farbe) {boolean TempColor [] = {color [0], Farbe [1], Farbe [2] };  setColor (LED, TempColor);} 

Schritt 5: Analog Arduino-Code

  1. RGB-LED-Tutorial (mit einem Arduino) (RGBL)
    Jetzt auf den fun stuff, Controlling eine RGB-LED mit dem Arduinos PWM (Pulsweitenmodulation) Stifte. Damit können Sie fast jede Farbe das Herz begehrt, und besser als die Überblendung zwischen den Farben zu erstellen.

    Um dies zu tun jede LED erfordert 3 PWM Pins. Wie der Arduino nur 6 PWM Pins nur zwei RGB-LEDs können auf diese Weise zu einer Zeit gesteuert werden.

    In Bezug auf den Code werden wir die analogWrite (pin, Wert) Funktion zu nutzen, um weitere Informationen besuchen Sie die Codereferenz auf Arduino.cc )

    Um das Spiel mit den Ihren LEDs in analoger Weise einfach zu bekommen ...

      Kopieren Sie den folgenden Code in ein leeres Arduino Sketch Kompilieren und laden Sie die Skizze, um Ihre Arduino Board Beispiel wird man durch Drehen des LED magenta starten (Sie können dann spielen, um mit der Farbe, um sie zu anderen Voreinstellungen zu ändern oder eigene definieren) Weiter Kommentar aus dem Beispiel 1 Leitung (fügen //) Un-Kommentar Beispiel 2 (löschen //) übersetzen und laden Sie das Beispiel, um das Board. Jetzt sehen Sie, wie Sie Ihre LED leuchtet eine weißliche Farbe grün, ändern Sie die Zahlen im TempColor [] Array, um die angezeigte Farbe verändern Kommentar aus Beispiel 2 (fügen //) Kommentar- Beispiel 3 (löschen //) Kompilieren und laden Sie das Programm auf Ihren Platte ansehen, wie die LED verblasst von rot nach grün nach blau. Um zu sehen, wie dies accompished Blick auf die fadeToColor () Funktion Next bekommen Codierung und Ihre eigenen Spaß färben ändernde Programme
      (Ein kleines Video des Testprogramms)


      Anhang 1: _RGBL_AnalogTest
        // --- --- Bof RGBL-Analog Präambel // RGB LED pinsint ledAnalogOne [] = {3, 5, 6};  // Die drei Nocken des ersten Analog-LED 3 = redPin, 5 = greenPin, 6 = bluePin // Diese Pins müssen PWMint ledAnalogTwo [] = {9, 10, 11};  // Die drei Nocken des zweiten Analog-LED 9 = redPin, 10 = greenPin, 11 = bluePin // Diese Pins müssen PWM // definierten Farben (unterschiedliche RGB (Rot, Grün, Blau) Werte für Farben // (hinzufügen . Ihr eigenes dh fuscia Experiment und dann in die Liste aufnehmen) const Byte RED [] = {255, 0, 0}; const Byte ORANGE [] = {83, 4, 0}; const Byte YELLOW [] = {255, 255, 0}; const Byte GREEN [] = {0, 255, 0}; const Byte BLUE [] = {0, 0, 255}; const Byte INDIGO [] = {4, 0, 19}; const Byte VIOLET [] = {23, 0, 22}; const Byte CYAN [] = {0, 255, 255}; const Byte MAGENTA [] = {255, 0, 255}; const Byte WHITE [] = {255, 255, 255}; const Byte BLACK [] = {0, 0, 0}; const Byte PINK [] = {158, 4, 79}; // --- --- eof RGBL-Analog Preamblevoid setup () {for ( int i = 0; i <3; i ++) {pinMode (ledAnalogOne [i], output); // Setze die drei LED-Pins als Ausgänge pinMode (ledAnalogTwo [i], output); // Setze die drei LED-Pins als Ausgänge } setColor (ledAnalogOne, schwarz); // Schalten Sie führte 1 setColor (ledAnalogTwo, schwarz); // Schalten Sie führte 2} void loop () {/ * Beispiel 1 - definierten Farben zu einem bekannten Farbsatz (Sie können jede verwenden der oben definierten Farben) * / setColor (ledAnalogOne, Magenta);  / * Beispiel 2 - Jede Farbe In der LED zu jeder Farbe, die Sie * / // byte TempColor [] = {12,34,12};  // Die RGB (rot, blau gren) Wert für eine Farbe // setColor (ledAnalogOne, TempColor) angezeigt werden;  / * Beispiel 3 - Fading Fade die LED zwischen zwei Farben (dies wird von rot auf grün zu blau dann wieder auf Rot gehen) * / // fadeToColor (ledAnalogOne, ROT, GRÜN, 10);  // FadeToColor dauert 4 Parameter // ledAnalogOne - ein Array mit 3-Werte definieren, die roten, grünen und blauen Pins der LED // RED - Dies ist der Beginn Farb // GREEN - Das ist das Ende Farbe // 10 - die Verzögerung (in Millisekunden zwischen den Aktualisierungen) (bestimmt die Überblendgeschwindigkeit) // fadeToColor (ledAnalogOne, GRÜN, BLAU, 10);  // Fades von grün auf blau // fadeToColor (ledAnalogOne, blau, rot, 10);  // Fades von blau nach rot} / * Legt die Farbe der LED auf jede RGB-Wert geführt - (int Array von drei Werten der Definition der LEDs Stifte (LED [0] = redPin, LED [1] = greenPin, führte [2 ] = bluePin)) Farbe - (Byte-Array aus drei Werten defing eine RGB-Farbe angezeigt werden (Farbe [0] = neue Red-Wert, Farbe [1] = neue Grün-Wert, Farbe [2] = new Red Wert * / void setColor (int * geführt, byte * Farbe) {for (int i = 0; i <3; i ++) {// durchlaufen jeden der drei Stifte (rot grün blau) analogWrite (LED [i], 255 - Farbe [i ]); // stellen Sie den Analogausgangswert von jedem Stift auf den Eingangswert (dh führte [0] (red pin), um Farb [0] (rot Eingangsfarb) 255- // verwenden wir 255 - den Wert, weil unsere RGB LED gemeinsame Anode, bedeutet dies eine Farbe voll, als wir analogWrite Ausgang (pin, 0) // und ab, als wir analogWrite Ausgang (pin, 255).}} / * Eine Version setColor, die eine vordefinierte Farbe nimmt (neccesary auf const int vordefinierten Farben * / void setColor ermöglichen (int * geführt, const Byte * Farbe) {byte tempByte [] = {color [0], Farbe [1], Farbe [2]}; setColor (LED, tempByte );} / * Blendet die LED von einer Startfarbe zu Ende Farbe bei fadeSpeed ​​geführt - (int Array von drei Werten der Definition der LEDs Stifte (LED [0] = redPin, LED [1] = greenPin, führte [2] = bluePin)) startCcolor - (Byte-Array aus drei Werten defing den Start RGB-Farbe (Startcolor [0] = starten Red Wert, Startcolor [1] = Start Grün Wert, Startcolor [2] = Start Red Wert endCcolor - (Byte-Array aus drei Werte defing das fertige RGB-Farbe (ENDCOLOR [0] = End-Rot-Wert, ENDCOLOR [1] = End-Grün-Wert, ENDCOLOR [2] = Ende Red Wert fadeSpeed ​​- das ist die Verzögerung in Millisekunden zwischen den Schritten definiert die Geschwindigkeit der Überblendung * / void fadeToColor (int * geführt, byte * Startcolor, byte * ENDCOLOR, int fadeSpeed) {int Changered = ENDCOLOR [0] - Startcolor [0];  // Der Unterschied in den beiden Farben für den roten Kanal int changeGreen = ENDCOLOR [1] - Startcolor [1];  // Der Unterschied in den beiden Farben für den grünen Kanal int changeBlue = ENDCOLOR [2] - Startcolor [2];  // Der Unterschied in den zwei Farben für den blauen Kanal int Schritte = max (abs (Changered), max (abs (changeGreen), abs (changeBlue)));  // Stellen die Anzahl der Änderungsschritte die maximale Kanalwechsel for (int i = 0; i <Schritte; i ++) {// Iteration für den Kanal mit der maximalen Änderungsbytes newRed = Startcolor [0] + (i * Changered / Schritte );  // Die newRed Intensität abhängig von der Startintensität und die Änderung über Byte bestimmt newGreen = Startcolor [1] + (i * changeGreen / Stufen);  // Die newGreen Intensität Byte NewBlue = Startcolor [2] + (i * changeBlue / Stufen);  // Die NewBlue Intensität Byte Newcolor [] = {newRed, newGreen, NewBlue};  // Definieren Sie eine RGB-Farb Array für die neue Farbe setColor (LED, Newcolor);  // Setze die LED auf den berechneten Wert Verzögerung (fadeSpeed);  // Verzögerung fadeSpeed ​​Millisekunden, bevor Sie mit der nächsten Farbe} setColor (LED, ENDCOLOR);  // Die LED sollte an der ENDCOLOR sein, aber zu ENDCOLOR eingestellt, um Rundungsfehler zu vermeiden} / * Eine Version fadeToColor die vordefinierten Farben nimmt (neccesary auf const int vordefinierten Farben * / void fadeToColor (int * geführt, const Byte ermöglichen * Startcolor, const Byte * ENDCOLOR, int fadeSpeed) {byte tempByte1 [] = {Startcolor [0], Startcolor [1], Startcolor [2]}; Byte tempByte2 [] = {ENDCOLOR [0], ENDCOLOR [1], ENDCOLOR [2]}; fadeToColor (LED, tempByte1, tempByte2, fadeSpeed);} 

Schritt 6: Beendet

  1. RGB-LED-Tutorial (mit einem Arduino) (RGBL)
    Zu diesem Zeitpunkt Sie beherrschen die Steuerung eine RGB-LED-alles, was übrig ist, kommen mit großen Ideen, wie man es benutzt.
    Da war es Pläne für sie um oomlout HQ und wir würden uns freuen auch Sie, was Sie erhalten bis zu hören. Bitte hinterlassen Sie eine coment unten oder schreiben Sie uns eine E-Mail an [email protected] mit allen Details.