2.3 RGB LED

Überblick

In dieser Lektion erfahren Sie, wie Sie RGB-LEDs verwenden. Eine RGB-LED verpackt drei LEDs in Rot, Grün und Blau in einer transparenten oder halbtransparenten Kunststoffhülle. Es zeigt eine breite Palette von Farben an, indem es die Eingangsspannung von drei Pins ändert und die drei Farben auf unterschiedliche Weise addiert. Laut einer Statistik können RGB-LEDs 16.777.216 verschiedene Farben erzeugen.

Fritzing-Schaltung

../_images/image425.png

Hier geben wir einen Wert zwischen 0 und 255 in die drei Pins der RGB-LED ein, damit sie verschiedene Farben anzeigt. Nachdem Sie die Pins von R, G und B mit einem Strombegrenzungswiderstand verbunden haben, verbinden Sie sie mit Pin 9, Pin 10 bzw. Pin 11. Der längste Pin (GND) der LED ist mit dem GND des Mega 2560 verbunden. Wenn den drei Pins unterschiedliche PWM-Werte gegeben werden, zeigt die RGB-LED unterschiedliche Farben an.

Schematische Darstellung

../_images/image426.png

Code

Bemerkung

  • Sie können die Datei 2.3_rgbLed.ino unter dem Pfad sunfounder_vincent_kit_for_arduino\code\2.3_rgbLed direkt öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE 1/2.

  • Oder klicken Sie auf Code öffnen, um ihn im Web Editor zu öffnen .

  • Laden Sie dann Laden Sie den Code hoch auf das Board hoch.

Code-Analyse

In diesem Beispiel ist die Funktion, die zum Zuweisen von Werten zu den drei Pins von RGB verwendet wird, in eine unabhängige Unterfunktion color() gepackt.

void color (unsigned char red, unsigned char green, unsigned char blue)// the color generating function
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}

In loop() fungiert der RGB-Wert als Eingabeargument zum Aufrufen der Funktion color(), um zu erkennen, dass RGB verschiedene Farben ausgeben kann.

void loop()  // run over and over again
{
color(255, 0, 0); // turn the RGB LED red
delay(1000); // delay for 1 second
color(0,255, 0); // turn the RGB LED green
delay(1000); // delay for 1 second
color(0, 0, 255); // turn the RGB LED blue
delay(1000); // delay for 1 second
// ...
}

Phänomen Bild

../_images/image79.jpeg