Hola aqui las rutinas que espero sean de utilidad uno es el de RPM programable y el otro es rpm solo y temp usando el bulbo original del auto ,esquema no lo tengo pues fue armado de a pedazos de acuerdo a como lo hiba desarrollando ,con respecto a la tension solo emplee otro de los Ad y confeccione un divisor resistivo x 3 y se empleo el ejemplo del ad midiendo tension que viene en el PRO .
cualquier otra duda aqui estoy ;no puedo adjuntar asi que los transcribo
"* Name : RPMPROG.BAS
"* Date : 12/05/04
DEVICE = 16F877
XTAL = 20
ALL_DIGITAL = TRUE
PORTB_PULLUPS = ON
trisa.0=1
LCD_DTPIN = PORTD.4
LCD_RSPIN = PORTE.0
LCD_ENPIN = PORTE.1
LCD_INTERFACE = 4
LCD_LINES = 4
LCD_TYPE = 0
DIM N as byte
DIM RPM as DWORD
DIM RPMR AS DWORD
DIM A as word
Delayms 500
cls
" ****DATOS INICIALES*******
EDATA $3C,$E8,$03 "ajustes iniciales se graba en la EEprom cuando lo programO
N = EREAD 0
A= EREAD 1
cls "*** PRINCIPAL ***
MAIN:
WHILE PORTB.1=0
A=A+50
DELAYMS 700
PRINT AT 1,18,DEC5 A
WEND
IF PORTB.3=0 THEN
N=N+1
IF N >100 Then N = 1
print at 1,1 ,"DIVIDE X ",DEC3 n
ENDIF
IF PORTB.4=0 THEN
N=N-1
IF N =000 Then N = 100
print at 1,1 ,"DIVIDE X ",DEC3 n
ENDIF
IF PORTB.2=0 THEN GOSUB MEM
IF PORTB.5=0 THEN GOSUB ALMEM
RPM = COUNTER PORTA.0 , 1000
RPMR=((RPM*60)/N)
IF RPMR > A THEN GOSUB ALARMA
Print at 2,1, "RPM = ", DEC5 RPMR
GOTO MAIN
ALARMA:
CLS
PRINT AT 1,9, "ALARMA"
DELAYMS 600
CLS
RETURN
MEM:
EWRITE 0 ,[N ]
CLS
PRINT AT 1,5, "Memoria= " ,DEC2 N
DELAYMS 1000
CLS
RETURN
ALMEM:
EWRITE 1 ,[A ]
CLS
PRINT AT 1,5, "MemoAL= " ,DEC5 A
DELAYMS 1000
CLS
RETURN
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
"****************************************************************
"* Name : adrpm.BAS
"* Date : 01/05/04
DEVICE = 16F877
XTAL = 20
LCD_DTPIN = PORTD.4
LCD_RSPIN = PORTE.0
LCD_ENPIN = PORTE.1
LCD_INTERFACE = 4 " 4-bit Interface
LCD_LINES = 4
LCD_TYPE = 0
ADIN_RES 10
ADIN_TAD FRC
ADIN_STIME 50
Dim Raw as float
Dim Value as float
Dim cal as word
DIM RPM as WORD
Delayms 500
Cls
TRISB.1=1
TRISA = %00000001
ADCON1 = %10000010
Again: Raw = ADIN 0
Value = Raw*-1
cal=(Value+1023)/6.23
If cal <=55 then cal=00
Print at 1,1,"Temp ",Dec3 cal
Print at 1,14 ,@Raw, " "
RPM = COUNTER PORTB.1 , 1000
Print at 2,1, "RPM = ", DEC5 RPM*60
goto Again
pido disculpas por las desprolijidades pero estas son las rutinas que estan funcionando y como lo hice de a ratos cuando logre lo que queria lo puse a funcionar sin confeccionar esquemas ,repito cualquier duda tratare de contestarla