Termostato con PIC
Ciao a tutti,
ho l'esigenza di progettare un termostato con le seguenti caratteristiche:
1) temperatura compresa tra -30 e +30 °C con risoluzione +/- 0.5 °C
2) la temperatura deve essere letta da un trasduttore di temperatura MCP9700 e convertita da un AD a 10 bit
3) la temperatura deve essere stampata su un display 16x2 serie ITACHI.
4) Ci deve essere un'uscita per eccitare il relè, qualora la temperatura ambiente sia inferiore a quella programmata.
Ho tirato giù uno schemino tipo quello che vede qui:
Dalla formula ricavada dal datasheet del sensore di temperatura, ho calcolato queste tensioni:
Vout [-30°C] = 0.2 V
Vout[0°C] = 0.5V
Vout[30°C] = 0.8V
L'ADC del PIC pensavo di configurarlo a 10 bit (per avere più precisone) ed alimentare il PIC 18F1330 a 5 volt.
Così ottengo i seguenti calcoli:
Quanto = Vfs/1024 --> 5/1024 = 0.005V
Quanto% = (Quanto/5)*100 = +-1%
Ho provato a calcolarmi il codice binario del convertitore a 0°C e risulta:
1024 : 5 = 0.5 : x; (1024*0.5)/5=100;
Le mie domande:
1) come converto il valore letto dall'ADC in un valore xx,x °C da stampare sull'LCD?
2) avete qualche suggerimento nei passi precedenti?
P.S. il programma non è ancora stato realizzato, ma sicuramente userò mikroc.
Saluti
Luca
ho l'esigenza di progettare un termostato con le seguenti caratteristiche:
1) temperatura compresa tra -30 e +30 °C con risoluzione +/- 0.5 °C
2) la temperatura deve essere letta da un trasduttore di temperatura MCP9700 e convertita da un AD a 10 bit
3) la temperatura deve essere stampata su un display 16x2 serie ITACHI.
4) Ci deve essere un'uscita per eccitare il relè, qualora la temperatura ambiente sia inferiore a quella programmata.
Ho tirato giù uno schemino tipo quello che vede qui:
Dalla formula ricavada dal datasheet del sensore di temperatura, ho calcolato queste tensioni:
Vout [-30°C] = 0.2 V
Vout[0°C] = 0.5V
Vout[30°C] = 0.8V
L'ADC del PIC pensavo di configurarlo a 10 bit (per avere più precisone) ed alimentare il PIC 18F1330 a 5 volt.
Così ottengo i seguenti calcoli:
Quanto = Vfs/1024 --> 5/1024 = 0.005V
Quanto% = (Quanto/5)*100 = +-1%
Ho provato a calcolarmi il codice binario del convertitore a 0°C e risulta:
1024 : 5 = 0.5 : x; (1024*0.5)/5=100;
Le mie domande:
1) come converto il valore letto dall'ADC in un valore xx,x °C da stampare sull'LCD?
2) avete qualche suggerimento nei passi precedenti?
P.S. il programma non è ancora stato realizzato, ma sicuramente userò mikroc.
Saluti
Luca


![\[2^{10}=1024\] \[2^{10}=1024\]](/forum/latexrender/pictures/31aedaacc556c234c812ebad6cd9d037.png)