Página 1 de 2
sensor temperatura/pic16f819/877a

Enviado:
29 Nov 2008 10:33
por alex1000
Sei que é meio offtopic mas gostaria que alguem me indicasse um sensor de temperatura com vários canais para trabalhar com o 819/877a pois vou precisar de mais informações de temperatura em vez do LM-35.
Queria algo barato, com boa precisão(mais ou menos 0,25 graus de variação) e como o LM-35 para a escal de temperatura em graus, sem precisar conversão no PIc.
Alguem saberia de algum?
Obrigado

Enviado:
30 Nov 2008 10:10
por lpagano
alex1000,
Já tentou o MCP9700 da Microchip?
É um sensor monocanal bem barato, tem uma precisão um pouco melhor que o LM35 e está pronto para ser ligado direto no PIC.
Valeu!

Enviado:
30 Nov 2008 10:46
por Djalma Toledo Rodrigues
Dalas DS18B20
Até 128 em rede one wire. (Dois fios)
Veja na Revista Elektor #80, deste mes.

Enviado:
30 Nov 2008 18:39
por alex1000
O MCP9700 parece que é 2,00 na Farnell. Já o outro um pouco mais caro.
Vou tentar acha-los.
Agora e quanto um sensor de temperatura vom varios pontos (local ou remoto)?
Eu estava vendo o Max 1668 mas não sei se seria interessante e é caro, suficiente para comprar varios LM-35 da vida.
de qualquer forma obrigado pelas informações.

Enviado:
30 Nov 2008 19:06
por mastk
MCP9700 não sei, mas o DS1820 vc acha em qlqr quitanda

Enviado:
02 Dez 2008 14:58
por alex1000
Um problema surgiu colocando-se o LM35 ao A0 do Pic16F877a, a tensão que aparece no A0 é (no máximo) 1.5 V.
Olhando-se o datasheet do LM35 que ele trabalha de 2v a 4V, indicando de
-55 a 150°. Retirando-se o LM do circuito e aumentando e diminuindo a temperatura a sua volta ele apresenta estas tensões no Vout.
Parece que o Pic está impedindo-o de apresentar esta tensão.
Antes que perguntem isto ocorreu em outros pinos também.
Alguem tem alguma solução?

Enviado:
02 Dez 2008 15:41
por otavio luiz
Pode até não ser mas voce já desligou os comparadores internos??? Costumam dar alguns problemas se não forem desligados.

Enviado:
02 Dez 2008 16:15
por alex1000
otavio, teria um exemplo de como fazer isto?

Enviado:
02 Dez 2008 16:59
por otavio luiz

Enviado:
02 Dez 2008 18:28
por alex1000
Acredito que seja este comando e coloquei a desativação da tensão de referencia:
setup_comparator(NC_NC_NC_NC);
setup_vref(false);
Não estou em meu serviço mas simulanmdo com o Proteus ainda não mudou nada....

Enviado:
04 Dez 2008 00:09
por jorgeluiz
O LM35 pode ser alimentado ate' 30 volt. Para que funcione de -55 a 150, voce deve usar fonte simetrica.( tem um esquema no datashet). Para cada grau ocorre uma variaçao precisa de 10 mVots. Voce pode alterar essa variaçao usando um A.O. A saida e' de baixa impedancia.

Enviado:
04 Dez 2008 12:45
por alex1000
Beleza Jorge.
O que eu notei é que o pic não esta apresentando a temperatura correta.
Quando isolado o LM35 próximo a uma fonte de calor apresenta um aumento de tensão no vout , quando colocado o vout ligado ao pino A0
não apresenta o mesmo aumento de tensão incorrendo no erro de temperatura.
É como se o PIC não deixasse o LM35 chegar a tensão real .
Engraçado que não li nada sobre isso na vasta documentação que consultei.
Olha meu código
- Código: Selecionar todos
#include<16f877a.h>
#device ADC=10
#fuses NOWDT,NOPROTECT,PUT,NOLVP,HS
#use delay(clock=4000000)
#include<flex_lcd.c>
void main()
{
signed int32 analog;
float result;
set_tris_a(0b11111111);
set_tris_c(0b00000000);
set_tris_d(0b00000000);
output_a(0x00);
output_c(0x00);
output_d(0x00);
lcd_init();
setup_ADC_ports(RA0_analog); //configurA pino_a0 para conversão AD
setup_adc(adc_clock_internal); //configurar o clock interno para o AD
set_adc_CHANNEL(0);
while(1)
{
analog=(int32)READ_ADC();
result=(float)(analog*0.488);
printf(lcd_putc, " \f TEMP %0.2f C ",result,);
delay_ms(10);
}
}
Foi testado em protoboard.

Enviado:
04 Dez 2008 13:41
por MOR_AL
Olá Alex1000.
alex1000 escreveu:Um problema surgiu colocando-se o LM35 ao A0 do Pic16F877a, a tensão que aparece no A0 é (no máximo) 1.5 V.
Olhando-se o datasheet do LM35 que ele trabalha de 2v a 4V, indicando de
-55 a 150°. Retirando-se o LM do circuito e aumentando e diminuindo a temperatura a sua volta ele apresenta estas tensões no Vout.
Parece que o Pic está impedindo-o de apresentar esta tensão.
Antes que perguntem isto ocorreu em outros pinos também.
Alguem tem alguma solução?
Parece que você viu o gráfico da tensão de alimentação mínima em função da temperatura.
Este LM35 tem uma saída de 10mV/grau Célcius. (GS = Graus Célcius)
Ou seja:
Vout = 0,01 (volts/GS) * Temperatura (GS)
EXEMPLO:
Se Temperatura for igual ao máximo (150GS), a tensão de saída será:
Vout = 0,01 (V/GS) * 150 (GS) = 1,5V
Parece que estava faltando uma carga na saída, para funcionar direito.
Se você quiser que para a temperatura de 150 GS a tensão de saída seja de 5V, então terá que colocar um amplificador operacional. Aí vai ter que usar dupla alimentação, pois os operacionais não gostam de fornecer tensões próximas ao zero volt com -Vcc = 0
MOR_AL

Enviado:
04 Dez 2008 14:20
por alex1000
Ola Moral.
Nos meus ultimos testes ocorrem o seguinte:
No LM35,colocado no protoboard, sem conexão ao PIC, Vout ligado a um osciloscopio apresenta um aumento da temperatura devido a fonte de calor, No osciloscopio aparece uma tensão continua.
Este mesmo LM35, na mesma posição e próximo desta mesma fonte de calor, conectado ao A0 do Pic877A, apresenta no osciloscopio, uma tensão MENOR do que aquela vista no LM35 isolado e um sombreado abaixo desta linha de tensão.
Conclusão>não há problema na resolusão ou no programa, pois ele está funcionando. O problema é que o Pic(parece) que não esta permitindo que o LM35 apresente a tensão relativa a temperatura. Isto seria possivel?

Enviado:
04 Dez 2008 17:22
por alex1000
Pessoal, ninguem teria uma ideia sobre o problema?
Já está batendo o desespero
