Hola a todos necesitaria saber como poner hace que mi 16f876 fuese capaz de medir una tensión analógica por RA2 (por ejemplo) usando como tension de referencia la VREF (RA3) del PIC y con una precisión de 10 Bits. Os cuento, he colocado a la entrada RA3 del PIC un regulador de 1.2 Voltios y he configurado el PIC con 10 Bits de resolución, pero cuando hago una medida en RA2, este mide 3FF en en rango de tensiones 0.2 a 1.2 aproximadamente. Sin embargo, si uso como tensión de referencia 5 Voltios no hay problema.
Aqui va el código:
#include <16F876.h>
#device adc=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=10000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use I2C(MASTER, SDA=PIN_C4, SCL=PIN_C3, SLOW)
#define resolucion (1.25/1024.0)
#use fast_io(B)
#byte port_b = 6
void main() {
set_tris_b(0xFB); //Puerto B: de RB2 como salida Y RB0,RB1 .. RB7 como entradas
setup_adc_ports(ANALOG_RA3_REF); //Configuración de todas las entradas del Puerto A como analógicas
//setup_adc_ports(ALL_ANALOG); //Configuración de todas las entradas del Puerto A como analógicas
setup_adc(ADC_CLOCK_INTERNAL); //Configuración entradas analógicas
while (1){
long int lectura=0;
float lecturatemp=0.0;
set_adc_channel(2); //Selección del ADC 0
delay_ms(10); //Espero 10 ms para tomar medidas correctas
lectura=read_adc();
printf("
El valor leido es: %LX",lectura);
lecturatemp= (float)lectura * resolucion;
printf("Lectura tomada por CAD2 es: %1.2f
", lecturatemp);
getc();//Para tomar siguiente medida pulsar una tecla
}
}
Podeis echarme una mano? Gracias a todos por hacer posible este foro