ESP32 ADC – lees analoge waarden met Arduino IDE

dit artikel laat zien hoe analoge ingangen te lezen met de ESP32 met Arduino IDE. De analoge lezing is nuttig om waarden van veranderlijke weerstanden zoals potentiometers, of analoge sensoren te lezen.

ESP32 ADC Las analoge waarden met Arduino IDE

het lezen van analoge ingangen met de ESP32 is net zo eenvoudig als het gebruik van de analogRead (GPIO) functie, die accepteert als argument, de GPIO die u wilt lezen.

we hebben ook andere tutorials over het gebruik van analoge pinnen met ESP bord:

  • ESP8266 ADC – lees analoge waarden met Arduino IDE, MicroPython en Lua
  • ESP32 analoge meetwaarden met MicroPython

bekijk de Video

u kunt de video tutorial bekijken of deze pagina blijven lezen voor de schriftelijke instructies.

analoge ingangen (ADC)

het lezen van een analoge waarde met de ESP32 betekent dat u wisselende spanningsniveaus tussen 0 V en 3,3 V kunt meten.

de gemeten spanning wordt dan toegewezen aan een waarde tussen 0 en 4095, waarbij 0 V overeenkomt met 0 en 3,3 V overeenkomt met 4095. Om het even welke spanning tussen 0 V en 3,3 V zal de overeenkomstige waarde daartussen worden gegeven.

ESP32 ADC analoge gelezen ingangen bereik waarde

ADC is niet-lineair

idealiter zou je een lineair gedrag verwachten bij het gebruik van de ESP32 ADC pins. Maar dat gebeurt niet. Wat u krijgt is een gedrag zoals weergegeven in de volgende grafiek:

dit gedrag betekent dat uw ESP32 niet in staat is om 3 te onderscheiden.3 V van 3.2 V krijg je dezelfde waarde voor beide spanningen: 4095.

hetzelfde gebeurt voor zeer lage spanningswaarden: voor 0 V en 0.1 V krijg je dezelfde waarde: 0. Je moet dit in gedachten houden bij het gebruik van de ESP32 ADC pins.

er is een discussie over GitHub over dit onderwerp.

analogRead () functie

het lezen van een analoge ingang met de ESP32 met behulp van de Arduino IDE is zo eenvoudig als het gebruik van de analogRead() functie. Het accepteert als argument, de GPIO die u wilt lezen:

analogRead(GPIO);

de ESP32 ondersteunt metingen in 18 verschillende kanalen. Slechts 15 zijn beschikbaar in het DevKit V1 DOIT bord (versie met 30 GPIO ‘ s).

pak uw ESP32 bord pinout en zoek de ADC pins. Deze zijn gemarkeerd met een rode rand in de figuur hieronder.

ESP32 ADC GPIOs-pinnen

meer informatie over de ESP32 GPIOs: ESP32 Pinout-referentie.

deze analoge ingangspelden hebben een resolutie van 12 bits. Dit betekent dat wanneer je een analoge ingang leest, het bereik kan variëren van 0 tot 4095.

opmerking: adc2-pincodes kunnen niet worden gebruikt wanneer Wi-Fi wordt gebruikt. Zo, als u gebruik maakt van Wi-Fi en je hebt moeite om de waarde van een ADC2 GPIO, kunt u overwegen met behulp van een ADC1 GPIO in plaats daarvan, dat moet het oplossen van uw probleem.

andere nuttige functies

er zijn andere meer geavanceerde functies te gebruiken met de ADC-pinnen die nuttig kunnen zijn in andere projecten.

  • analogReadResolution(resolution): stel de monsterbits en resolutie in. Het kan een waarde zijn tussen 9 (0 – 511) en 12 bits (0 – 4095). Standaard is 12-bits resolutie.
  • analogenetwidth (width): stel de voorbeeldbits en resolutie in. Het kan een waarde zijn tussen 9 (0 – 511) en 12 bits (0 – 4095). Standaard is 12-bits resolutie.
  • analoge cycli (cycli): stel het aantal cycli per monster in. Standaard is 8. Bereik: 1 tot 255.
  • analogen monsters (monsters): stel het aantal monsters in het bereik in. Standaard is 1 sample. Het heeft een effect van toenemende gevoeligheid.
  • analogSetClockDiv (verzwakking): stel de verdeler in voor de ADC-klok. Standaard is 1. Bereik: 1 tot 255.
  • analogSetAttenuation (demping): stelt de inputdemping in voor alle ADC-pinnen. Standaard is ADC_11db. Geaccepteerde waarden:
    • ADC_0db: zet geen demping in. ADC kan tot ongeveer 800 mV meten (1V input = ADC lezing van 1088).
    • ADC_2_5db: de ingangsspanning van ADC wordt verzwakt, waardoor het meetbereik tot ca. 1100 mV. (1V input = ADC lezing van 3722).
    • ADC_6db: de ingangsspanning van ADC wordt verzwakt, waardoor het meetbereik tot ca. 1350 mV. (1V input = ADC lezing van 3033).
    • ADC_11db: de ingangsspanning van ADC zal worden verzwakt, waardoor het meetbereik tot ca. 2600 mV. (1V input = ADC lezing van 1575).
  • analogSetPinAttenuation (pin, demping): stelt de input demping voor de opgegeven pin. De standaard is ADC_11db. De dempingswaarden zijn dezelfde van de vorige functie.
  • adcAttachPin (pin): bevestig een pin aan ADC (wist ook elke Andere analoge modus die aan zou kunnen zijn). Geeft waar of onwaar resultaat terug.
  • adcStart( pin), adcBusy(pin) en resultadcEnd(pin): Start een ADC-conversie op de aangesloten pin-bus. Controleer of de conversie op de ADC-bus van de pin momenteel draait (geeft TRUE of FALSE terug). Krijg het resultaat van de conversie: geeft 16-bit integer terug.

er is een zeer goede video waarin deze functies worden uitgelegd die u hier kunt bekijken.

lees analoge waarden uit een Potentiometer met ESP32

om te zien hoe alles met elkaar verbonden is, maken we een eenvoudig voorbeeld om een analoge waarde uit een potentiometer te lezen.

voor dit voorbeeld hebt u de volgende delen nodig:

  • ESP32 DOIT DEVKIT V1 Board (lees Best ESP32 development boards)
  • Potentiometer
  • Breadboard
  • Jumper wires

u kunt de vorige links gebruiken of direct naar MakerAdvisor.com/tools om alle onderdelen voor uw projecten tegen de beste prijs te vinden!

schema

sluit een potentiometer aan op uw ESP32. De potentiometer middelste pin moet worden aangesloten op GPIO 34. U kunt het volgende schema als referentie gebruiken.

lees waarde van Potentiometer ESP32 Arduino IDE

Code

we programmeren de ESP32 met behulp van Arduino IDE, dus zorg ervoor dat je de ESP32 add-on hebt geïnstalleerd voordat je verder gaat:

  • Windows instructions-ESP32 Board in Arduino IDE
  • Mac and Linux instructions-ESP32 Board in Arduino IDE

Open je Arduino IDE en kopieer de volgende code.

// Potentiometer is connected to GPIO 34 (Analog ADC1_CH6) const int potPin = 34;// variable for storing the potentiometer valueint potValue = 0;void setup() { Serial.begin(115200); delay(1000);}void loop() { // Reading potentiometer value potValue = analogRead(potPin); Serial.println(potValue); delay(500);}

Raw-code

deze code leest eenvoudig de waarden van de potentiometer en drukt deze waarden af in de seriële Monitor.

in de code begint u met het definiëren van de GPIO waarmee de potentiometer is verbonden. In dit voorbeeld, GPIO 34.

const int potPin = 34;

in de setup(), initialiseer een seriële communicatie met een baudrate van 115200.

Serial.begin(115200);

gebruik in de loop () de functie analogRead()om de analoge ingang van de potPin te lezen.

potValue = analogRead(potPin);

ten slotte drukt u de waarden af die van de potentiometer in de seriële monitor worden afgelezen.

Serial.println(potValue);

upload de opgegeven code naar uw ESP32. Zorg ervoor dat je de juiste board en COM poort hebt geselecteerd in het menu Extra.

het voorbeeld testen

na het uploaden van de code en het indrukken van de ESP32 reset knop, opent u de seriële Monitor met een baudrate van 115200. Draai de potentiometer en zie de waarden veranderen.

lees potentiometer ESP32 analogRead

de maximale waarde die je krijgt is 4095 en de minimale waarde is 0.

lees de demonstratie van de de monitorarduino IDE van potentiometer ESP32 analogRead seriële

in dit artikel heb je geleerd hoe je analoge ingangen kunt lezen met de ESP32 met de Arduino IDE. In het kort:

  • de ESP32 DEVKIT v1 DOIT Raad (versie met 30 spelden) heeft 15 ADC spelden u kunt gebruiken om analoge ingangen te lezen.
  • deze pinnen hebben een resolutie van 12 bits, wat betekent dat je waarden kunt krijgen van 0 tot 4095.
  • om een waarde in de Arduino IDE te lezen, gebruik je gewoon de functie analogRead ().
  • de ESP32 ADC-pins hebben geen lineair gedrag. Je zult waarschijnlijk niet in staat zijn om onderscheid te maken tussen 0 en 0.1 V, of tussen 3.2 en 3.3 V. Je moet dat in gedachten houden bij het gebruik van de ADC-pinnen.

we hopen dat u deze korte handleiding nuttig vindt. Als je meer wilt weten over de ESP32, schrijf je dan in voor onze cursus: leer ESP32 met Arduino IDE.

andere ESP32-hulplijnen die u misschien ook leuk vindt:

  • ESP32 OLED-Display met Arduino IDE
  • ESP32 met DHT-temperatuur-en vochtigheidssensor met Arduino IDE
  • ESP32 webserver met DHT-metingen
  • 20+ ESP32-projecten en Tutorials

Bedankt voor het lezen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

Previous post How Ian McKellen Almost Didn ‘ t Play Gandalf
Next post Capital orthopedic Specialists-Lanham