ESP32 ADC – skaitykite analogines reikšmes naudodami „Arduino IDE“.

Esp32 Adc Skaitykite Analogines Reiksmes Naudodami Arduino Ide



ADC (analoginis skaitmeninis keitiklis) yra elektroninė grandinė, kuri pateikiama su skirtingomis mikrovaldiklio plokštėmis arba integruota į mikrovaldiklį. ADC naudojamas analoginei įtampai iš skirtingų jutiklių konvertuoti į skaitmeninę formą. Kaip ir Arduino, ESP32 taip pat turi ADC, kuris gali nuskaityti analoginius duomenis. Sužinokime daugiau apie ESP32 ADC.

ESP32 ADC įvadas

ESP32 plokštė turi du integruotus 12 bitų ADC, taip pat žinomus kaip SAR (successive Approximation Registers) ADC. ESP32 plokštės ADC palaiko 18 skirtingų analoginių įvesties kanalų, o tai reiškia, kad galime prijungti 18 skirtingų analoginių jutiklių, kad gautume iš jų įvestį.

Tačiau šiuo atveju taip nėra; šie analoginiai kanalai yra suskirstyti į dvi kategorijas: 1 kanalas ir 2 kanalas, abu šie kanalai turi kai kuriuos kaiščius, kurie ne visada pasiekiami ADC įėjimui. Pažiūrėkime, kokie yra tie ADC kaiščiai kartu su kitais.







ESP32 ADC kaiščiai

Kaip minėta anksčiau, ESP32 plokštė turi 18 ADC kanalų. Iš 18 tik 15 yra DEVKIT V1 DOIT plokštėje, kurioje iš viso yra 30 GPIO.



Pažvelkite į savo lentą ir identifikuokite ADC kaiščius, kaip juos paryškinome toliau pateiktame paveikslėlyje:







1 kanalo ADC kontaktai

Toliau pateikiamas ESP32 DEVKIT DOIT plokštės kaiščių atvaizdavimas. ESP32 ADC1 turi 8 kanalus, tačiau DOIT DEVKIT plokštė palaiko tik 6 kanalus. Bet garantuoju, kad jų vis tiek daugiau nei pakankamai.

ADC1 GPIO PIN kodas ESP32
CH0 36
CH1 NA 30 kontaktų versijoje ESP32 (Devkit MUST)
CH2 TAI
CH3 39
CH4 32
CH5 33
CH6 3. 4
CH7 35

Šiame paveikslėlyje rodomi ESP32 ADC1 kanalai:



2 kanalo ADC kontaktai

DEVKIT DOIT plokštės turi 10 analoginių kanalų ADC2. Nors ADC2 turi 10 analoginių kanalų analoginiams duomenims skaityti, šiuos kanalus galima naudoti ne visada. ADC2 yra bendrinamas su integruotomis WiFi tvarkyklėmis, o tai reiškia, kad tuo metu, kai plokštė naudos WIFI, šie ADC2 nebus pasiekiami. Šios problemos sprendimas yra naudoti ADC2 tik tada, kai išjungta „Wi-Fi“ tvarkyklė.

Žemiau esančiame paveikslėlyje parodytas ADC2 kanalo kaiščio atvaizdavimas.

Kaip naudoti ESP32 ADC

ESP32 ADC veikia panašiai kaip Arduino, vienintelis skirtumas yra tas, kad jis turi 12 bitų ADC. Taigi, ESP32 plokštė atvaizduoja analogines įtampos vertes nuo 0 iki 4095 skaitmeninėmis diskrečiomis vertėmis.

  • Jei įtampa, suteikta ESP32 ADC, yra lygi nuliui ADC kanalui, skaitmeninė vertė bus lygi nuliui.
  • Jei įtampa, suteikta ADC, yra didžiausia, reiškia 3,3 V, išėjimo skaitmeninė vertė bus lygi 4095.
  • Norėdami išmatuoti aukštesnę įtampą, galime naudoti įtampos daliklio metodą.

Pastaba: Pagal numatytuosius nustatymus ESP32 ADC yra 12 bitų, tačiau galima sukonfigūruoti jį į 0 bitų, 10 bitų ir 11 bitų. 12 bitų numatytasis ADC gali matuoti vertę 2^12=4096 o analoginė įtampa svyruoja nuo 0V iki 3,3V.

ADC apribojimas ESP32

Štai keletas ESP32 ADC apribojimų:

  • ESP32 ADC negali tiesiogiai matuoti didesnės nei 3,3 V įtampos.
  • Kai įjungtos „Wi-Fi“ tvarkyklės, ADC2 negalima naudoti. Galima naudoti tik 8 ADC1 kanalus.
  • ESP32 ADC nėra labai linijinis; tai rodo netiesiškumas elgseną ir negali atskirti 3,2 V ir 3,3 V. Tačiau galima sukalibruoti ESP32 ADC. Čia yra straipsnis, kuris padės jums kalibruoti ESP32 ADC netiesiškumo elgesį.

ESP32 netiesiškumą galima pamatyti serijiniame Arduino IDE monitoriuje.

Programuokite ESP32 ADC naudodami Arduino IDE

Geriausias būdas suprasti ESP32 ADC veikimą yra paimti potenciometrą ir nuskaityti reikšmes prieš nulinį pasipriešinimą iki maksimumo. Toliau pateikiamas ESP32 grandinės vaizdas su potenciometru.

Sujunkite vidurinį potenciometro kaištį su skaitmeniniu ESP32 kaiščiu 25 ir 2 gnybtų kaiščius su atitinkamai 3,3 V ir GND kaiščiais.

Aparatūra

Toliau pateiktame paveikslėlyje parodyta ESP32 aparatinė įranga su potenciometru. Toliau pateikiamas reikalingų komponentų sąrašas:

  • ESP32 DEVKIT DOIT plokštė
  • Potenciometras
  • Bandomoji Lenta
  • Jumperių laidai

Kodas

Atidarykite Arduino IDE ir įkelkite toliau pateiktą kodą į ESP32 plokštę. Norėdami patikrinti, kaip įdiegti ir konfigūruoti ESP32 naudojant Arduino IDE, spustelėkite čia .

konst tarpt Pin_potenciometras = 25 ; /*Potenciometras prijungtas prie GPIO 25 (analoginis ADC2_CH8)*/
tarpt Val_potenciometras = 0 ; /*Čia bus išsaugota potenciometro nuskaitymo reikšmė*/
tuštuma sąranka ( ) {
Serijinis. pradėti ( 115 200 ) ; /*Prasideda serijinis ryšys*/
}
tuštuma kilpa ( ) {
Val_potenciometras = analogiškas Skaityti ( Pin_potenciometras ) ; /*Nuskaitoma potenciometro vertė*/
Serijinis. println ( Val_potenciometras ) ; /*Spausdina potenciometro vertę*/
uždelsimas ( 2000 m ) ; /*2 sek. delsa*/
}

Aukščiau pateiktame kode inicijuojame ESP32 plokštės potenciometro skaitmeninį kaištį 25. Šalia įvesties inicijuojamas kintamasis Val_Potentiometer. Kitas Nuoseklus ryšys inicijuojamas apibrėžiant perdavimo spartą.

Viduje kilpa kodo dalis naudojant analogRead() funkciją ADC reikšmės bus skaitomos ESP32 25 kaištyje. Toliau naudojant Serial.print() visos reikšmės išspausdinamos serijiniame monitoriuje.

Išvestis

Išvestis rodo analogines vertes, susietas su skaitmeninėmis diskrečiomis vertėmis. Kai nuskaitymo įtampa yra didžiausia, ty 3,3 V skaitmeninė išvestis yra lygi 4095, o kai skaitymo įtampa yra 0 V, skaitmeninė išvestis tampa 0.

Išvada

Analoginiai į skaitmeniniai keitikliai naudojami visur, ypač kai turime sujungti mikrovaldiklių plokštes su analoginiais jutikliais ir aparatine įranga. ESP32 turi du ADC kanalus, kurie yra ADC1 ir ADC2. Šie du kanalai kartu sudaro 18 kontaktų analoginiams jutikliams sujungti. Tačiau 3 iš jų nėra ESP32 30 kontaktų versijoje. Norėdami sužinoti daugiau apie analoginių verčių skaitymą, skaitykite straipsnį.