- Lumea analogică cu electronica digitală
- Ce este ADC și cum se folosește?
- Rezoluție (biți) și canale în ADC
- Tensiunea de referință pentru un ADC
- Exemplu
- Tipuri ADC și funcționare
- Unele întrebări care apar frecvent despre ADC
Lumea analogică cu electronica digitală
Cu câțiva ani în urmă, toate dispozitivele electronice pe care le folosim astăzi, cum ar fi telefoanele, computerele, televizoarele etc., aveau o natură analogică. Apoi, încet, telefoanele fixe au fost înlocuite cu telefoane mobile moderne, televizoarele CRT și monitoarele au fost înlocuite cu afișaje cu LED-uri, computerele cu tuburi de vid au evoluat pentru a fi mai puternice, cu microprocesoare și microcontrolere în interior și așa mai departe..
În era digitală de astăzi suntem cu toții înconjurați de dispozitive electronice digitale avansate, acest lucru ne-ar putea înșela să credem că tot ceea ce ne înconjoară este digital, ceea ce nu este adevărat. Lumea a avut întotdeauna o natură analogică, de exemplu, tot ceea ce simțim și experimentăm noi oamenii, cum ar fi viteza, temperatura, viteza aerului, lumina soarelui, sunetul, etc. sunt de natură analogică. Dar dispozitivele noastre electronice care rulează pe microcontrolere și microprocesoare nu pot citi / interpreta direct aceste valori analogice, deoarece rulează doar pe 0 și 1. Deci, avem nevoie de ceva care să convertească toate aceste valori analogice în 0 și 1, astfel încât microcontrolerele și microprocesoarele noastre să le poată înțelege. Acest lucru se numește pe scurt convertoarele analogice la digitale sau ADC. În acest articol vom învățatotul despre ADC și cum să le utilizați.
Ce este ADC și cum se folosește?
Așa cum am spus mai devreme, ADC reprezintă conversia analogică la digitală și este utilizată pentru a converti valorile analogice din lumea reală în valori digitale, cum ar fi 1 și 0. Deci, care sunt aceste valori analogice? Acestea sunt cele pe care le vedem în viața noastră de zi cu zi, cum ar fi temperatura, viteza, luminozitatea etc. Dar așteptați !! Poate un ADC să convertească temperatura și viteza direct în valori digitale precum 0 și 1?
Nu, sfidător, nu. Un ADC poate converti valorile analogice ale tensiunii în valori digitale. Deci, parametrul pe care dorim să-l măsurăm, ar trebui transformat mai întâi în tensiune, această conversie se poate face cu ajutorul senzorilor. De exemplu, pentru a converti valorile temperaturii în tensiune, putem folosi un termistor în mod similar pentru a converti luminozitatea în tensiune, putem folosi un LDR. Odată ce este convertit în tensiune îl putem citi cu ajutorul ADC-urilor.
Pentru a ști cum să folosim un ADC, ar trebui să ne familiarizăm mai întâi cu câțiva termeni de bază, cum ar fi, rezoluția canalelor, intervalul, tensiunea de referință etc.
Rezoluție (biți) și canale în ADC
Când citiți specificațiile oricărui microcontroler sau ADC IC, detaliile ADC vor fi date folosind termenii canale și Rezoluție (biți). De exemplu , ATmega328 al unui Arduino UNO are un ADC pe 8 canale pe 10 biți. Nu fiecare pin al unui microcontroler poate citi tensiunea analogică, termenul 8 canale înseamnă că există 8 pini pe acest microcontroler ATmega328 care poate citi tensiunea analogică și fiecare pin poate citi tensiunea cu o rezoluție de 10 biți. Acest lucru va varia pentru diferite tipuri de microcontrolere.
Să presupunem că gama noastră ADC este de la 0V la 5V și avem un ADC de 10 biți, ceea ce înseamnă că tensiunea de intrare 0-5 volți va fi împărțită în 1024 nivele de valori analogice discrete (2 10 = 1024). Adică 1024 este rezoluția pentru un ADC pe 10 biți, în mod similar pentru o rezoluție ADC pe 8 biți va fi 512 (2 8), iar pentru o rezoluție ADC pe 16 biți va fi 65.536 (2 16).
Cu aceasta, dacă tensiunea de intrare reală este 0V, atunci ADC-ul MCU îl va citi ca 0 și dacă este 5V, MCU va citi 1024 și dacă este undeva între 2,5V, atunci MCU va citi 512. Putem folosi formulele de mai jos. pentru a calcula valoarea digitală care va fi citită de MCU pe baza rezoluției ADC și a tensiunii de funcționare.
(Rezoluție ADC / Tensiune de funcționare) = (Valoare digitală ADC / Valoare tensiune reală)
Tensiunea de referință pentru un ADC
Un alt termen important cu care ar trebui să vă familiarizați este tensiunea de referință. În timpul unei conversii ADC, valoarea tensiunii necunoscute se găsește comparând-o cu o tensiune cunoscută, aceasta este cunoscută ca tensiune numită tensiune de referință. În mod normal, toate MCU-urile au opțiunea de a seta tensiunea de referință internă, ceea ce înseamnă că puteți seta această tensiune intern la o anumită valoare disponibilă utilizând software (program). Într-o placă Arduino UNO, tensiunea de referință este setată implicit la 5V intern, dacă este necesar, utilizatorul poate seta această tensiune de referință externă prin pinul Vref și după efectuarea modificărilor necesare în software.
Amintiți-vă întotdeauna că valoarea măsurată a tensiunii analogice trebuie să fie întotdeauna mai mică decât valoarea tensiunii de referință, iar valoarea tensiunii de referință trebuie să fie întotdeauna mai mică decât valoarea tensiunii de funcționare a microcontrolerului.
Exemplu
Aici luăm un exemplu de ADC care are rezoluție de 3 biți și tensiune de referință 2V. Deci poate mapa tensiunea analogică 0-2v cu 8 (2 3) niveluri diferite, așa cum se arată în imaginea de mai jos:
Deci, dacă tensiunea analogică este 0,25, atunci valoarea digitală va fi 1 în zecimal și 001 în binar. În mod similar, dacă tensiunea analogică este 0,5, atunci valoarea digitală va fi 2 în zecimal și 010 în binar.
Unele microcontrolere au ADC încorporat, cum ar fi Arduino, MSP430, PIC16F877A, dar unele microcontrolere nu îl au ca 8051, Raspberry Pi etc.
Mai jos puteți găsi diverse exemple de ADC cu diferite microcontrolere:
- Cum se utilizează ADC în Arduino Uno?
- Tutorial ADC Raspberry Pi
- Interfațarea ADC0808 cu microcontrolerul 8051
- Voltmetru digital 0-25V folosind microcontrolerul AVR
- Cum se utilizează ADC în STM32F103C8
- Cum se utilizează ADC în MSP430G2
Tipuri ADC și funcționare
Există multe tipuri de ADC, cele mai frecvent utilizate sunt Flash ADC, Dual Slope ADC, aproximare succesivă și Dual Slope ADC. Pentru a explica modul în care fiecare dintre aceste lucrări ADC și diferența dintre ele ar fi în afara scopului acestui articol, deoarece sunt destul de complexe. Dar, pentru a da o idee aproximativă, ADC are un condensator intern care va fi încărcat de tensiunea analogică care trebuie măsurată. Apoi măsurăm valoarea tensiunii prin descărcarea condensatorului pe o perioadă de timp.
Unele întrebări care apar frecvent despre ADC
Cum pot măsura mai mult de 5V folosind ADC-ul meu?
După cum sa discutat mai devreme, un modul ADC nu poate măsura valoarea tensiunii mai mult decât tensiunea de funcționare a microcontrolerului. Adică un microcontroler de 5V poate măsura doar maximum 5V cu pinul său ADC. Dacă doriți să măsurați ceva mai mult decât spunem, doriți să măsurați 0-12V, atunci puteți mapa 0-12V în 0-5V utilizând un divizor de potențial sau un circuit divizor de tensiune. Acest circuit va folosi o pereche de rezistențe pentru a mapa valorile pentru un MCU, puteți afla mai multe despre circuitul divizor de tensiune folosind link-ul. Pentru exemplul nostru de mai sus, ar trebui să folosim un rezistor de 1K și un rezistor de 720 ohmi în serie la sursa de tensiune și să măsurăm tensiunea dintre rezistențe, așa cum sa discutat în linkul de mai sus.
Cum se convertesc valorile digitale de la ADC în valori reale de tensiune?
Atunci când utilizați un convertor ADC pentru a măsura tensiunea analogică, rezultatul obținut de MCU va fi digital. De exemplu, într-un microcontroler de 10 biți de 5V când tensiunea reală care urmează să fie măsurată este de 4V, MCU îl va citi ca 820, putem folosi din nou formulele discutate mai sus pentru a converti 820 la 4V, astfel încât să îl putem folosi în calcule. Să verificăm la fel.
(Rezoluție ADC / Tensiune de funcționare) = (Valoare digitală ADC / Valoare tensiune reală) Valoare tensiune reală = Valoare digitală ADC * (Tensiune de funcționare / Rezoluție ADC) = 820 * (5/1023) = 4.007 = ~ 4V
Sper că ai o idee corectă despre ADC și cum să le folosești pentru aplicațiile tale. Dacă ați avut vreo problemă în înțelegerea conceptelor, nu ezitați să postați comentariile dvs. mai jos sau să le scrieți pe forumurile noastre.