ESP32 S3 - Potentiometer

Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 S3 mit einem Potentiometer verwenden. Das Potentiometer ist eines der vielseitigsten Eingabegeräte und ermöglicht es, eine physische Drehung in einen digitalen Wert umzuwandeln, den Ihr ESP32 S3 lesen und verarbeiten kann.

ESP32 S3 - Potentiometer

Was Sie bauen werden:

  1. Eine Schaltung, die ein Potentiometer mit dem ESP32 S3 verbindet
  2. Code, der den rohen analogen Wert des Potentiometers ausliest
  3. Eine Spannungsumrechnung, die den ADC-Messwert in echte Volt umrechnet
  4. Eine Ausgabe im seriellen Monitor, die die aktuellen Analog- und Spannungswerte anzeigt

Überblick über Potentiometer

Das Potentiometer (auch Drehwinkelsensor genannt) ist ein veränderbarer Widerstand mit drei Anschlüssen, der zur Einstellung von Werten wie Lautsprecherlautstärke, Raumtemperatur oder Lampenhelligkeit verwendet wird. Durch Drehen der Welle verändern Sie den Widerstand zwischen dem Ausgangspin und den beiden Versorgungsanschlüssen und erzeugen so eine proportionale Ausgangsspannung, die Ihr Mikrocontroller auslesen kann.

Pinbelegung des Potentiometers

Wichtige Spezifikationen

Pinbelegung des Potentiometers

Ein Potentiometer hat in der Regel 3 Pins:

  1. VCC-Pin: Verbinden Sie diesen Pin mit VCC (5V oder 3,3V)
  2. GND-Pin: Verbinden Sie diesen Pin mit GND (0V)
  3. Ausgangspin: gibt die Spannung an den analogen Eingangspin des ESP32 S3 aus
Pinbelegung des Potentiometers

※ Notiz:

Der GND-Pin und der VCC-Pin sind vertauschbar

Wie ein Potentiometer funktioniert

Die Welle des Potentiometers kann von 0° (am nächsten zum GND-Pin) bis zu einem Winkel (am nächsten zum VCC-Pin) gedreht werden, der ANGLE_MAX genannt wird.

Die Spannung am Ausgangspin ist direkt proportional zum Winkel der Welle und variiert von 0 V bis VCC. Die folgende Tabelle zeigt den Zusammenhang zwischen Winkel und Ausgangsspannung:

Winkel Spannung
0°0v
ANGLE_MAX°VCC
Winkel°Winkel° × VCC / ANGLE_MAX°

※ Notiz:

Der Wert ANGLE_MAX hängt vom Hersteller ab.

Wie ein Potentiometer funktioniert

ESP32 S3 - Dreh-Potentiometer

Der analoge Eingangspin des ESP32 S3 wandelt eine Spannung (zwischen 0 V und 3,3 V) in einen ganzzahligen Wert (zwischen 0 und 4095) um, der als ADC-Wert oder analoger Wert bezeichnet wird.

Sie können den Ausgangspin des Potentiometers mit einem analogen Eingangspin des ESP32 S3 verbinden und dann den analogen Wert von diesem Pin auslesen. Der analoge Wert kann in andere nützliche Werte umgerechnet werden:

  • Umrechnung des analogen Werts in den Winkel des Potentiometers.
  • Umrechnung des analogen Werts in die Spannung des Potentiometers.
  • Umrechnung des analogen Werts in einen steuerbaren Einstellwert (z. B. Lautsprecherlautstärke, Raumtemperatur oder Lampenhelligkeit).

Umrechnungsbereich

VON BIS
Winkelvom Benutzer gedreht 0° → ANGLE_MAX°
Spannungvom Pin des Potentiometers 0V → 3.3V
ADC-Wertvom ESP32 S3 gelesen 0 → 4095
Einstellwertvom ESP32 S3 umgerechnet VALUE_MIN → VALUE_MAX

Schaltplan zwischen Potentiometer und ESP32 S3

Schließen Sie das Potentiometer mit einem Steckbrett und Jumper-Kabeln wie im folgenden Diagramm gezeigt an Ihren ESP32 S3 an. Stellen Sie sicher, dass der Ausgangspin des Potentiometers mit einem ADC-fähigen GPIO des ESP32 S3 verbunden ist.

  • So verbinden Sie ESP32 S3 und Potentiometer mit einem Steckbrett
Schaltplan ESP32 S3 Potentiometer

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Sicherheitshinweise

Versorgen Sie das Potentiometer immer über die 3,3-V-Leitung des ESP32 S3 statt über 5 V, da der ADC-Eingang des ESP32 S3 für maximal 3,3 V ausgelegt ist. Überprüfen Sie Ihre Verdrahtung vor dem Einschalten sorgfältig, um keine Überspannung an den analogen Pin anzulegen.

Potentiometer-PinESP32 S3-Pin
VCC3.3V
GNDGND
AusgangGPIO5 (oder ein beliebiger ADC-fähiger GPIO)

So programmieren Sie ein Potentiometer

Das Auslesen eines Potentiometers mit dem ESP32 S3 erfordert nur wenige Zeilen Arduino-Code. Die folgenden Code-Ausschnitte zeigen jeden Schritt — vom Auslesen des rohen ADC-Werts bis zur Umrechnung in aussagekräftige Einheiten.

  • Lesen Sie mit der Funktion analogRead() den Wert eines Eingangspins, der mit dem Ausgangspin des Potentiometers verbunden ist.
analogValue = analogRead(5); // GPIO5
  • Rechnen Sie mit der Funktion map() in den Winkel des Potentiometers um.
angle = map(analogValue, 0, 4095, 0, ANGLE_MAX);
  • Rechnen Sie in die Spannung des Potentiometers um:
voltage = map(analogValue, 0, 4095, 0, 3.3);
  • Rechnen Sie in einen steuerbaren Wert um (z. B. Lautstärke, Helligkeit oder Motordrehzahl):
value = map(analogValue, 0, 4095, VALUE_MIN, VALUE_MAX);
  • Zum Beispiel die Umrechnung in die Helligkeit einer LED. Wie im PWM-Tutorial erwähnt, kann die Helligkeit einer LED mit einem PWM-Wert von 0 (immer AUS) bis 255 (immer EIN) gesteuert werden. Sie können den analogen Wert wie folgt auf die LED-Helligkeit abbilden:
brightness = map(analogValue, 0, 4095, 0, 255);

Wenn Sie die LED von einer Nachtlicht-Stufe bis zur vollen Helligkeit dimmen möchten:

nightlight = 100; // depending on your desired brightness brightness = map(analogValue, 0, 4095, nightlight, 255);

※ Notiz:

Die Funktion map() kann den analogen Wert nur in einen Wert vom Typ int oder long umrechnen. Wenn der steuerbare Wert vom Typ float ist, verwenden Sie stattdessen die Funktion floatMap().

Funktion floatMap():

float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

ESP32 S3 Code

Der folgende Code liest den rohen ADC-Wert und die entsprechende Spannung des Potentiometers und gibt beide alle 500 ms im seriellen Monitor aus. Laden Sie den Sketch auf Ihren ESP32 S3 hoch und öffnen Sie den seriellen Monitor, um die aktuellen Messwerte beim Drehen des Knopfes zu sehen.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-potentiometer */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-potentiometer */ float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin GPIO5: int analogValue = analogRead(5); // Rescale to potentiometer's voltage (from 0V to 3.3V): float voltage = floatMap(analogValue, 0, 4095, 0, 3.3); // print out the value you read: Serial.print("Analog: "); Serial.print(analogValue); Serial.print(", Voltage: "); Serial.println(voltage); delay(1000); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  3. Kompilieren Sie den Code und laden Sie ihn auf das ESP32 S3-Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
Arduino IDE Code hochladen
  1. Öffnen Sie den seriellen Monitor in der Arduino IDE.
So öffnen Sie den seriellen Monitor in der Arduino IDE
  1. Drehen Sie den Potentiometer-Knopf langsam von einem Ende zum anderen.
  2. Beobachten Sie die aktuellen Messwerte im seriellen Monitor.
  3. Profi-Tipp: Versuchen Sie, den analogen Wert per PWM auf die Helligkeit einer LED abzubilden, um die Wirkung des Potentiometers in Echtzeit physisch zu sehen.

Serieller Monitor

Nach dem Hochladen zeigt der serielle Monitor den rohen analogen Wert zusammen mit der berechneten Spannung an. Drehen Sie das Potentiometer, um die Werte in Echtzeit zu verändern. Die folgenden Messwerte wurden 2026 aufgezeichnet:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:00:01] Analog: 0, Voltage: 0.00 [2026-06-16 10:00:02] Analog: 312, Voltage: 0.25 [2026-06-16 10:00:03] Analog: 2048, Voltage: 1.65 [2026-06-16 10:00:04] Analog: 4095, Voltage: 3.30
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), um Werte vom ADC zu lesen, der mit dem Potentiometer verbunden ist. Der ADC des ESP32 S3 eignet sich für Projekte, die KEINE hohe Genauigkeit erfordern. Für Projekte, die präzise Messungen benötigen, beachten Sie:

  • Der ADC des ESP32 S3 ist nicht perfekt genau und muss möglicherweise kalibriert werden. Jedes Board kann sich leicht unterschiedlich verhalten.
  • Die Kalibrierung kann für Anfänger schwierig sein und liefert nicht immer exakte Ergebnisse.

Für hochpräzise Projekte sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 S3 verwenden. Wenn Sie den ADC dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.

Anwendungen

Potentiometer werden überall dort eingesetzt, wo ein Benutzer einen Wert interaktiv einstellen muss. Einige praktische Anwendungen für Ihre ESP32 S3-Projekte sind:

  1. Lautstärkeregelung: Passen Sie den Audio-Ausgangspegel in einem Bluetooth- oder kabelgebundenen Lautsprechersystem an.
  2. Helligkeitsdimmer: Steuern Sie die Intensität von LEDs oder einer LCD-Hintergrundbeleuchtung.
  3. Motordrehzahlregelung: Legen Sie die Zieldrehzahl eines Gleichstrommotors über eine PWM-Zuordnung fest.
  4. Temperatur-Sollwert: Ermöglichen Sie es Benutzern, eine gewünschte Raumtemperatur für einen Thermostat einzustellen.
  5. Servoposition: Drehen Sie einen Servomotor in einem Roboterarm auf einen vom Benutzer gewählten Winkel.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3-Projekt an.

Herausforderungen

Nachdem Sie nun eine funktionierende Potentiometer-Schaltung am ESP32 S3 haben, erweitern Sie das Projekt mit diesen Übungen, um Ihr Verständnis zu vertiefen.

  1. Anfänger: Ändern Sie den für das Potentiometer verwendeten GPIO-Pin, passen Sie den Code entsprechend an und prüfen Sie, ob die Messwerte weiterhin korrekt funktionieren.
  2. Fortgeschritten: Verwenden Sie den Potentiometer-Wert, um die Helligkeit einer LED zu steuern, die an einem PWM-fähigen Pin des ESP32 S3 angeschlossen ist.
  3. Experte: Bauen Sie eine einfache Benutzeroberfläche auf einem OLED-Display, die einen Fortschrittsbalken mit der aktuellen Potentiometer-Position in Prozent anzeigt.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!