|
Per il rilievo della
temperatura si può utilizzare un'itegrato sensore di temperatura
LM35. |
Prototipo interfaccia |
La figura mostra come l'ADC0831 è collegato ad un sensore di temperatura LM35 e il processore BS2.
Come possiamo vedere gli ingressi del convertitore rappresentati da: Vin+, Vin-
e Vref.
I pin Vin sono gli input che accettano la tensione che deve essere misurata,
questa deve rientrare nei valori della tensione di alimentazione del
convertitore cioè tra 0 e 5V, se così non fosse, l'ADC può essere danneggiato.
L' ADC misura la differenza tra le tensioni presenti tra i pin Vin + e Vin-, con
il requisito che la tensione al pin Vin+ sia superiore a quella sul pin Vin-.
Nel nostro circuito, Vin - è collegato a terra (0V), il che rende sicuro che la
tensione al Vin + sarà maggiore.
Se la tensione di ingresso al pin Vin+ sarà pari a 0 l'ADC emetterà in uscita (%000000000 binario). Vref
imposta il valore massimo di lettura, per cui l'ADC avrà il valore più alto possibile di byte, 255 (% 11111111 binario).
Ora c'è un limite a quanto vicino è possibile impostare Vref e Vin-; per scopi
pratici, ci dovrebbe essere almeno 1V di differenza tra i due.
Ciò significa che ogni unità di uscita ADC da 0 a 255 può rappresentare una
differenza di tensione di appena 1/255 = 0.0039 = 3.9 millivolt (mV).
Nel caso specifico noi vogliamo misurare la tensione in uscita dal sensore di
temperatura, questi genera una tensione di 10mV per grado.
Se si imposta Vref=2.55V quindi ogni unità ADC sarà 2,55/255 = 0.01V
= 10mV perciò, ogni unità di ADC sarà pari 1 grado.
La gamma di misurazione sarà da 0 a 255 gradi. Certo, l'estremità superiore
dell'intervallo è sprecata, poiché essa supera la temperatura massima di
esercizio del sensore.
Ma il compromesso è che il processore può accettare l'output di ADC come la
temperatura. senza fare alcun calcolo.
Questo fa risparmiare memoria di programma e rende semplice l'applicazione.
Ora che sappiamo come impostare l'ADC per effettuare le dimensioni, vediamo come
possiamo ottenere risultati dell' ADC tramite il Basic Stamp.
Come mostra la figura ADC si connette al Processore tramite solo tre pin: CS.
CLK e
DO.
CS serve per selezionare il chip, quando questo pin è a livello alto l' ADC è
disattivato e ignora i suoi ingressi e si spegne l'output di dati rappresentato
dal pin DO.
Mettendo a livello basso il pin CS si segnala alll'ADC di riattivarsi. Una volta
che l'ADC.
e selezionaro (CS bassa) è pronto ad effettuare una misurazione e ad emettere il
risultato attraverso il pin DO.
Il processore controlla questo processo attraverso il pin (CLK). CLK
è
inizialmente a livello basso (0) . Il Basic Stamp invia un breve impulso (1) per
poi tornare a (0). L'impulso fa si che l'ADC emetta sul pin DO un bit.
Il Basic Stamp preleva questo dato e lo accumula in una variabile sino a quando
non accumula tutti gli 8 bits.
Ogni volta che il processore acquisisce un nuovo bit sposta il precedente bits
per fare spazio.
In questo modo, acquisisce un po'
alla volta fino a quando non ha tutte le otto bit allineati in una riga in una
variabile di byte. Questo processo è chiamato comunicazione seriale sincrona
che ADC;
che è un metodo molto affidabile per un'ampia gamma di velocità, rendendolo uno
strumento popolare per microcontrollori per comunicare con altri circuiti.
Programma di conversione del valore letto dal sensore
Finestra di debug con valore della temperatura
|
Questo programma misura
la temperatura e la mostra nella finestra di Debug. Il valore viene mostrato in gradi Centigradi, Fahrenheit e Kelvin |
Questo secondo programma misura sempre la temperatura ma è possibile impostare (modificando il valore all'interno del programma) in modo che al superamento di un dato valore venga emesso un suono attraverso il modulo soudPAL connesso alla porta P13. |
LM 35 Sensore di temperatura di precisione (Gradi centigradi) | ||
Piedinatura | Datasheet | Foto dell'integrato |
Elenco revisioni: | |
25/05/2010 | Inserito programmi e descrizione funzionamento |
25/01/2010 | Aggiornato pagina |
12/01/2009 | Aggiornato pagina |
04/12/2008 | Emissione preliminare |