Praxis

 

Praxis 2: Blinkende LED am ESP32

 

Benötigtes Material:

  • ESP32 Dev Modul mit USB-Kabel

 

Nicht jedes ESP32 Dev-Modul verfügt über eine frei programmierbare eingebaute LED auf dem Board, daher wird für diesen Sketch ein kleiner „Trick" ausgenutzt: Statt einer evtl. nicht vorhanden LED wird die TX-LED auf dem ESP32 Modul zum Blinken gebracht. Diese lässt sich über den GPIO-Pin 1 schalten.
Dieses Vorgehen hat allerdings auch einen gravierenden Nachteil. Eine serielle Übertragung ist damit während des Blinkens unter Umständen eingeschränkt.

Sketch zu der Aufgabe.

/* --------------------------
   Praxis 2
   Blinkende TX-LED am ESP32
   ------------------------*/
#include <arduino.h> // Nur nötig bei VS Code

int pinLED = 1; // Ansteuern der TX LED

void setup() {
    pinMode(pinLED,OUTPUT);
}

void loop() {
    digitalWrite(pinLED,HIGH);
    delay(1000);
    digitalWrite(pinLED,LOW);
    delay(1000);
}

 

Aufgaben

  1. Übernehmen Sie den Sketch in die Arduino IDE oder in VS Code.
  2. Verbinden Sie das ESP32 Dev-Modul mit Hilfe des USB-Kabels mit dem Computer.
  3. Stellen Sie unter Werkzeuge→Board das ESP32 Dev Module ein und wählen Sie unter Werkzeuge→Port den richtigen COM-Port aus.

    Unter VS Code genügt es meistens, wenn der Port auf „AUTO" eingestellt ist.
  4. Kompilieren und übertragen Sie den Sketch auf den Mikrocontroller. Achten Sie darauf, dass man beim ESP32 unter Umständen das Programmieren des Speichers durch Drücken des BOOT-Knopfes bestätigen muss.
  5. Beobachten Sie das Blinken der TX-LED.
  6. Ändern Sie den Sketch ab, dass sich die Blinkfrequenz von zwei Sekunden auf eine halbe Sekunde verkürzt.
  7. Ändern Sie die loop-Funktion folgendermaßen ab:
    void loop() {
        int d;
        for (int i=0; i<3;i++) {
            d= i%2;
            for (int j=0; j<3;j++) {
                digitalWrite(pinLED, HIGH); // LED einschalten (PIN auf +3.3V)
                delay(500+d*1000);
                digitalWrite(pinLED, LOW); // LED ausschalten (PIN auf 0V (GND))
                delay(500);
            }
            delay(1000);
        }
        delay(1500);
    }
    Erklären Sie die Funktion des Sketches, gehen Sie dabei insbesondere auf die beiden for-Schleifen ein.