- El món analògic amb electrònica digital
- Què és l'ADC i com utilitzar-lo?
- Resolució (bits) i canals en ADC
- Voltatge de referència per a un ADC
- Exemple
- Tipus ADC i funcionament
- Algunes preguntes freqüents sobre ADC
El món analògic amb electrònica digital
Fa pocs anys que tots els dispositius electrònics que fem servir actualment, com ara telèfons, ordinadors, televisors, etc., eren de naturalesa analògica. Després, lentament, els telèfons fixos van ser substituïts per telèfons mòbils moderns, els televisors i monitors CRT van ser substituïts per pantalles LED, els ordinadors amb tubs de buit van evolucionar fins a ser més potents amb microprocessadors i microcontroladors al seu interior, etc.
A l’era digital actual, estem tots envoltats de dispositius electrònics digitals avançats, cosa que ens podria enganyar pensant que tot el que ens envolta és de naturalesa digital, cosa que no és cert. El món sempre ha estat de naturalesa analògica, per exemple, tot el que sentim i experimentem els humans, com ara la velocitat, la temperatura, la velocitat de l’aire, la llum solar, el so, etc. Però els nostres dispositius electrònics que funcionen amb microcontroladors i microprocessadors no poden llegir / interpretar aquests valors analògics directament, ja que només funcionen en 0 i 1. Per tant, necessitem alguna cosa que converti tots aquests valors analògics en 0 i 1 perquè els nostres microcontroladors i microprocessadors els puguin entendre. Això es coneix com a convertidors analògics a digitals o ADC. En aquest article aprendremtot sobre ADC i com utilitzar-los.
Què és l'ADC i com utilitzar-lo?
Com es va dir anteriorment, ADC significa conversió analògica a digital i s’utilitza per convertir valors analògics del món real en valors digitals com l’1 i el 0. Quins són, doncs, aquests valors analògics? Aquests són els que veiem en el nostre dia a dia com la temperatura, la velocitat, la brillantor, etc. Però espereu! Un ADC pot convertir la temperatura i la velocitat directament en valors digitals com 0 i 1?
No, desafiant, no. Un ADC només pot convertir valors analògics de tensió en valors digitals. Per tant, quin paràmetre volem mesurar, primer s’ha de convertir en tensió, aquesta conversió es pot fer amb l’ajut de sensors. Per exemple, per convertir els valors de la temperatura en tensió podem utilitzar un termistor de manera similar per convertir la brillantor en tensió, podem utilitzar un LDR. Un cop convertit a tensió, el podem llegir amb l'ajut dels ADC.
Per saber utilitzar un ADC, primer hauríem de familiaritzar-nos amb alguns termes bàsics com, resolució de canals, abast, voltatge de referència, etc.
Resolució (bits) i canals en ADC
Quan llegiu l'especificació de qualsevol IC de microcontrolador o ADC, els detalls de l'ADC es donaran mitjançant els termes canals i Resolució (bits). Per exemple , ATmega328 d'un Arduino UNO té un ADC de 10 bits de 8 canals. No tots els pins d’un microcontrolador poden llegir tensió analògica, el terme 8 canals significa que hi ha 8 pins en aquest microcontrolador ATmega328 que poden llegir tensió analògica i que cada pin pot llegir la tensió amb una resolució de 10 bits. Això variarà per als diferents tipus de microcontroladors.
Suposem que el nostre rang d'ADC és de 0V a 5V i que tenim un ADC de 10 bits, això significa que la nostra tensió d'entrada de 0-5 volts es dividirà en 1024 nivells de valors analògics discrets (2 10 = 1024). El significat 1024 és la resolució per a un ADC de 10 bits, de manera similar per a una resolució ADC de 8 bits serà 512 (2 8) i per a una resolució ADC de 16 bits serà 65.536 (2 16).
Amb això, si el voltatge d'entrada real és 0V, l'ADC de l'MCU el llegirà com a 0 i, si és de 5V, l'MCU llegirà 1024 i, si es troba en algun lloc entre 2,5V, l'MCU llegirà 512. Podem utilitzar les fórmules següents per calcular el valor digital que llegirà la MCU en funció de la resolució de l’ADC i la tensió de funcionament.
(Resolució ADC / Voltatge de funcionament) = (Valor digital ADC / Valor de tensió real)
Voltatge de referència per a un ADC
Un altre terme important que heu de conèixer és el voltatge de referència. Durant una conversió ADC, el valor de la tensió desconeguda es troba comparant-lo amb un voltatge conegut, que es coneix com a tensió de referència. Normalment, totes les MCU tenen una opció per establir la tensió de referència interna, és a dir, podeu configurar aquesta tensió internament a algun valor disponible mitjançant el programari (programa). En una placa Arduino UNO, la tensió de referència s'estableix a 5 V per defecte internament, si és necessari, l'usuari pot configurar aquesta tensió de referència externament a través del pin Vref també després de fer els canvis necessaris al programari.
Recordeu sempre que el valor de la tensió analògica mesurada sempre ha de ser inferior al valor de la tensió de referència i que el valor de la tensió de referència sempre ha de ser inferior al valor de la tensió de funcionament del microcontrolador.
Exemple
Aquí prenem exemple d’ADC que té una resolució de 3 bits i una tensió de referència de 2V. Per tant, pot assignar la tensió analògica de 0-2v amb 8 (2 3) nivells diferents, com es mostra a la imatge següent:

Per tant, si el voltatge analògic és 0,25, el valor digital serà 1 en decimal i 001 en binari. De la mateixa manera, si el voltatge analògic és 0,5, el valor digital serà 2 en decimal i 010 en binari.
Alguns microcontroladors incorporen ADC com Arduino, MSP430, PIC16F877A, però alguns no ho tenen, com ara 8051, Raspberry Pi, etc.
A continuació podeu trobar diversos exemples d’ADC amb diferents microcontroladors:
- Com utilitzar ADC a Arduino Uno?
- Tutorial ADC de Raspberry Pi
- Interfície ADC0808 amb microcontrolador 8051
- Voltímetre digital de 0-25 V mitjançant microcontrolador AVR
- Com utilitzar ADC a STM32F103C8
- Com utilitzar ADC a MSP430G2
Tipus ADC i funcionament
Hi ha molts tipus d’ADC, els més utilitzats són Flash ADC, ADC de doble pendent, aproximació successiva i ADC de doble pendent. Per explicar com cadascun dels treballs d’aquest ADC i la diferència entre ells quedarien fora de l’abast d’aquest article, ja que són bastant complexos. Però per fer una idea aproximada, l'ADC té un condensador intern que es carregarà pel voltatge analògic que es mesura. A continuació, mesurem el valor de la tensió descarregant el condensador durant un període de temps.
Algunes preguntes freqüents sobre ADC
Com es pot mesurar més de 5V amb el meu ADC?
Com es va comentar anteriorment, un mòdul ADC no pot mesurar el valor de la tensió més que el voltatge de funcionament del microcontrolador. És a dir, un microcontrolador de 5V només pot mesurar un màxim de 5V amb el seu pin ADC. Si voleu mesurar alguna cosa més que això, voleu mesurar 0-12V, podeu assignar 0-12V a 0-5V mitjançant un divisor de potencial o un circuit divisor de tensió. Aquest circuit usarà un parell de resistències per assignar els valors d’una MCU. Podeu obtenir més informació sobre el circuit divisor de tensió mitjançant l’enllaç. Per al nostre exemple anterior, hauríem d’utilitzar una resistència de 1 K i una resistència de 720 ohm en sèrie a la font de tensió i mesurar la tensió entre les resistències tal com es descriu a l’enllaç anterior.
Com es converteixen els valors digitals d’ADC en valors de tensió reals?
En utilitzar un convertidor ADC per mesurar la tensió analògica, el resultat obtingut per la MCU serà en digital. Per exemple, en un microcontrolador de 5 bits de 10 bits quan el voltatge real que s’ha de mesurar és de 4 V, l’MCU el llegirà com a 820, podem tornar a utilitzar les fórmules comentades anteriorment per convertir el 820 a 4 V perquè puguem utilitzar-lo a la nostra càlculs. Permet comprovar el mateix.
(Resolució ADC / Voltatge de funcionament) = (Valor digital ADC / Valor de tensió real) Valor de tensió real = Valor digital ADC * (Voltatge de funcionament / Resolució ADC) = 820 * (5/1023) = 4.007 = ~ 4V
Espero que tingueu una bona idea d’ADC i de com utilitzar-les per a les vostres aplicacions. Si teniu algun problema per entendre els conceptes, no dubteu a publicar els vostres comentaris a continuació o escriure'ls als nostres fòrums.
