tämä artikkeli näyttää miten lukea analogista tuloa ESP32 käyttäen Arduino IDE. Analogista lukemista on hyödyllistä lukea arvoja muuttuvista vastuksista, kuten potentiometreistä tai analogisista antureista.
analogisten tulojen lukeminen ESP32: lla on yhtä helppoa kuin analogRead(GPIO) – toiminnon käyttäminen, joka hyväksyy argumentiksi sen GPIO: n, jonka haluat lukea.
meillä on myös muita oppaita analogisten pinnien käytöstä ESP-laudalla:
- ESP8266 ADC-Lue analogiset arvot Arduino IDE, MicroPython ja Lua
- ESP32 analogiset lukemat MicroPython
Katso Video
voit katsoa opetusvideon tai jatkaa tämän sivun lukemista saadaksesi kirjalliset ohjeet.
analogiset tulot (ADC)
analogisen arvon lukeminen ESP32: lla tarkoittaa, että voit mitata vaihtelevia jännitetasoja välillä 0 V ja 3.3 V.
mitattu jännite asetetaan tämän jälkeen arvolle 0-4095, jossa 0 V vastaa arvoa 0 ja 3,3 V vastaa arvoa 4095. Kaikki jännite välillä 0 V ja 3.3 V annetaan vastaava arvo välillä.
ADC on epälineaarinen
Ihannetapauksessa voit odottaa lineaarista käyttäytymistä käytettäessä ESP32 ADC nastat. Niin ei kuitenkaan tapahdu. Mitä saat on käyttäytyminen kuten on esitetty seuraavassa kaaviossa:
tämä käyttäytyminen tarkoittaa, että sinun ESP32 ei pysty erottamaan 3.3 V alkaen 3.2 V. saat saman arvon molemmille jännitteille: 4095.
sama tapahtuu hyvin pienillä jännitearvoilla: 0 V: lle ja 0,1 V: lle saadaan sama arvo: 0. Sinun täytyy pitää tämä mielessä, kun käytät ESP32 ADC nastat.
GitHubilla on aiheesta keskustelu.
analogRead () – funktio
analogisen tulon lukeminen ESP32: lla Arduino IDE: n avulla on yhtä helppoa kuin analogRead () – funktion käyttäminen. Se hyväksyy argumenttina, GPIO jonka haluat lukea:
analogRead(GPIO);
ESP32 tukee mittauksia 18 eri kanavalla. Vain 15 on saatavilla DEVKIT V1 DOIT aluksella (versio 30 GPIO).
Tartu ESP32-laudan pinoutiin ja etsi ADC-nastat. Nämä on korostettu punaisella reunuksella alla olevassa kuvassa.
Lue lisää ESP32 GPIOs: ESP32 Pinout-referenssistä.
näillä analogisilla tulonapeilla on 12-bittinen resoluutio. Tämä tarkoittaa, että kun luet analogista tuloa, sen alue voi vaihdella 0: sta 4095: een.
Huomautus: Adc2-pinnejä ei voi käyttää Wi-Fi: tä käytettäessä. Niin, jos käytät Wi-Fi ja sinulla on vaikeuksia saada arvoa adc2 GPIO, voit harkita adc1 GPIO sijaan, että pitäisi ratkaista ongelma.
muita hyödyllisiä funktioita
ADC-pinneillä on muita kehittyneempiä funktioita, joista voi olla hyötyä muissa projekteissa.
- analogreadresoluutio (resoluutio): aseta näytebitit ja resoluutio. Se voi olla arvo välillä 9 (0 – 511) ja 12 bittiä (0 – 4095). Oletusarvo on 12-bittinen resoluutio.
- analogSetWidth (width): aseta näytebitit ja resoluutio. Se voi olla arvo välillä 9 (0 – 511) ja 12 bittiä (0 – 4095). Oletusarvo on 12-bittinen resoluutio.
- analogiset syklit (syklit): asetetaan jaksojen määrä näytettä kohti. Oletusarvo on 8. Etäisyys 1-255.
- analogSetSamples (samples): aseta näytteiden määrä alueella. Oletusarvo on 1 näyte. Se lisää herkkyyttä.
- analogSetClockDiv (vaimennus): aseta jakaja ADC-kellolle. Oletusarvo on 1. Etäisyys 1-255.
- analogSetAttenuation (vaimennus): määrittää tulovaimennuksen kaikille ADC-pinneille. Oletusarvo on ADC_11db. Hyväksytyt arvot:
- ADC_0db: asettaa Ei vaimennusta. ADC voi mitata jopa noin 800 mV (1V input = ADC reading of 1088).
- ADC_2_5db: ADC: n tulojännite vaimenee, jolloin mittausalue ulottuu jopa n. 1100 mV. (1V tulo = ADC-lukema 3722).
- ADC_6db: ADC: n tulojännite vaimenee, jolloin mittausalue ulottuu jopa n. 1350 mV. (1V tulo = ADC-lukema 3033).
- ADC_11db: ADC: n tulojännite vaimenee, jolloin mittausalue ulottuu jopa n. 2600 mV. (1V input = ADC reading of 1575).
- analogSetPinAttenuation (pin, vaimennus): asettaa määritetyn tappin tulovaimennuksen. Oletusarvo on ADC_11db. Vaimennusarvot ovat samat kuin edellisessä funktiossa.
- adcAttachPin(pin): kiinnitä pin ADC: hen (poistaa myös kaikki Muut analogiset tilat, jotka voisivat olla päällä). Palauttaa TRUE or FALSE result.
- adcStart(pin), adcBusy(pin) ja resultadcEnd (pin): aloittaa ADC-muunnoksen kiinnitetyn pin: n väylällä. Tarkista, onko muuntaminen pin n ADC väylä on parhaillaan käynnissä (palauttaa TRUE tai FALSE). Saada tulos muuntaminen: palauttaa 16-bittinen kokonaisluku.
näistä toiminnoista on erittäin hyvä video, jonka voit katsoa täältä.
Lue analogiset arvot potentiometristä, jossa on ESP32
nähdäksesi, miten kaikki liittyy yhteen, teemme yksinkertaisen esimerkin lukea analoginen arvo potentiometristä.
tähän esimerkkiin tarvitaan seuraavat osat:
- ESP32 DOIT DEVKIT V1-levy (Lue parhaat ESP32 development boards)
- Potentiometri
- leipälauta
- hyppyjohdot
voit käyttää edeltäviä linkkejä tai mennä suoraan MakerAdvisor.com/tools löydät kaikki osat projekteihisi parhaaseen hintaan!
kaavio
kytke potentiometri ESP32: een. Potentiometrin keskitappi on liitettävä GPIO 34: ään. Voit käyttää seuraavaa kaavakuvaa viitteenä.
koodi
ohjelmoimme ESP32: n Arduino IDE: llä, joten varmista, että ESP32-lisäosa on asennettu ennen kuin jatkat:
- Windows instructions-ESP32 Board in Arduino IDE
- Mac and Linux instructions-ESP32 Board in Arduino IDE
avaa Arduino IDE ja kopioi seuraava koodi.
// 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);}
Näytä raakakoodi
tämä koodi yksinkertaisesti lukee arvot potentiometristä ja tulostaa nämä arvot Sarjamonitoriin.
koodissa aloitetaan määrittelemällä GPIO, johon potentiometri on kytketty. Tässä esimerkissä GPIO 34.
const int potPin = 34;
Setupissa () alustetaan sarjaviestintä baud-nopeudella 115200.
Serial.begin(115200);
silmukassa()käytä analogRead () – toimintoa potpinin analogisen tulon lukemiseen.
potValue = analogRead(potPin);
tulostetaan lopuksi sarjamonitorin potentiometristä luetut arvot.
Serial.println(potValue);
Lataa annettu koodi ESP32: een. Varmista, että työkaluvalikosta löytyy oikea taulu ja COM-portti.
esimerkin testaaminen
koodin lataamisen ja ESP32 reset-painikkeen painamisen jälkeen avaa Sarjamonitori 115200: n baud-nopeudella. Kierrä potentiometriä ja näe arvojen muuttuvan.
suurin arvo saat on 4095 ja pienin arvo on 0.
kääre ylös
tässä artikkelissa olet oppinut lukemaan analogista tuloa käyttäen ESP32 Arduino IDE. Tiivistelmä:
- ESP32 DEVKIT V1 DOIT aluksella (versio 30 nastat) on 15 ADC nastat voit lukea analogista tuloa.
- näiden pinnien resoluutio on 12 bittiä, eli arvoja voi saada 0: sta 4095: een.
- Arduino IDE: n arvon lukemiseen käytetään yksinkertaisesti analogRead () – funktiota.
- ESP32 ADC-pinneillä ei ole lineaarista käyttäytymistä. Et luultavasti voi erottaa välillä 0 ja 0.1 V, tai välillä 3.2 ja 3.3 V. sinun täytyy pitää mielessä, kun käytät ADC nastat.
toivomme, että tämä lyhyt opas on hyödyllinen. Jos haluat oppia lisää ESP32: sta, ilmoittaudu kurssillemme: Opi ESP32 Arduino IDE: llä.
muut ESP32-oppaat, joista saatat myös pitää:
- ESP32 OLED-näyttö Arduino IDE: llä
- ESP32 DHT-lämpötila-ja kosteusanturilla Arduino IDE: llä
- ESP32-WWW-palvelin DHT-lukemilla
- 20+ ESP32-projektit ja Tutorials
Kiitos lukemasta.