Conversor AD PIC 18F2550

Olá amigos,
estou arriscando alguns testes com um PIC que tenho, porém, tenho tido alguns problemas com conceitos básicos como o conversor AD. Utilizo o mikroC.
Vou tentar resumir a história:
- 1° teste: Preparar a conversão manualmente, aguardar a conversão e utilizar os valores lidos utilizando potenciômetro em AN0 (Resultado: Funciona)
- 2° teste: Preparar a conversão manualmente, aguardar a conversão e utilizar os valores lidos utilizando LM35 em AN1 (Resultado: NÃO Funciona)
Praticamente o mesmo código, somente alterando o input na primeira linha dentro do while:
Estou conectando o a saída do sensor LM35 direto na entrada AN1 do PIC 18F2550, isso pode ser um problema?
Espero ter sido claro.
Aguardo qualquer sugestão.
Obrigado desde já.
Atenciosamente,
Douglas
estou arriscando alguns testes com um PIC que tenho, porém, tenho tido alguns problemas com conceitos básicos como o conversor AD. Utilizo o mikroC.
Vou tentar resumir a história:
- 1° teste: Preparar a conversão manualmente, aguardar a conversão e utilizar os valores lidos utilizando potenciômetro em AN0 (Resultado: Funciona)
- Código: Selecionar todos
void main()
org 0x800
{
unsigned int valor ;
// INIT ADC
// AN0..AN2 analógicas[RA0..RA2]; VDD e VSS é ref de tensão - são 5V da alimentação
ADCON1 = 0b00001100;
// selecciona TAD=64TOSC; tempo sampling =12TAD; formato resultado right justified
ADCON2 = 0b10101110;
// enable converter module
ADCON0.ADON = 1;
TRISA = 0x03; // RA0..RA2 são input
TRISB = 0x00;
while(1)
{
ADCON0.CHS3 = 0; ADCON0.CHS2 = 0; ADCON0.CHS1 = 0; ADCON0.CHS0 = 0; // selecciona input AN0
// 0000 - AN0; 0001 - AN1; 0010 - AN2
ADCON0.GO_DONE=1;// dá inicio à conversão
while(ADCON0.GO_DONE) continue; // aguarda fim da conversão
PIR1.ADIF=0;
valor=ADRESH*256+ADRESL; // 0.... 1023
if (valor < 45)
{
PORTA.RA4 = 0; // Turn OFF LEDs on PORTA
PORTA.RA5 = 0; // Turn OFF LEDs on PORTA
}
else
{
PORTA.RA4 = 1; // Turn ON LEDs on PORTA
PORTA.RA5 = 1; // Turn ON LEDs on PORTA
}
}
}
- 2° teste: Preparar a conversão manualmente, aguardar a conversão e utilizar os valores lidos utilizando LM35 em AN1 (Resultado: NÃO Funciona)
Praticamente o mesmo código, somente alterando o input na primeira linha dentro do while:
- Código: Selecionar todos
ADCON0.CHS3 = 0; ADCON0.CHS2 = 0; ADCON0.CHS1 = 0; ADCON0.CHS0 = 1; // selecciona input AN1
Estou conectando o a saída do sensor LM35 direto na entrada AN1 do PIC 18F2550, isso pode ser um problema?
Espero ter sido claro.
Aguardo qualquer sugestão.
Obrigado desde já.
Atenciosamente,
Douglas