Die zuvor gewonnen Erkenntnisse nutzen wir nun um eine Schaltung zu realisieren, bei der zwei LEDs so verschaltet sind, dass sie sich unter Verwendung des Potentiometers gegensätzlich an- bzw. ausdimmen lassen.

Neben dem 10 kΩ Potentiometer verwenden wir zwei grüne LEDs und zwei 220 Ω Widerstände.

Material:

  • Breadboard
  • USB-Kabel
  • ESP32
  • Jumper Kabel (8x)
  • LED (2x)
  • 220 Ω Widerstand (2x)
  • 10 kΩ Drehpotentiometer
  • Arduino IDE

Die Schaltung sieht folgendermaßen aus:

Steckplatine:

Steckplatine

Abbildung 1: Steckplatine
Quelle: BBS 2 Wolfsburg

Schaltplan:

Schaltplan Poti LED

Abbildung 2: Schaltplan
Quelle: BBS 2 Wolfsburg

Im Programm wird die Funktion "analogWrite" verwendet. Diese ist jedoch nicht direkt für den ESP32 implementiert . Daher muss zunächst eine Bibliothek eingebunden werden.

Die Bibliothek heißt "ESP32 AnalogWrite by ERROPiX Version 0.1.0"

Um die Bibliothek zu installieren, gehen sie folgendermaßen vor:

  1. Rufen Sie unter dem Menüpunkt “Werkzeuge“ den Unterpunkt “Bibliotheken verwalten…“ auf

  2. Geben Sie nun in der Suchleiste “ ESP32 AnalogWrite“ ein und klicken Sie auf “ installieren.“

  3. Wurde die Bibliothek erfolgreich installiert so erscheint neben dem Titel der Bibliothek ein “INSTALLED“

Bibliothek

Abbildung 3: Bibbliotheken verwalten
Quelle: BBS 2 Wolfsburg

Bibliothek

Abbildung 4: Bibliothek installieren
Quelle: BBS 2 Wolfsburg

LEDLEDLED

Abbildung 5: LEDs bei verschiedenen Potentiometer Stellungen
Quelle: BBS 2 Wolfsburg

Bei der Programmierung ist zu beachten, dass "analogWrite" Werte von 0 bis 255 akzeptiert.

Über die Funktion "analogRead" wird ein analoger Wert bei einer bestimmten Stellung des Potentiometers eingelesen. Da diese Werte von 0 bis 4095 reichen müssen diese noch mit dem Wert 16,1 dividiert werden, damit sie in den Wertebereich von "analogWrite" passen. Durch Pulsweitenmodulation können die LEDs dann in verschiedenen Helligkeiten leuchten.

Source Code:

#include <Arduino.h>                  // einbinden von Header-Dateien 
#include <analogWrite.h>              // einbinden von Header-Dateien

int led1 = 26;                        // Deklaration der led1 (angeschlossen an PIN 26)
int led2 = 27;                        // Deklaration der led1 (angeschlossen an PIN 27)
void setup() // Standartstruktur
{
  Serial.begin(115200);               // Initialisiert die serielle Kommunikation mit der Geschwindigkeit in Baud.
}

void loop() // Standartstruktur
{
  int value = analogRead(34);         // Deklaration der Variablen “value“ vom Datentyp int und Initialisierung mit dem Wert, der über “analogRead“ an Pin 34 eingelesen wird
  Serial.println(value);              // Textausgabe von “value“ über den Seriellen Monitor
  analogWrite(led1 , value/16.1);     // led1 wird mit Hilfe von “analogWrite“ ein “value“  zwischen 0-255 zugewiesen (andimmen)
  analogWrite(led2 , 255-value/16.1); // led2 wird mit Hilfe von “analogWrite“ ein “value“  zwischen 0-255 zugewiesen (ausdimmen)
  delay(500);                         // Wartezeit von 0,5 Sekunden bis die Schleife erneut durchlaufen wird
}
Zuletzt geändert: Montag, 28. Juni 2021, 19:54