ESP32 - spanning meten

In deze handleiding leert u hoe u spanning meet van 0V tot 16,5V met behulp van een spanningssensor in combinatie met een ESP32. We leggen de stappen gedetailleerd uit:

ESP32 spanningssensor

Hardware benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Spanningssensor
1×Jumperkabels
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de Spanningssensor

Een spanningssensor is een kant-en-klaar spanningsdelercircuit dat specifieke weerstanden gebruikt om het meten van spanning eenvoudig te maken. De sensor bestaat uit twee weerstanden: een van 30 KΩ en een van 7,5 KΩ. Als de referentiespanning van de ADC (Analog-to-Digital Converter) 5V is, kan de sensor spanningen meten van 0 tot 25V DC. Bij een ADC-referentiespanning van 3,3V kan deze spanningen meten van 0 tot 16,5V DC.

Pinout

Een spanningssensor heeft twee soorten aansluitingen:

  • Ingangsinterface (aansluiten waar u de spanning wilt meten):
    • VCC-pin: Verbind deze positieve pin met het hogere spanningspunt.
    • GND-pin: Verbind deze negatieve pin met het lagere spanningspunt.
  • Uitgangsinterface (aansluiten op de ESP32):
    • Vout-pin (S): Verbind deze signaalpin met een analoge pin op de ESP32.
    • NC-pin (+): Niet aansluiten; deze wordt niet gebruikt.
    • GND-pin (-): Verbind deze grondpin met de GND (0V) van de ESP32.
    Spanningssensor pinout
    image source: diyables.io

Bedradingsschema

ESP32 spanningssensor bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-measure-voltage */ #define ANALOG_IN_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to voltage sensor #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 4096.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Snelle stappen

  • Gebruikt u voor het eerst een ESP32? Bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Verbind de ESP32 met de spanningssensor.
  • Sluit de ESP32 aan op uw pc via een USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 bord (bijvoorbeeld ESP32 Dev Module) en de correcte COM-poort.
  • Kopieer en plak de bovenstaande code in de Arduino IDE.
  • Druk in Arduino IDE op de Upload-knop om de code te compileren en naar de ESP32 te uploaden.
  • Test door 5V en 3,3V te meten op de ESP32.
  • Controleer de waarden in de Seriële Monitor.
COM6
Send
Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Het kan voorkomen dat het meetresultaat onnauwkeurig is of flink afwijkt van de werkelijke waarde. Geef de spanningssensormodule hier niet de schuld van. De code gebruikt de analogRead() functie om waarden te lezen van een ADC (Analog-to-Digital Converter) aangesloten op de spanningssensor. De ADC van de ESP32 is geschikt voor projecten waarbij geen hoge nauwkeurigheid vereist is. Echter, voor projecten die precieze metingen vereisen, houd rekening met het volgende:

  • De ESP32 ADC is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elke ESP32 kan iets verschillen, dus kalibratie is per board noodzakelijk.
  • Kalibratie kan lastig zijn, zeker voor beginners, en mogelijk niet altijd tot de exacte gewenste resultaten leiden.

Voor projecten waarbij hoge precisie vereist is, kunt u overwegen een externe ADC te gebruiken (bijvoorbeeld ADS1115) samen met de ESP32 of een Arduino, die een betrouwbaarder ADC heeft. Wilt u de ESP32 ADC toch kalibreren, raadpleeg dan de ESP32 ADC Kalibratie 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.

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!