Praxis

 

Praxis 11: Verwendung einer RGB-LED

 

Benötigtes Material:

  • ESP32 Dev Modul mit USB-Kabel
  • Breadboard
  • ein Kabelstück (männlich↔männlich)
  • vier Kabelstücke (weiblich↔männlich)
  • eine RGB-LED
  • drei Widerstände 220 Ω

Die RGB-LED

Eine RGB-LED ist eine LED, die im Inneren aus einer roten, grünen und blauen LED besteht. So können wir über die drei kurzen Beinchen der RGB-LED die verschiedenen Farben ein- und ausschalten; das vierte Beinchen dient als gemeinsamer GND-Anschluss (Kathode).

Links sieht man eine Fotografie einer RGB-LED, rechts die Verschaltung und eine symbolische Darstellung. Das längste Beinchen ist die gemeinsame Kathode.

 

 

 

 

 

Der Aufbau ist vergleichbar zu dem Aufbau aus Praxis 8. Lediglich werden jetzt die GPIOs 2, 4, und 15 benutzt, um die drei Farben der RGB-LED anzusteuern (4 für rot, 2 für grün und 15 für blau). Damit mehr als acht Schaltzustände möglich sind, werden die GPIOs wieder als „analoge“ Ausgänge (PWM) benutzt.

Der Sketch baut auf dem PWM-Sketch auf, versorgt jetzt allerdings drei GPIOs mit wechselnden Ausgabewerten.

 

#include <Arduino.h>
/* -------------------------------------
    Praxis 11
    Verwendung einer RGB-LED
    mit dem ESP32
  -----------------------------------*/

const int ledRot = 4;
const int ledGru = 2;
const int ledBla = 15;
int ausgabe;

void setup() {
  pinMode(ledRot,OUTPUT);
  pinMode(ledGru,OUTPUT);
  pinMode(ledBla,OUTPUT);
}

void loop() {
  for(int i = 0; i<=100; i++) {
    ausgabe = map(i, 0, 100, 0, 255);
    analogWrite(ledRot, ausgabe);
    analogWrite(ledGru, 255-ausgabe);
    delay(20);
  }
  for(int i = 0; i<=100; i++) {
    ausgabe = map(i, 0, 100, 255, 0);
    analogWrite(ledBla, ausgabe);
    delay(20);
  }
  for(int i = 0; i<=100; i++) {
    ausgabe = map(i, 0, 100, 255, 0);
    analogWrite(ledRot, ausgabe);
    analogWrite(ledGru, ausgabe);
    delay(20);
  }
  for(int i = 0; i<=100; i++) {
    ausgabe = map(i, 0, 100, 0, 255);
    analogWrite(ledBla, ausgabe);
    delay(20);
  }
}

Aufgaben

  1. Stecken Sie die Schaltung auf dem Breadboard nach dem obigen Plan zusammen.
    Beachten Sie dabei die Polung der LED.
  2. Geben Sie den Sketch in die IDE ein. Kompilieren und Übertragen Sie das Programm auf den ESP32.
  3. Ändern Sie den Sketch in folgender Weise ab:
    #include <Arduino.h>
    /* -------------------------------------
        Praxis 11a
        Verwendung einer RGB-LED
        mit dem ESP32
        mit Farbvorgaben
      -----------------------------------*/
    
    const int ledRot = 4;
    const int ledGru = 2;
    const int ledBla = 15;
    int ausgabe;
    int rot[] = {0,64,128,196,255,196,128,64,0,0,0,0,0,0,0,0};
    int gru[] = {0,0,0,0,0,0,64,128,196,255,196,128,64,0,0,0};
    int bla[] = {64,0,0,0,0,0,0,0,0,0,64,128,196,255,196,128};
    
    void setup() {
      pinMode(ledRot,OUTPUT);
      pinMode(ledGru,OUTPUT);
      pinMode(ledBla,OUTPUT);
    }
    
    void loop() {
      for(int i = 0; i<16; i++) {
        analogWrite(ledRot, rot[i]);
        analogWrite(ledGru, gru[i]);
        analogWrite(ledBla, bla[i]);
        delay(100);
      }
    }
    
  4. Erklären Sie die Funktionsweise des obigen Sketchs.
  5. Kompilieren und Übertragen Sie das Programm auf den ESP32.
    Drücken Sie zum Übertragen den „BOOT“-Knopf des ESP32-Moduls.