- Il mondo analogico con l'elettronica digitale
- Cos'è l'ADC e come usarlo?
- Risoluzione (bit) e canali in ADC
- Tensione di riferimento per un ADC
- Esempio
- Tipi e funzionamento di ADC
- Alcune domande che sorgono comunemente su ADC
Il mondo analogico con l'elettronica digitale
Pochi anni fa tutti i dispositivi elettronici che usiamo oggi come telefoni, computer, televisori ecc. Erano di natura analogica. Poi lentamente i telefoni fissi furono sostituiti dai moderni telefoni cellulari, i televisori e i monitor CRT furono sostituiti da display a LED, i computer con tubi a vuoto si evolvono per essere più potenti con microprocessori e microcontrollori al loro interno e così via..
Nell'era digitale odierna siamo tutti circondati da dispositivi elettronici digitali avanzati, questo potrebbe farci pensare che tutto ciò che ci circonda sia di natura digitale, il che non è vero. Il mondo è sempre stato di natura analogica, ad esempio tutto ciò che noi umani sentiamo e sperimentiamo come velocità, temperatura, velocità dell'aria, luce solare, suono ecc. Sono di natura analogica. Ma i nostri dispositivi elettronici che funzionano su microcontrollori e microprocessori non possono leggere / interpretare questi valori analogici direttamente poiché funzionano solo su 0 e 1. Quindi abbiamo bisogno di qualcosa che converta tutti questi valori analogici in 0 e 1 in modo che i nostri microcontrollori e microprocessori possano capirli. Questo qualcosa è chiamato convertitori da analogico a digitale o ADC in breve. In questo articolo impareremotutto su ADC e su come usarli.
Cos'è l'ADC e come usarlo?
Come detto in precedenza, ADC sta per conversione da analogico a digitale e viene utilizzato per convertire i valori analogici dal mondo reale in valori digitali come 1 e 0. Allora quali sono questi valori analogici? Questi sono quelli che vediamo nella nostra vita quotidiana come temperatura, velocità, luminosità ecc. Ma aspetta !! Un ADC può convertire la temperatura e la velocità direttamente in valori digitali come 0 e 1?
No con aria di sfida, no. Un ADC può convertire solo valori di tensione analogica in valori digitali. Quindi, qualunque parametro desideriamo misurare, dovrebbe essere prima convertito in tensione, questa conversione può essere eseguita con l'aiuto di sensori. Ad esempio, per convertire i valori di temperatura in tensione possiamo usare un termistore in modo simile per convertire la luminosità in tensione possiamo usare un LDR. Una volta convertito in tensione, possiamo leggerlo con l'aiuto degli ADC.
Per sapere come utilizzare un ADC, dovremmo prima familiarizzare con alcuni termini di base come risoluzione dei canali, intervallo, tensione di riferimento ecc.
Risoluzione (bit) e canali in ADC
Quando si leggono le specifiche di un microcontrollore o di un circuito integrato dell'ADC, i dettagli dell'ADC verranno forniti utilizzando i termini canali e Risoluzione (bit). Ad esempio, un ATmega328 di Arduino UNO ha un ADC a 10 bit a 8 canali. Non tutti i pin su un microcontrollore possono leggere la tensione analogica, il termine 8 canali significa che ci sono 8 pin su questo microcontrollore ATmega328 in grado di leggere la tensione analogica e ogni pin può leggere la tensione con una risoluzione di 10 bit. Questo varierà per diversi tipi di microcontrollori.
Supponiamo che il nostro intervallo ADC sia compreso tra 0 V e 5 V e abbiamo un ADC a 10 bit, ciò significa che la nostra tensione di ingresso 0-5 Volt sarà suddivisa in 1024 livelli di valori analogici discreti (2 10 = 1024). Significato 1024 è la risoluzione per un ADC a 10 bit, analogamente per un ADC a 8 bit la risoluzione sarà 512 (2 8) e per una risoluzione ADC a 16 bit sarà 65.536 (2 16).
Con questo se la tensione di ingresso effettiva è 0 V, l'ADC dell'MCU lo leggerà come 0 e se è 5 V l'MCU leggerà 1024 e se si trova a metà tra 2,5 V, l'MCU leggerà 512. Possiamo usare le formule seguenti per calcolare il valore digitale che verrà letto dall'MCU in base alla risoluzione dell'ADC e alla tensione di funzionamento.
(Risoluzione ADC / Tensione di esercizio) = (Valore digitale ADC / Valore tensione effettiva)
Tensione di riferimento per un ADC
Un altro termine importante con cui dovresti avere familiarità è la tensione di riferimento. Durante una conversione ADC il valore della tensione sconosciuta viene trovato confrontandolo con una tensione nota, questa tensione nota è chiamata tensione di riferimento. Normalmente tutti gli MCU hanno un'opzione per impostare la tensione di riferimento interna, il che significa che è possibile impostare questa tensione internamente su un valore disponibile utilizzando il software (programma). In una scheda Arduino UNO la tensione di riferimento è impostata di default a 5V internamente, se richiesto l'utente può impostare questa tensione di riferimento esternamente tramite il pin Vref anche dopo aver apportato le modifiche richieste nel software.
Ricordare sempre che il valore della tensione analogica misurato deve essere sempre inferiore al valore della tensione di riferimento e il valore della tensione di riferimento deve essere sempre inferiore al valore della tensione di esercizio del microcontrollore.
Esempio
Qui stiamo prendendo esempio di ADC che ha una risoluzione di 3 bit e una tensione di riferimento di 2V. Quindi può mappare la tensione analogica 0-2v con 8 (2 3) livelli diversi, come mostrato nell'immagine sottostante:
Quindi, se la tensione analogica è 0,25, il valore digitale sarà 1 in decimale e 001 in binario. Allo stesso modo, se la tensione analogica è 0,5, il valore digitale sarà 2 in decimale e 010 in binario.
Alcuni microcontrollori hanno un ADC integrato come Arduino, MSP430, PIC16F877A ma alcuni microcontrollori non ce l'hanno come 8051, Raspberry Pi ecc. E dobbiamo utilizzare alcuni circuiti integrati di conversione analogico-digitale esterni come ADC0804, ADC0808.
Di seguito puoi trovare vari esempi di ADC con diversi microcontrollori:
- Come utilizzare ADC in Arduino Uno?
- Tutorial ADC Raspberry Pi
- Interfacciamento ADC0808 con Microcontrollore 8051
- Voltmetro digitale 0-25V con microcontrollore AVR
- Come utilizzare ADC in STM32F103C8
- Come utilizzare ADC in MSP430G2
Tipi e funzionamento di ADC
Esistono molti tipi di ADC, i più comunemente usati sono Flash ADC, Dual Slope ADC, Successive approssimation e Dual Slope ADC. Spiegare come ciascuno di questi ADC funziona e la differenza tra loro sarebbe fuori portata per questo articolo in quanto sono abbastanza complessi. Ma per dare un'idea approssimativa, l'ADC ha un condensatore interno che verrà caricato dalla tensione analogica che deve essere misurata. Quindi misuriamo il valore della tensione scaricando il condensatore per un periodo di tempo.
Alcune domande che sorgono comunemente su ADC
Come misurare più di 5 V utilizzando il mio ADC?
Come discusso in precedenza, un modulo ADC non può misurare il valore della tensione più della tensione operativa del microcontrollore. Questo è un microcontrollore da 5 V in grado di misurare solo un massimo di 5 V con il suo pin ADC. Se vuoi misurare qualcosa di più di questo, vuoi misurare 0-12 V, puoi mappare lo 0-12 V in 0-5 V utilizzando un potenziale divisore o un circuito divisore di tensione. Questo circuito utilizzerà una coppia di resistori per mappare i valori per un MCU, puoi saperne di più sul circuito del divisore di tensione usando il collegamento. Per il nostro esempio sopra dovremmo usare un resistore da 1K e un resistore da 720 ohm in serie alla sorgente di tensione e misurare la tensione tra i resistori come discusso nel link sopra.
Come convertire i valori digitali da ADC in valori di tensione effettivi?
Quando si utilizza un convertitore ADC per misurare la tensione analogica, il risultato ottenuto dall'MCU sarà in digitale. Ad esempio in un microcontrollore da 5 V a 10 bit quando la tensione effettiva da misurare è 4 V l'MCU la leggerà come 820, possiamo nuovamente utilizzare le formule sopra discusse per convertire l'820 in 4 V in modo da poterlo utilizzare nel nostro calcoli. Consente il controllo incrociato lo stesso.
(Risoluzione ADC / Tensione operativa) = (Valore digitale ADC / Valore tensione effettiva) Valore tensione effettiva = Valore digitale ADC * (Tensione operativa / Risoluzione ADC) = 820 * (5/1023) = 4,007 = ~ 4V
Spero che tu abbia una buona idea di ADC e di come usarli per le tue applicazioni. Se hai avuto problemi a comprendere i concetti, sentiti libero di pubblicare i tuoi commenti qui sotto o di scriverli sui nostri forum.