TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: PicKetero en 11 de Marzo de 2004, 19:11:00
-
Hola foro !!!!
Necesito ayuda sobre el proceso digital de una señal análoga.
Yo estoy utilizando un Pic 16f876 el cual posee cuatro compuertas de entradas
analogas de las cuales solo utilizo con una resolución de 10 bits para sensar el voltage ( voltimetro )
Y el temas es, si tengo que sensar una señal que va de 0 Volts a 25,5 Volts, como
hago para procesar digitalmente esta señal sabiendo que 0 Volts -> b"0000000000"
y 25,5 Volts -> b"1111111111" para luego ser mostrada por un LCD ?
Aclaraciones: De los 25.5 V mediante un divisor resistivo hago la equivalencia a
5 Volts.
Alguna vez leí que se hacia mediante una regla de tres simple, pero como represento un voltage con desimales ? ejem. : 12,7 Volts , 0,5 Volts
Desde ya muchas gracias por su ayuda !!!
-
Hola:
qUIZAS ESTO TE PUEDA AYUDAR
EL pbPLUS TIENE INSTRUCCIONES PARA MOSTRAR DECIMALES SIN NIGUN PROBLEMA ,Y EN TU CASO SOLO DEBERAS MULTIPLICAR POR 5 EL RESULTADO
Program to measure voltage (0-5VDC)
" and display on LCD with 2 decimal places
" This program uses the */ operator to scale the
" ADC result from 0-1023 to 0-500. The */ performs
" a divide by 256 automatically, allowing math which
" would normally exceed the limit of a word variable.
Include "PROTON_4.INC"
" Define ADC parameters
ADIN_RES = 10 " 10-bit result required
ADIN_TAD = FRC " RC OSC chosen
ADIN_STIME = 50 " Allow 50us sample time
Dim ADVAL AS WORD " Create ADVAL to store result
TRISA = %11111111 " Set PORTA to all input
ADCON1 = %10000010 " Set PORTA analog and right justify result
Delayms 500 " Wait .5 second
Cls " Clear LCD
Loop: ADVAL = Adcin 0 " Read channel 0 to adval (0-1023)
ADVAL = (ADVAL */ 500) >> 2 " equates to: (adval * 500)/1024
Print at 1,1,"DC Volts= ",Dec (ADVAL/100),".", Dec2 ADVAL," " " Display the decimal value
Delayms 100 " Wait .1 second
Goto Loop " Do it forever
sUERTE
KHASISTOS