ADC: Come funziona un Convertitore Analogico Digitale

In questo articolo scopriremo cos’è un ADC (Convertitore Analogico-Digitale) e a cosa serve.

esempio di ADC a 16 bit di risoluzione e 860 campioni/secondo
esempio di ADC a 16 bit di risoluzione e 860 campioni/secondo

 

Un ADC ( In inglese: Analog to Digital Converter), é un circuito elettronico che permette di convertire un segnale analogico continuo, in un segnale digitale discreto. La conversione di un segnale analogico avviene misurandone l’ampiezza ad intervalli temporali. Questa operazione é detta campionamento.

Quali sono le caratteristiche principali di un ADC?

Tra le catarreristiche principali di un adc, troviamo, oltre alla tensione di alimentazione, ad esempio la tensione applicabile in input, la frequenza di campionamento massima e la risoluzione.

Tensione di input

E’ un parametro che descrive la tensione che l’ADC accetta in input.

Frequenza di campionamento

Una delle caratteristiche principali di un ADC è la frequenza di campionamento (in inglese Sampling Rate). Questo parametro indica quanti campioni vengono raccolti in un secondo. La frequenza di campionamento deve essere sufficentemente veloce per avere una rappresentazione quanto più fedele del segnale di partenza. Secondo il teorema del campionamento (Nyquist-Shannon), la frequenza di campionamento dovrebbe essere almeno il doppio della frequenza del segnale da campionare.
L’ unità di misura è il numero di campioni al secondo (sps, sample-per-second).

Risoluzione

Un altro parametro molto importante é la risoluzione della misura del campione.

La risoluzione di un ADC é espressa in bit. Con 8 bit abbiamo a disposizione 255 possibili valori, che vanno da 0000000, 00000001, 00000010, 00000011, 00000100 …. fino a 11111111

$$2^{8bit} = 255 Valori$$

Immaginiamo di prendere una stecca lunga 2 metri e di dover misurare l’altezza di una persona (che sappiamo essere alta 173cm). Usando 8 bit possiamo dividere la stecca in 255 segmenti di ugual misura.
Per capire quanto misura ogni singolo segmento dobbiamo fare 2000mm (lunghezza della stecca) diviso 255 segmenti. otteniamo 7.84mm

$$Lunghezza Segmento= {Lunghezza Stecca \over Numero Segmenti}$$

quindi

$${2000mm \over 255} = 7.84mm $$

Avvicinando la stecca alla persona da misurare otterremo un valore di 220 segmenti. Se facciamo:

$$220 * 7.84mm = 1724.8mm $$

otteniamo un’ altezza di 1724.8mm. Che in digitale equivale a 11011100.

Si nota quindi che il valore della digitalizzazione é simile ma non uguale al valore analogico di partenza.
Si introduce infatti un errore di misura, detto errore di quantizzazione.

Aumentando il numero di bit, possiamo migliorare la misura. Riproviamo con 16bit.

con 16 bit abbiamo 65536 segmenti

$$2^{16bit} = 65536 Valori$$

dividendo la stecca di 2 metri in 65536 segmenti, ogni segmento sarà lungo

$${2000mm \over 65536} = 0.031mm $$

se mettiamo la stecca vicino alla persona da misurare, troveremo un valore di 55806.

convertendo questo valore in mm otteniamo:

$$55806*0.031 = 1729.9mm $$

che è un valore molto piú vicino a 1730!

L’esempio pratico della misura di una persona con un metro serve a far capire come lavora un ADC.
L’ADC naturalmente misura il range di tensione di input anzichè un’altezza, ma il procedimento logico è simile.

Quanti bit di risoluzione mi servono?

Il numero di bit di campionamento dipende dall’ accuratezza che vogloamo nella misura ma anche dal rapporto che c’é tra il segnale e il rumore di fondo. Campionare sopra un certo valore di bit significa sprecare bit (che poi dovranno essere elaborati con maggiore difficoltà)

L’output digitale

In commercio sono disponibili diversi modelli di ADC che forniscono il dato digitalizzato in diversi formati.

ADC paralleli
Ci sono ADC che dispongono di un piedino per ogni singolo bit di uscita dell’adc. E’ una soluzione veloce e semplice, ma richiede un filo per ogni bit.

Convertitore ADC parallelo
Convertitore ADC parallelo

ADC seriali
Permettono di usare meno fili e possono quindi essere facilmente miniaturizzati. I bit della conversione sono serializzati, ovvero vengono spediti uno dietro l’altro. In questo caso è necessario appoggiarsi a un protocollo di comunicazione bidirezionale come ad esempio l’i2c.

esempio di ADC interfacciato ad un microcontrollore via i2c
esempio di ADC interfacciato ad un microcontrollore via i2c

 

L’i2c permette inoltre di collegare sullo stesso bus di comunicazione (composto da due fili, SDA e SCL), diversi dispositivi, anche di diversa natura (ADC, DAC, Termometri, Barometri, ecc..).
Ad ogni dispositivo è associato un indirizzo, cosi da permettere un indirizzamento univoco dei messaggi.

 

L'ADC ADS1115 dispone di un'interfaccia I2C per l'output digitale del segnale campionato
L’ADC ADS1115 dispone di un’interfaccia I2C per l’output digitale del segnale campionato

Riguardo Matteo Dalle Feste

Web Designer e Developer presso una nota testata giornalistica sul turismo. Appassionato di domotica, nel tempo libero, cura la realizzazione sia hardware che software di piccoli progetti domotici fai da te.

Guarda anche

cella di Peltier, sp1848, ciaobit.com

Celle di Peltier: pompe di calore e generatori termoelettrici

Cosa sono le celle di Peltier Le celle di Peltier sono delle pompe di calore …

3 Commenti

  1. Sei sicuro che 1724.8 in binario vale 11011100? Il resto dell’articolo ottimo. Saluti

    • Non c’è scritto che 1724.8 in binario vale 11011100.
      C’è scritto che 1724.8mm equivale ad 11011100, cioè che una altezza di 1724.88mm verrebbe convertita nel numero digitale 11011100 attraverso la proporzione.

  2. Con 8 bit le combinazioni (valori possibili) sono 256.
    Tali valori sono i numeri da 0 a 255 compresi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *