Cuprins:

Profesioniștii știu acest lucru !: 24 de pași
Profesioniștii știu acest lucru !: 24 de pași

Video: Profesioniștii știu acest lucru !: 24 de pași

Video: Profesioniștii știu acest lucru !: 24 de pași
Video: Profesioniştii cu Cornel Nistorescu (@TVR1) 2024, Noiembrie
Anonim
Image
Image

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

Resurse utilizate
Resurse utilizate

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

Circuit folosit
Circuit folosit

Î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

Tensiunea de ieșire depinde de variația potențiometrului digital X9C103
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

Controlul X9C103
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

Conexiuni
Conexiuni

Pasul 7: Capturați pe osciloscopul rampelor sus și jos

Captură pe osciloscopul rampelor sus și jos
Captură 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

Așteptat față de citire
Așteptat față de citire

Pasul 9: Corecție

Corecţie
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

Așteptat față de citit după corectare
Așteptat față de citit după corectare

Pasul 11: Executarea programului în C #

Executarea programului în C #
Executarea programului în C #

Pasul 12: Așteptați mesajul RAMP START

Așteptați mesajul RAMP START
Așteptați mesajul RAMP START
Așteptați mesajul RAMP START
Așteptați mesajul RAMP START

Pasul 13: Cod sursă ESP32 - Exemplu de funcție de corecție și utilizarea acesteia

Cod sursă ESP32 - Exemplu de funcție de corecție și utilizarea acesteia
Cod sursă ESP32 - Exemplu de funcție de corecție și utilizarea acesteia

Pasul 14: Comparație cu tehnicile anterioare

Comparație cu tehnicile anterioare
Comparație cu tehnicile anterioare

Pasul 15: CODUL SURSEI ESP32 - Declarații și configurare ()

COD SURSA ESP32 - Declarații și configurare ()
COD SURSA ESP32 - Declarații și configurare ()

Pasul 16: CODUL SURSEI ESP32 - Bucla ()

COD SURSA ESP32 - Buclă ()
COD SURSA ESP32 - Buclă ()

Pasul 17: CODUL SURSEI ESP32 - Bucla ()

COD SURSA ESP32 - Buclă ()
COD SURSA ESP32 - Buclă ()

Pasul 18: CODUL SURSEI ESP32 - Pulse ()

COD SURSA ESP32 - Pulse ()
COD SURSA ESP32 - Pulse ()

Pasul 19: CODUL SURSEI PROGRAMULUI ÎN C # - Executarea programului în C #

CODUL SURSEI PROGRAMULUI ÎN C # - Executarea programului în C #
CODUL SURSEI PROGRAMULUI ÎN C # - Executarea programului în C #

Pasul 20: CODUL SURSEI PROGRAMULUI ÎN C # - Biblioteci

CODUL SURSEI PROGRAMULUI ÎN C # - Biblioteci
CODUL SURSEI PROGRAMULUI ÎN C # - Biblioteci

Pasul 21: CODUL SURSEI PROGRAMULUI ÎN C # - Spațiu de nume, clasă și global

CODUL SURSEI PROGRAMULUI ÎN C # - Spațiu de nume, clasă și global
CODUL SURSEI PROGRAMULUI ÎN C # - Spațiu de nume, clasă și global

Pasul 22: CODUL SURSEI PROGRAMULUI ÎN C # - RegPol ()

CODUL SURSEI PROGRAMULUI ÎN C # - RegPol ()
CODUL SURSEI PROGRAMULUI ÎN C # - RegPol ()

Pasul 23:

Imagine
Imagine

Pasul 24: Descărcați fișierele

PDF

RAR

Recomandat: