Buenas:
Yo instale en mi auto un medidor similar al planteado,solo que mide la presion de gas del tanque (mi auto es a GNC) y la toma directamente del indicador que trae el equipo, a su vez ya que me sobraban entradas analogicas, mide bateria y temperatura a traves de un lm35 montado la tapa de cilindros cuyo cable pasa hasta el tablero, todo se muestra en 3 displays de 7 segmentos ,rotando la medicion a mostrar.-
La fuente basicamente es un 7805 con los correspondientes capacitores ,en especial uno de 100micros entre las patas de alimentacion del 16f873.-
Hasta el momento no ha presentado inconvenientes de ningun tipo y lleva andando unos 3000Kms.-
Modificar el soft para medir la sonda no me parece complicado,asi que les adjunto el programa para que vean si les sirve.-
Saludos
Jorge
"****************************************************************
"* Name : tem_volt_auto.BAS *
"* Author : Jorge ansuini *
"* Notice : Copyright (c) 2004 jorge ansuini *
"* : All Rights Reserved *
"* Date : 27/02/2004 *
"* Version : 1.0 *
"* Notes : voltimetro y termometro para auto *
"* : hasta aqui funciona,con medidor de gas *
"* : funciona *
"****************************************************************
define osc 8
Define ADC_BITS 10 " conversor a 10 bits
Define ADC_CLOCK 3 "
Define ADC_SAMPLEUS 100 " tiempo de muestreo
digit1 VAR Byte
digit2 VAR Byte
digit3 VAR Byte
veces var byte
cuenta var word
cuenta2 var word
volt var word
temper var word
presion var word
intermedia VAR word
intermedia2 var word
cuenta3 var word
symbol digi1=portc.0
symbol digi2=portc.1
symbol digi3=portc.2
symbol digito=portb
symbol en_volt =portc.3
symbol en_temp =portc.4
symbol en_presion=portc.5
symbol alarma=portc.6
TRISA = %11111111
ADCON1 = %10000010 " resultado justificado a la derecha
;ADCON0 = %11000101
TRISB = %00000000
TRISC = %00000000
;-------------------------------------------------
portc=0
high en_volt
pause 600
high en_temp
pause 600
high en_presion
pause 600
low en_volt
pause 600
low en_temp
pause 600
low en_presion
pause 1000
goto inicio_temp
inicio_volt:
cuenta=0
for veces= 0 to 49
ADCON0.2 = 1
no_termino:
gosub display
IF ADCON0.2 = 1 Then no_termino
adcin 0,intermedia
cuenta=intermedia+cuenta
next veces
cuenta2=cuenta
high en_volt
low en_presion
for volt=0 to 100
if cuenta2<12000 or cuenta2>14000 then high portc.7
high portc.6
gosub display
next volt
low portc.7
inicio_temp:
cuenta=0
for veces= 0 to 50
ADCON0.2 = 1 " arranca Conversion
termino:
gosub display
IF ADCON0.2 = 1 Then termino
adcin 1,intermedia
cuenta=intermedia+cuenta
next veces
cuenta2=cuenta
high en_temp
low en_volt
if cuenta>9000 then high portc.7
for volt=0 to 100
gosub display2
next volt
inicio_gas:
cuenta=0
for veces= 0 to 9
ADCON0.2 = 1 " arranca Conversion
termino_gas:
gosub display2
low portc.6
IF ADCON0.2 = 1 Then termino_gas
adcin 2,intermedia
cuenta=intermedia+cuenta
next veces
cuenta2=(cuenta-3400)*10
if cuenta<3405 then cuenta2=0
high en_presion
low en_temp
for volt=0 to 100
gosub display
next volt
goto inicio_volt
display:
digit3 = cuenta2 dig 4
digit2 = cuenta2 dig 3
digit1 = cuenta2 dig 2
LOOKUP2 DIGIt3,[63,6,91,79,102,109,125,7,127, 111],digito
high digi3
pause 5
low digi3
LOOKUP2 DIGIt2,[63,6,91,79,102,109,125,7,127, 111],digito
high digi2
pause 5
low digi2
LOOKUP2 DIGIt1,[63,6,91,79,102,109,125,7,127, 111],digito
high digi1
pause 5
low digi1
return
display2:
digit3 = cuenta2 dig 3
digit2 = cuenta2 dig 2
digit1 = cuenta2 dig 1
LOOKUP2 DIGIt3,[63,6,91,79,102,109,125,7,127, 111],digito
high digi3
pause 5
low digi3
LOOKUP2 DIGIt2,[63,6,91,79,102,109,125,7,127, 111],digito
high digi2
pause 5
low digi2
LOOKUP2 DIGIt1,[63,6,91,79,102,109,125,7,127, 111],digito
high digi1
pause 5
low digi1
return