Hola a tod@s!!!
Estoy usando el ADC de un micro pic 18F8722 y no consigo que funcione como debe.
Uso el pin A1 configurado como ADC de 10 bits. Tengo una fuente de tensión conectada a ese pin y además tiene un condensador de 10 nF tierra para evitar ruidos.
Las dudas que tengo son las siguientes:
-Si quito la fuente de tensión y dejo ese pin al aire, en ese pin mido una tensión de 4,6 voltios.
¿No deberia ser 0 voltios?
Y por otro lado, el verdadero problema es que para 0 voltios de entrada me mide 0,33 voltios el ADC y para 4,2 voltios ya me mide 5 voltios.
Os comento que el pic está alimentado a 5 voltios y el resto de las patas están al aire.
No se que puedo estar haciendo mal. Más abajo os dejo el código en C para ver si alguno me puede echar una mano:
Muchas gracias por todo!
Boni
#include <18f8722.h>
#device ADC=10;
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOIESO
#fuses NOEBTRB,NOEBTR,NOWRTD,NOWRTC,NOWRTB,NOFCMEN,NOLPT1OSC,NOMCLR
#fuses NOCPD,NOSTVREN,NODEBUG,NOLVP,NOWRT,NOCPB,NOXINST,NOWAIT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_G1, rcv=PIN_G2)
void main(void){
float adc_f=0;
setup_adc_ports(AN0_TO_AN1|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
delay_ms(100);
while(1){
set_adc_channel(1);
delay_ms(10);
adc_f=read_adc();
printf("\r\nLeido : %3.2f ",adc_f*5/1023);
delay_ms(500);
}
}