http://tomasella.altervista.org/it/elettronica/microcontrollori/DS18S20_PIC18F2550.html

PIC & USB: gestire un sensore di temperatura

Questo progetto serve ad utilizzare un sensore di temperatura, il DS18S20 della Maxim, tramite la mia demoboard o un qualunque circuito simile. Come è possibile vedere dalla foto, per la visualizzazione della temperatura è sufficiente un display 1x8 (1 riga con 8 caratteri). Le operazioni fatte sono semplicemente di conversione, lettura e visualizzazione della temperatura, ipotizzando che al bus 1-Wire sia collegato solamente un sensore. Infatti viene semplicemente scritto sul display il valore di temperatura letto dal sensore. Il software è stato pensato per poter interagire con dispositivi operanti in modalità "parasite-powered", cioè con entrambi i terminali "GND" e "VDD" connessi a massa (l'alimentazione viene fornita attraverso la linea dati "DQ"), ma naturalmente funziona ugualmente anche se "VDD" fosse collegato ai +5V.

foto del circuito che visualizza la temperatura

Il codice del firmware è un po' complesso perchè implementa una macchina a stati. Il motivo di ciò è che ho sviluppato la routine di gestione del sensore in modo tale che fosse compatibile con il firmware per l'USB, il quale richiede di scrivere codice che non sia "bloccante", ossia che non blocchi l'esecuzione delle routine di gestione dell'USB per lunghi periodi, come invece accadrebbe per la conversione della temperatura, la quale necessita di quasi un secondo di tempo.

Ecco dunque il codice macchina del firmware e l'intero progetto scritto in C18.



torna all'inizio     Stampa

Valid HTML 4.01 Transitional    Valid CSS