Cuprins:
- Pasul 1: Introducere
- Pasul 2: Resurse utilizate
- Pasul 3: Circuit utilizat
- Pasul 4: Tensiunea de ieșire depinde de variația potențiometrului digital X9C103
- Pasul 5: Controlul X9C103
- Pasul 6: Conexiuni
- Pasul 7: Capturați pe osciloscopul rampelor sus și jos
- Pasul 8: Așteptat Versus citit
- Pasul 9: Corecție
- Pasul 10: Așteptat Versus Citiți după corectare
- Pasul 11: Executarea programului în C #
- Pasul 12: Așteptați mesajul RAMP START
- Pasul 13: Cod sursă ESP32 - Exemplu de funcție de corecție și utilizarea acesteia
- Pasul 14: Comparație cu tehnicile anterioare
- Pasul 15: CODUL SURSEI ESP32 - Declarații și configurare ()
- Pasul 16: CODUL SURSEI ESP32 - Bucla ()
- Pasul 17: CODUL SURSEI ESP32 - Bucla ()
- Pasul 18: CODUL SURSEI ESP32 - Pulse ()
- Pasul 19: CODUL SURSEI PROGRAMULUI ÎN C # - Executarea programului în C #
- Pasul 20: CODUL SURSEI PROGRAMULUI ÎN C # - Biblioteci
- Pasul 21: CODUL SURSEI PROGRAMULUI ÎN C # - Spațiu de nume, clasă și global
- Pasul 22: CODUL SURSEI PROGRAMULUI ÎN C # - RegPol ()
- Pasul 23:
- Pasul 24: Descărcați fișierele
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Astăzi vom vorbi despre „calibrarea automată ADC ESP32”. Poate părea un subiect foarte tehnic, dar cred că este foarte important pentru tine să știi puțin despre el.
Acest lucru se datorează faptului că nu este vorba doar de ESP32, sau chiar de calibrarea ADC, ci mai degrabă de tot ceea ce implică senzori analogici pe care ați putea dori să-i citiți.
Majoritatea senzorilor nu sunt liniari, așa că vom introduce un calibrator prototip automat pentru convertoarele digitale analogice. De asemenea, vom face o corecție a unui ESP32 AD.
Pasul 1: Introducere
Există un videoclip în care vorbesc puțin despre acest subiect: Nu știai? Reglare ESP32 ADC. Acum, să vorbim într-un mod automat care vă împiedică să efectuați întregul proces de regresie polinomială. Verifică!
Pasul 2: Resurse utilizate
· Jersee
· 1x Protoboard
· 1x ESP WROOM 32 DevKit
· 1x cablu USB
· 2x rezistențe 10k
· 1x rezistor 6k8 sau 1x 10k potențiometru mecanic pentru reglarea divizorului de tensiune
· 1x X9C103 - 10k potențiometru digital
· 1x LM358 - Amplificator operațional
Pasul 3: Circuit utilizat
În acest circuit, LM358 este un amplificator operațional în configurația „buffer de tensiune”, izolând cele două divizoare de tensiune astfel încât unul să nu-l influențeze pe celălalt. Acest lucru permite obținerea unei expresii mai simple, deoarece R1 și R2 nu mai pot fi considerate, cu o bună aproximare, în paralel cu RB.
Pasul 4: Tensiunea de ieșire depinde de variația potențiometrului digital X9C103
Pe baza expresiei pe care am obținut-o pentru circuit, aceasta este curba de tensiune la ieșirea sa atunci când modificăm potențiometrul digital de la 0 la 10k.
Pasul 5: Controlul X9C103
· Pentru a controla potențiometrul nostru digital X9C103 îl vom alimenta cu 5V, provenind de la același USB care alimentează ESP32, conectându-se în VCC.
· Conectăm pinul SUS / JOS la GPIO12.
· Conectăm pinul INCREMENT la GPIO13.
· Conectăm DEVICE SELECT (CS) și VSS la GND.
· Conectăm VH / RH la sursa de 5V.
· Conectăm VL / RL la GND.
· Conectăm RW / VW la intrarea bufferului de tensiune.
Pasul 6: Conexiuni
Pasul 7: Capturați pe osciloscopul rampelor sus și jos
Putem observa cele două rampe generate de codul ESP32.
Valorile rampei de creștere sunt capturate și trimise către software-ul C # pentru evaluarea și determinarea curbei de corecție.
Pasul 8: Așteptat Versus citit
Pasul 9: Corecție
Vom folosi curba de eroare pentru a corecta ADC. Pentru aceasta, vom alimenta un program realizat în C #, cu valorile ADC. Acesta va calcula diferența dintre valoarea citită și cea așteptată, creând astfel o curbă ERROR în funcție de valoarea ADC.
Cunoscând comportamentul acestei curbe, vom cunoaște eroarea și o vom putea corecta.
Pentru a cunoaște această curbă, programul C # va utiliza o bibliotecă care va efectua o regresie polinomială (ca cele realizate în videoclipurile anterioare).
Pasul 10: Așteptat Versus Citiți după corectare
Pasul 11: Executarea programului în C #
Pasul 12: Așteptați mesajul RAMP START
Pasul 13: Cod sursă ESP32 - Exemplu de funcție de corecție și utilizarea acesteia
Pasul 14: Comparație cu tehnicile anterioare
Pasul 15: CODUL SURSEI ESP32 - Declarații și configurare ()
Pasul 16: CODUL SURSEI ESP32 - Bucla ()
Pasul 17: CODUL SURSEI ESP32 - Bucla ()
Pasul 18: CODUL SURSEI ESP32 - Pulse ()
Pasul 19: CODUL SURSEI PROGRAMULUI ÎN C # - Executarea programului în C #
Pasul 20: CODUL SURSEI PROGRAMULUI ÎN C # - Biblioteci
Pasul 21: CODUL SURSEI PROGRAMULUI ÎN C # - Spațiu de nume, clasă și global
Pasul 22: CODUL SURSEI PROGRAMULUI ÎN C # - RegPol ()
Pasul 23:
Pasul 24: Descărcați fișierele
RAR