Autor Tema: ¿algoritmo para hacer un voltimetro?  (Leído 3190 veces)

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

Desconectado heiliger

  • PIC10
  • *
  • Mensajes: 3
¿algoritmo para hacer un voltimetro?
« en: 10 de Octubre de 2011, 20:19:15 »
buenas

estoy tratando de hacer un voltimetro de 0-24v en asm con el pic16f88 he encontrado algunos ejemplos en el foro pero a la verdad no los entiendo muy bien e tratado varias cosas con ellos pero no e logrado buenos resultados entonces quería saber si alguien me puede explicar algún algoritmo o una formula que pueda aplicar para convertir el resultado de adc en un valor para despegarlo en 7 segmentos

Desconectado sosuma

  • PIC10
  • *
  • Mensajes: 1
Re: ¿algoritmo para hacer un voltimetro?
« Respuesta #1 en: 10 de Septiembre de 2013, 00:39:15 »
mae yo estoy haciendo un instrumento de medida como voltaje, temperatura, mediciones de masa de 15kg por 5g - pero estoy en esas aun cuando la termine te las paso.

Desconectado BBMNet

  • PIC12
  • **
  • Mensajes: 91
Re: ¿algoritmo para hacer un voltimetro?
« Respuesta #2 en: 10 de Septiembre de 2013, 02:57:50 »
La manera más fácil de implementar esa conversión es una tabla de datos. Símplemente utiliza el valor binario del ADC para apuntar a la posición en la tabla que contiene la secuencia correcta que te presentará el display correcto.

La tabla se puede volver un poco larga en función de la resolución que necesites. Para una cuenta de p/e 000 a 500 estaríamos tratando con una tabla de 600 valores (6 dígitos posibles para las centenas, 10 para las decenas y 10 para los enteros = 6 X 10 X 10). La aplicación en sí no es importante y el punto decimal lo puedes fijar donde quieras. Incluso puede formar parte de las secuencias. Así podrías tener datos como .001 y 497.

El número máximo posible de datos en la tabla es función de la precisión del ADC. Si tenemos 10 bits la tabla tendrá como máximo 1023 valores.

Es interesante saber que muchos instrumentos comerciales por no decir todos utilizan esa técnica. Incluso se utiliza por ejemplo en termómetros para realizar el linealizado de las lecturas.

Nota: la curva de respuesta de un termopar no es exáctamente lineal, según el tipo y la temperatura unos más que otros. Aunque existen ecuaciones para la linealización es más fácil y rápido utilizar una tabla.

Podrías utilizar este VDU (voltage display unit) para leer lo que quieras. Lo obvio es voltaje CD entre 0 y 5 volts pero utilizando el transductor correcto y ajustándo el nivel del voltaje presentado a la entrada analógica puedes leer lo que quieras, voltaje, temperatura, presión, corriente, etc. Sólo como yá comenté los datos de la tabla corresponderían a los valores "linealizados" del transductor y el punto decimal lo fijarías en la posición correspondiente o simplemente no aparecería.

Incluso se podría hacer que despliegue datos negativos. La manera de hacer que voltajes negativos de un transductor se puedan leer es "sumarles" un voltaje positivo cancelando el voltaje mínimo de dicho transductor. Esto también se utiliza en instrumentos digitales comerciales. En este caso la posición cero de la tabla contiene el valor negativo mínimo.

El link a continuación muestra un VDU también llamado DPM (digital panel meter).

http://www.futurlec.com/Panel_Meters.shtml

Espero que esto les de ideas.

Saludos.

Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Re: ¿algoritmo para hacer un voltimetro?
« Respuesta #3 en: 10 de Septiembre de 2013, 17:27:38 »
buenas

estoy tratando de hacer un voltimetro de 0-24v en asm con el pic16f88 he encontrado algunos ejemplos en el foro pero a la verdad no los entiendo muy bien e tratado varias cosas con ellos pero no e logrado buenos resultados entonces quería saber si alguien me puede explicar algún algoritmo o una formula que pueda aplicar para convertir el resultado de adc en un valor para despegarlo en 7 segmentos
Yo tengo hecho un voltimetro con ese pic, la idea es la siguiente:
Si vas a medir 24v y convertirlo a valor digital en 8 bits, vas a tener 256 valores posibles. donde 255 equivaldria a 24V.Si hacemos24v/256 =0.0937 este es el factor de conversion entre el valor de voltaje y el valor del adc, de tal forma que al multiplicar lo por el valor leido del adc, se obtiene el voltaje, pero como en asm no podemos tener numeros con coma, lo que vamos ha hacer es multiplicar ese factor de conversion por 1000 y lo redondearemos o truncaremos para que nos quede 93

ahora si usando este factor, tenemos en el adc un valor de 128, al multiplicarlo por 93 obtenemos el valor del voltaje multiplicado por 1000
128*93=11904 o sea 11.9v, se sacrifica un poco de exactitud pero no mucha.

Pensa lo que te explique y si lo entendiste o tenes alguna duda me decis y seguimos con el tema.