Come costruire un termometro digitale

Vi siete mai chiesti come costruire un termometro digitale? In poche semplici mosse è possibile costruire un dispositivo in grado di misurare la temperatura in gradi Celsius e Fahreneit. La retroilluminazione consente di leggere la temperatura anche in condizioni di scarsa luminosità. Prima di tutto, procuratevi un microcontrollore PIC16F688 e un sensore di temperatura DS1820. Ora siete pronti per cominciare.

Misurare la temperatura in gradi Celsius e Fahreneit

Avete mai provato a costruire un termometro digitale? Certo, è molto più semplice che non costruirne uno al mercurio che, oltrettutto, è ormai stato messo fuori legge, visto che il mercurio è molto tossico. Molto meglio armeggiare con un termometro digitale che, nel peggiore dei casi, non si accenderà, ma almeno non vi succederà niente! Siete pronti allora a scoprire come si costruisce? Cominciamo subito.

I termometri digitali sono dispositivi interessanti perché possono mostrare le temperature in formati facilmente leggibili da chiunque. Questo termometro digitale si basa su un microcontrollore PIC16F688 e su un sensore di temperatura DS1820, e visualizza la temperatura su uno schermo LCD in entrambe le scale, Celsius e Fahrenheit. Il DS1820 è progettato per misurare temperature da -55 a 125 ° C, con incrementi di 0,5 ° C. Le istruzioni seguenti funzionano solo per DS1820.

Il sensore DS1820 converte la temperatura in una parola digitale a 9-bit, che viene letta da PIC16F688 come due byte. Il valore del bit meno significativo è di 0,5 ° C. Per una temperatura positiva, i secondi otto bit dopo la LSB danno la parte intera della temperatura. Inoltre, l’uso della virgola può essere evitato durante la conversione da Celsius a Fahrenheit, utilizzando un fattore di scala di 10. Pertanto la temperatura 25,5 ° C (in scala 255) viene convertito in Fahreneit così:

TempinF = 9 * TempinC / 5 + 320 = 9*255/5 + 320 = 779 (che è 76,9 F)

Il numero 320 si riferisce al fatto che per ottenere la temperatura in gradi Fahreneit è necessario sommare 32 alla temperatura in gradi Celsius. Questo perché l’acqua congela a 32 gradi Fahreneit, come succede a 0 gradi Celsius. Perché allora 320 e non 32? Perché stiamo lavorando con la scala di 10 per non avere la virgola!

Tuttavia, le temperature negative sono memorizzate in una forma complementare. Quindi, il bit più significativo della lettura della temperatura a 2 byte da DS1820 è 1 se la temperatura è inferiore a 0°C. Il firmware cura tutte le letture di temperatura negativa (in entrambe le scale C e F). La temperatura calcolata viene visualizzata sul display LCD a matrice di stringhe a 5 cifre, xxx.x (ad esempio, 24,5, 101,0, -12,5).

Il sensore DS1820 per il termometro digitale

Il sensore di temperatura DS1820 è letto dal microcontrollore PIC16F688 attraverso la porta RA5. La temperatura calcolata viene convertita in una stringa e inviata al display LCD per la visualizzazione. Il display LCD funziona in modalità 4-bit, e le porte RC0-RC3 servono al D4-D7 pin dati del display LCD. I segnali Select Register (RS) ed Enable (E) sono forniti tramite le porte RC4 e RC5. La regolazione del contrasto del display LCD è fatta con il potenziometro da 10K.

Inoltre, ci sono due interruttori. Il primo serve per il ripristino del sistema per resettare tutto e reinizializzare il display LCD. L’altro è collegato al pin di interrupt esterni PIC16F688. Questo interruttore serve alla retroilluminazione LCD ed è utile per la lettura del display della temperatura in condizioni di scarsa illuminazione. Quando il sistema viene acceso, la retroilluminazione LCD viene attivata attraverso un’impostazione predefinita.

A questo punto manca soltanto il firmware per il termometro digitale, di cui potete trovare vari esempi cercando in rete, tra quelli creati da esperti di tecnologia open source.

Scarica subito una copia gratis

2 Commenti

  1. Avatar photo @Facebook 20 Ottobre 2010
  2. Avatar photo Biscotti Alessandro 20 Dicembre 2021

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend