#include <16F877.h>
#device adc=10
#fuses XT,NOWDT
#use delay(clock=4M)
#include <lcd.c>
void main()
{
int16 VpH4,VpH7,VpH10,V,V1,Vm,bandera;
float V4,V7,V10,pH,b,m;
V1=0;
V4=0.0;
V7=0.0;
V10=0.0;
bandera=0;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"\fENCENDIENDO");
delay_ms(500);
do
{
printf(lcd_putc,"\fCalibrar pHmetro");
if(input(PIN_A1)==1){
printf(lcd_putc,"\fMedir pH 4");
VpH4=read_adc(AN0);
V4=(5.0/1024.0)*VpH4; } //Valor de tension para pH 4
if(input(PIN_A2)==1) {
printf(lcd_putc,"\fMedir pH 7");
VpH7=read_adc(AN0);
V7=(5.0/1024.0)*VpH7;} //Valor de tension para pH 7
if(input(PIN_A3)==1){
printf(lcd_putc,"\fMedir pH 10");
VpH10=read_adc(AN0);
V10=(5.0/1024.0)*VpH10;} //Valor de tension para pH 7
if(V4==0&&V7==0&&V10==0)
bandera=1;
} While(bandera=0);
m=((3*(4.0*V4+7.0*V7+10.0*V10)-21*(V4+V7+V10)))/(3*165-441);
b=((V4+V7+V10)-21*m)/3;
do{
printf(lcd_putc,"\nSensando");
delay_ms(500);
V=read_adc();
//if(q!=q1){
Vm=(5.0/1024.0)*V;//reemplazar el 5.0 por Vcc con #define
pH=(Vm-b)/m;
lcd_gotoxy(1,1);
printf(lcd_putc, "\fTension = %4ld", Vm);
printf(lcd_putc, "\nVoltage = %01.2fmV", pH);
delay_ms(500);
V1=V;
//}
}
while(TRUE);
}
Este es el codigo que modifique para que me calibre mi sensor de pH, pero todavia no logro que me muestre lo sensado en el display. Nose que parte estará mal y hace que no me muestre nada en el display! Si alguien me puede ayudar se los agradeceria muchisimo!!!
PD: El .rar de arriba contiene el codigo sin la parte de la calibracion, es anda perfectamente cuando se lo descomprime, pero si se le modifica algo deja de funcionar!!! Ayuda!!!