mi tema se basa en la conversión análogo digital baje un código de un voltímetro de Internet escrito en pcw estoy envolatado en la parte de como hace la conversión desde que recibe la lectura hasta que la muestra por pantalla
la conversión que llo se es la siguiente es para temperatura
resolución de bit
5 / 1023 = 0.0048875
= 0.0048875 * 100= 0.48875
resolucion 0.48875
entrada por el puerto analógico y lectura que tomara
0.25 (equivale a 25grados)
0.25 *1024 = 256
=256 / 5v = 51.2
=51.2 (redondeo a 52)
52 * 0.48875 = 25
=25 (25 grados mostrados por pantalla )
de esta manera saco la conversión interna del pic hasta que la muestra por pantalla
en el siguiente código no logro encontrar como hace la conversión hasta que la muestra por pantalla
es el siguiente del voltímetro
#include <18F4550.h>
#device ADC = 10
#include <math.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,PUT
#use delay(clock=20000000)
#include <lcd.c>
#include <stdlib.h>
Float V;
Void Lectura() {
set_adc_channel(0);
delay_us(25);
V=read_adc(); //Lectura del conversor
Delay_us(50);
V=V*100/1023;
lcd_gotoxy(1,1);
printf(lcd_putc,"V:%02.1f",V);
}
Void main() {
lcd_init(); //inicializacion de la LCD
setup_adc(ADC_CLOCK_DIV_8);
setup_adc_ports(AN0); //Configuracion del conversor A/D
lcd_gotoxy(4,1);
printf(lcd_putc,"Voltimetro");
lcd_gotoxy(5,0);
printf(lcd_putc,"Digital");
delay_ms(3000);
lcd_send_byte(0,1); // Borrar pantalla LCD
while (true) {
Lectura ();
}
}
gracias por la colaboracion