ESP32 - Potentiometer
Deze tutorial laat u zien hoe u de ESP32 gebruikt met een potentiometer. We behandelen in detail:
- Hoe de potentiometer werkt
- Hoe u de ESP32 aansluit op een potentiometer
- Hoe u de ESP32 programmeert om de waarde van een potentiometer uit te lezen
- Hoe u de uitgelezen waarde van een potentiometer omzet naar een bruikbare waarde
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables ESP32 Starterskit (ESP32 inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de Potentiometer
De potentiometer (ook bekend als roterende hoeksensor) wordt gebruikt om instellingen te wijzigen (bijv. het volume van een speaker, kamertemperatuur, helderheid van een lamp...).

Pinout Potentiometer
Een potentiometer heeft meestal 3 pinnen:
- VCC pin: sluit deze pin aan op VCC (5V of 3,3V)
- GND pin: sluit deze pin aan op GND (0V)
- Output pin: levert de uitgangsspanning aan de analoge ingang van de ESP32.

※ Notiz:
De GND- en VCC-pinnen zijn omwisselbaar.
Hoe de Potentiometer Werkt
De as van de potentiometer kan gedraaid worden van 0° (dichtst bij de GND-pin) tot een maximale hoek (dichtst bij de VCC-pin), genoemd ANGLE_MAX.
De spanning op de output pin is recht evenredig met de hoekpositie van de as en varieert van 0 tot VCC. De onderstaande tabel toont de relatie tussen hoek en spanning op de output pin:
| Hoek | Spanning |
|---|---|
| 0° | 0V |
| ANGLE_MAX° | VCC |
| hoek° | hoek° × VCC / ANGLE_MAX° |
※ Notiz:
De waarde van ANGLE_MAX is afhankelijk van de fabrikant.

ESP32 - Roterende Potentiometer
De analoge ingangspin van de ESP32 zet de spanning (tussen 0V en 3,3V) om in een geheel getal (tussen 0 en 4095), genaamd ADC-waarde of analoge waarde.
We kunnen de output pin van de potentiometer verbinden met een analoge ingangspin van de ESP32 en vervolgens de analoge waarde vanaf deze pin uitlezen.
De analoge waarde kan worden herschaald naar een andere waarde. Enkele toepassingen:
- Herschalen van de analoge waarde naar de hoek van de potentiometer.
- Herschalen van de analoge waarde naar de spanning van de potentiometer.
- Herschalen van de analoge waarde naar een instelwaarde (bijv. volume van een speaker, kamertemperatuur, helderheid van een lamp...)
Herschalen van het bereik
| VAN | NAAR | |||
|---|---|---|---|---|
| Hoek | door gebruiker gedraaid | 0° | → | ANGLE_MAX° |
| Spanning | van potentiometer pin | 0V | → | 3,3V |
| ADC waarde | uitgelezen door ESP32 | 0 | → | 4095 |
| Instelwaarde | omgezet door ESP32 | VALUE_MIN | → | VALUE_MAX |
Aansluitschema tussen Potentiometer en ESP32
- Hoe u de ESP32 en potentiometer verbindt met een breadboard

This image is created using Fritzing. Click to enlarge image
Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.
- Hoe u de ESP32 en potentiometer aansluit via een schroefterminal breakout board

Hoe Potentiometer te Programmeren
- Lees de waarde van een input pin uit, verbonden met de output pin van de potentiometer, met behulp van de analogRead() functie.
- Schaal de waarde om naar de hoek van de potentiometer met behulp van de map() functie.
- Schaal om naar de spanning van de potentiometer:
- Schaal om naar een regelbare waarde (bijv. volume van stereo, helderheid, snelheid van een DC motor...)
- Bijvoorbeeld, herschalen naar de helderheid van een LED. Zoals in deze tutorial genoemd kan de helderheid van een LED geregeld worden met behulp van een PWM-waarde van 0 (altijd UIT) tot 255 (altijd AAN). Daarom kunnen we de analoge waarde mappen naar de helderheid van de LED (van UIT naar helderst) als volgt:
Als u de LED wilt dimmen van nachtlampje tot helderst,
※ Notiz:
De map() functie kan alleen gebruikt worden om een analoge waarde te herschalen naar een int of long type. Als de regelbare waarde een float type is, moet u in plaats van map() de functie floatMap() gebruiken.
floatMap() functie:
ESP32 Code
Snelle Stappen
- Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving voor ESP32 instelt in Arduino IDE.
- Kopieer de bovenstaande code en plak deze in Arduino IDE.
- Compileer en upload de code naar het ESP32-board door te klikken op de Upload-knop in Arduino IDE

- Open de Seriële Monitor in Arduino IDE

- Draai aan de potentiometer
- Bekijk het resultaat op de Seriële Monitor. Het ziet er als volgt uit:
※ Notiz:
Deze tutorial gebruikt de functie analogRead() om waarden uit te lezen van een ADC (Analog-to-Digital Converter) die verbonden is met een potentiometer. De ESP32 ADC is geschikt voor projecten die GEEN hoge nauwkeurigheid vergen. Voor projecten waarbij precieze metingen nodig zijn, houd rekening met het volgende:
- De ESP32 ADC is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elk ESP32-board kan iets verschillen, dus de ADC moet per afzonderlijk board gekalibreerd worden.
- Kalibratie kan lastig zijn, vooral voor beginners, en levert niet altijd precies de gewenste resultaten op.
Voor projecten die een hoge precisie vereisen, overweeg het gebruik van een externe ADC (bijv. ADS1115) samen met de ESP32, of gebruik een Arduino met een betrouwbaardere ADC. Wilt u toch de ESP32 ADC kalibreren, raadpleeg dan de ESP32 ADC Calibration Driver.
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.