Autor Tema: ADC con PIC en assembler  (Leído 5449 veces)

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

Desconectado chugus

  • PIC10
  • *
  • Mensajes: 30
ADC con PIC en assembler
« en: 04 de Septiembre de 2012, 14:19:49 »
Hola gente, estoy realizando un proyecto de un voltímetro digital con PIC programado en Assembler.

El circuito consta de un PIC 16f818 en el cual el PORTB destino a manejar tres display de 7 segmentos multiplexandolos con tres bits del PORTA. Se usa el conversor en 8 bits.

El dato entra por AN0, pasa por una rutina que lo convierte de binario a decimal separandolo en unidad, decena y centena, luego se llama a la rutina de displayado donde se envía el dato al PORTB multiplexando cada dígito.

Se dispone de un pote de 5K conectado directamente a la entrada analógica. Después de unas cuantas horas funciona a la perfección dando como resultasdo "000" cuando el pote está al minimo y "255" cuando el pote está al máximo.


Ahora bien, mi pregunta es la siguiente, dado que solo se programar en assembler, como hago para hacer el arreglo interno para que en la salida obtenga el valor real en voltios?

Espero me puedan dar una mano, estuve trabajando mucho y creo que me falta muy poco..

Un saludo!

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: ADC con PIC en assembler
« Respuesta #1 en: 04 de Septiembre de 2012, 14:39:27 »
Hola, lo que puede hacer es poner a la entrada del pic un divisor de tensión, de tal forma que cuando a las dos resistencia le apliques 25V en la entrada del PIC aparezcan 5V

R1 = 10K, R2 = 2,5K

Saludos.

Desconectado chugus

  • PIC10
  • *
  • Mensajes: 30
Re: ADC con PIC en assembler
« Respuesta #2 en: 04 de Septiembre de 2012, 15:58:07 »
Ok, muchas gracias. Funciona muy bien.

El problema es que me da como máximo 25.5V y yo necesito trabajar hasta 35v que es lo que me da mi fuente de alimentación.
Habría alguna forma de solucionarlo??

Un saludo!
« Última modificación: 04 de Septiembre de 2012, 16:33:59 por chugus »

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: ADC con PIC en assembler
« Respuesta #3 en: 04 de Septiembre de 2012, 17:42:41 »
Si configuras el ADC a 10 bit puedes medir hasta 102,3V, obviamente seleccionando las resistencias apropiadas.

Saludos.

Desconectado chugus

  • PIC10
  • *
  • Mensajes: 30
Re: ADC con PIC en assembler
« Respuesta #4 en: 04 de Septiembre de 2012, 18:17:36 »
Si, es lo que pesaba ya que con 8 bits puedo medir en las escalas maximas de 2,5V - 25,5V - 255V.
El tema de usar 10 bits es que tendría que modificar las rutinas ya que trabajo todo con 1 byte.

Te agradezco la respuesta, veré como lo soluciono.

Un saludo!

Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Re: ADC con PIC en assembler
« Respuesta #5 en: 04 de Septiembre de 2012, 19:36:47 »
Ok, muchas gracias. Funciona muy bien.

El problema es que me da como máximo 25.5V y yo necesito trabajar hasta 35v que es lo que me da mi fuente de alimentación.
Habría alguna forma de solucionarlo??

Un saludo!
Se pude trabajar bien con 8bits, los que tienes que hacer es diseñar un divisor de tension hecho con una resistencia y un preset para poder ajustar la tension que entra en la entrada analogica, de forma que al tener 35V, el divisor te entregue maximo 5V y listo, ademas debes poner un zener para limitar la tension a no mas de 5V. Ahora como conviertes los valores digitales a digitos decimales? Bueno se hace sacrificando algo de presicion.

Si para 35V obtienes 255, cada bit representa: 35V/256 o sea:  0.1372 V.

Para obtener el valor de el voltaje debes multiplicar 0.1372 * (valor del conversor).
Ahora como multiplicar esos valores si son numeros reales? La solucion es redondear 0.1372 a por ejemplo 0.13 y mutiplicarlo por  100 para obtener un factor de 13 de modo que ahora para obtener el valor en voltios de sin la coma se debe multiplicar el valor del conversor por 13:

Ejemplo: para valor de 15 del conversor se obtiene 15*13=195 que es el valor del voltaje mutiplicador por 100.
Adjunto archivos de mi voltimetro con PIC 16f688.

« Última modificación: 04 de Septiembre de 2012, 19:39:27 por soymoe »

Desconectado chugus

  • PIC10
  • *
  • Mensajes: 30
Re: ADC con PIC en assembler
« Respuesta #6 en: 04 de Septiembre de 2012, 23:12:04 »
Si, yo descubrí empíricamente que multiplicando el valor de la resolución o sea 0.1372 por el valor en binario nos da el voltaje real.

No se me había ocurrido multiplicarlo por 100 y tomar 13 como factor. Es muy buena idea y me permite usar rutinas sin coma flotante.

Lo voy a probar, un saludo!