Autor Tema: Proceso - conversor Analogo - Digital .  (Leído 1509 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PicKetero

  • PIC12
  • **
  • Mensajes: 80
Proceso - conversor Analogo - Digital .
« 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 !!!

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Proceso - conversor Analogo - Digital .
« Respuesta #1 en: 12 de Marzo de 2004, 11:18:00 »
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


 

anything