Come leggere i sensori analogici con il microcontrollore

Lettura di sensori analogici con il microcontrollore

Un sensore analogico può essere letto direttamente dall’ingresso del convertitore  AD, tuttavia esistono particolari condizioni in cui è necessario considerare eventuali effetti della temperatura, della non linearità del sensore, delle oscillazioni della tensione di alimentazione, nonché delle eventuali tolleranze sui valori dei componenti impiegati. Di seguito sono illustrate tre tecniche diverse per la lettura di un sensore, facilmente utilizzabili su qualsiasi microcontrollore anche non dotato di ingressi analogici. Nell’ipotesi che il sensore sia di tipo resistivo è possibile adottare il metodo noto come RC-Timing in cui viene caricata una capacità nota attraverso la resistenza del sensore stesso, quindi misurato il tempo impiegato dalla tensione ai capi della capacità per passare da 0 al valore “1” logico (corrispondente alla tensione di soglia VTH dell’ingresso del micro). Per la calibrazione del sistema si impiega una resistenza R1 nota rilevando un tempo di carica pari a T1.

Poiché l’equazione di carica del condensatore è

50

dove VDD  è la tensione di alimentazione del sistema, il tempo  impiegato  per raggiungere la tensione di soglia VTH  nel caso sia utilizzata la resistenza R1 di calibrazione è dato da:

51

Eseguendo gli stessi passi impiegando come resistenza di carica la resistenza Rs del sensore e facendo il rapporto tra i tempi T1 e T2 così ottenuti, si ricava:

52

In figura 1 è riportato il grafico temporale della carica della capacità in cui sono evidenziati gli istanti di tempo T1 e T2.

Figura 1. Carica del condensatore e determinazione dei tempi T1 e T2

Figura 1. Carica del condensatore e determinazione dei tempi T1 e T2

Nella figura 2 è invece riportata la circuiteria di connessione del sensore e della resistenza di calibrazione con il microcontrollore.  Le uscite OUT1 ed OUT2 permettono di selezionare rispettivamente la resistenza R1 di calibrazione o il sensore (Rs) mentre l’uscita OUT3, quando portata a zero, permette la scarica del condensatore attraverso Rp. Durante la misura, OUT3 dovrà essere inattiva per cui in questo intervallo di tempo può essere configurata  come ingresso. L’ingresso IN1 consente di monitorare la tensione ai capi del condensatore: fintanto che questo ingresso viene riconosciuto come livello basso viene incrementato il contatore interno per il calcolo del tempo di carica.

54

Figura 3: Connessione del sensore al micro

Dal punto di vista del firmware in figura 3 sono riportati i diagrammi di flusso in modo che possano essere implementati su qualsiasi tipo di microcontrollore. La routine di scarica disattiva OUT1 e OUT2 e mette a livello basso OUT3 per un tempo predefinito in modo da scaricare totalmente la capacità. La modalità di calibrazione prevede la disattivazione di OUT2 e l’attivazione di OUT1, mentre la modalità di misura prevede la disattivazione di OUT1 e l’attivazione di OUT2 in modo da caricare il condensatore attraverso il  sensore. La routine di misura incrementa un contatore interno finché l’ingresso IN1 non viene riconosciuto a livello alto. Al raggiungimento di tale condizione viene bloccato il conteggio: il valore raggiunto dal contatore è dunque proporzionale al tempo di carica del condensatore.

55

Figura 4: Flow chart della routine di gestione

 

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio 14 marzo 2016

Scrivi un commento