depois de fuçar, montar e funfar o termômetro me ocoreram dúvidas ... talvez sejam coisas banais mas preciso entender e acabar com as dúvidas.
Vamos lah ...
Montei o termômetro com um pic, utilizei 8bits de resolução ... a tensão de referência do circuito é de 4.98volts (doido né?), a cada 3 segundos eu mostro o valor em um display LCD onde deixei 2 casas decimais para criar esta pulguinha na zoréba.
Sendo que o LM35 é linear de 10mV por grau, como estou conseguindo mostrar no display 25.31ºC se a resolução em bits do uC é de 0,01945volts (19,45mV) ???
Peguei um termômetro da marca Coel emprestado com um amigo, e este termômetro tem resolução de 0,1ºC e atualização a cada 10 segundos.
Alterei o funcionamento do meu termômetro para ficar igual o Coel e poder comparar resultados
Bem, valor chega com uma diferença mínima de 0,3ºC até 0,8ºC do termômetro comercial. então pergunto .. será que fiz algo errado? será que está tudo certo? ou está melando de marron minha montagem?
vou postar um trecho do programa para que possam me esclarecer esta dúvida.
Agradeço qqer comentário sobre este assunto
abrax!
Pic com cristal de 4MHz, AD com 8 bits
- Código: Selecionar todos
// valor entrada RA2
set_adc_channel(2);
dado1 = read_adc(); // efetua a conversão A/D
valor1 = ((dado1*498)/255);
// compara valor e imprime o valor termometro 1 no display em Celsius
if(valor1 != valor2){ // se diferente da medida anterior
lcd_escreve ('\f'); // Apaga o display
lcd_pos_xy(1,1); // Posiciona cursor
printf (lcd_escreve,"Temp ent %3.2f C ",valor1); //Escreve valor no display