Buenas a todos,
Estoy trabajando ahora en un programa que me lea dos sensores analogicos y me saque por la LCD el valor de los mismos. En proteus simulando los sensores con potenciometros que me dan de 0 a 5 voltios me va perfectamente pero a la hora de montar los sensores me dependen uno del otro...
Tengo dos sensores uno de temperaturo y otro de presion. Actualmente solo tengo implementado el de temperatura, el de presion lo tengo llevado a masa por aquello de que no quede al aire (aun no me ha llegado el sensor). El problema es que si llevo a masa la patilla por la que tiene que entrar el sensor de presion la temperatura se vuelve loca y me da -15º que es lo equivalente aproximadamente a lo minimo que me puede dar el sensor de temperatura, en cambio si llevo la patilla de presion a positivo el sensor de temperatra si que aparentemente reacciona adecuadamente ya que me viene a dar unos 22-23º aproximadamete y si lo caliento asciende (lo he llegado a subir hasta 33º y luego va bajando hasta estabilizarse de nuevo entre 22º y 23º) La verdad que no le encuentro ya mucho sentido a esto que me está pasando....
Os dejo las partes del codigo de los convertidores a ver si veis algo raro... lo unico que si hago es cada vez que leo un canal desactivo los convertidores y luego los vuelvo a activar, eso ya lo habia hecho alguna vez y me funcionaba bien....
///////////////////////////////////////////////////////////////////////////////
void configurarconvertidor1()
{
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
set_adc_channel(3);
medidatemperatura = read_adc();
delay_ms(50);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
delay_ms(50);
}
void configurarconvertidor2()
{
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
set_adc_channel(4);
medidapresion = read_adc();
delay_ms(50);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
delay_ms(50);
}
////////////////////////////////////////////////////////////////////////////
If (contador==1)
{
configurarconvertidor1();
delay_ms(250);
configurarconvertidor2();
temperatura = calculatemperatura(medidatemperatura);
presion = calculapresion(medidapresion);
presiones();
volumen = calculavolumen();
If (a==1)
{
printf(lcd_putc, "\f");
printf(lcd_putc, "T: %f\xDFC \nP: %f Bar",temperatura,presion);
a=2;
}
If (input(PIN_C5))
{
a=1;
}
}
Las variables estan definidas anteriormente al igual que las funciones, todo el programa me va bien quitando ese fallo con los sensores... en la practica real poniendo potenciometros me pasaba lo mismo asi que descarto que sea el sensor
Un Saludo y gracias de antemano.