Menu
in ,

Voltímetro USB NeoTeo

¿Necesitas un voltímetro para el ordenador? NeoTeo te acerca la solución que estabas esperando. Con visualizador gráfico y detector de tensiones máximas y mínimas (con retención), este instrumento puede ser ampliado hasta obtener 10 canales de medición simultánea. Es decir, puedes lograr completar un sistema de monitoreo de tensiones muy útil para tu taller de experimentación. Con conectividad USB y una pequeña aplicación en el ordenador, puedes llevar este voltímetro a donde vayas y realizar las mediciones que necesites. Está alimentado por baterías, fuente externa o por el propio puerto USB. Aquí tienes el principio de tu próximo laboratorio hecho a tu exclusiva medida y construido por ti mismo.

Un voltímetro actual y moderno dista mucho de aquel primitivo instrumento de d’Arsonval que deslumbraba al mundo de la física durante el siglo XIX. Hoy, el manejo del ordenador se ha hecho tan cotidiano y habitual para el practicante del arte electrónico que todas las herramientas que necesita para trabajar las encuentra allí: circuitos, tutoriales, diagramas, explicaciones, foros, páginas Web, (NeoTeo, por supuesto), simuladores de circuitos, osciloscopios y toda clase de herramientas útiles para desplegar su actividad. Sin embargo, hay ocasiones en las que desearíamos estructurar las aplicaciones ya existentes según nuestras necesidades; es en ese momento cuando nos enfrentamos con un ejecutable infranqueable: tú debes adaptarte a un software, él no se adaptará a ti. Por esto, te presentamos lo que aparenta ser un simple y sencillo voltímetro, pero que en su corazón guarda la posibilidad de construir todo un laboratorio de mediciones organizado a tu medida y necesidad.

A partir de un voltímetro, todos los instrumentos de medición son posibles y mucho mejor aún si podemos elegir el instrumento final que deseamos construir. Es decir, aprendiendo a manejar los valores de fondo de escala, cualquier aplicación será posible. Por ejemplo, la corriente eléctrica que circula por una resistencia de bajo valor (shunt) nos ofrecerá una tensión que se podrá medir y que será proporcional a la corriente que esté circulando por la mencionada resistencia. De este modo, funciona un amperímetro. En consecuencia, si ya poseemos un voltímetro y un amperímetro, podremos calcular la potencia absorbida por un circuito. Además, con el agregado de un visualizador, será mucho más intuitivo el manejo y más sencilla la atención en el comportamiento de un sistema. Bastará con una rápida mirada sobre la pantalla del ordenador para saber si algún parámetro de funcionamiento ha cambiado durante el transcurso del tiempo que tú decidas. Basta de palabras, obsérvalo en acción midiendo tensiones entre 0 y 5Volts.

Este importante desarrollo tiene dos partes fundamentales bien definidas: el hardware con su correspondiente programación y el programa o software hecho en Visual Basic que funciona en el ordenador. El hard, tal como vimos en el video y en el circuito, posee muy pocos componentes. Tan sólo bastará con el cristal oscilador para el 18F2550, unos pocos capacitores de filtrado, un LED indicador de funcionamiento y el potenciómetro que utilizaremos para la práctica inicial. A la programación del PIC la realizamos, como siempre, a través de un conector ICSP (In Circuit Serial Programming) y aprovecharemos las posibilidades de conexión USB que nos ofrece el 18F2550, con los 10 conversores de analógico-digital que posee este microcontrolador. Si decides hacerle algunos pequeños cambios al hard y utilizar un 18F4550, la cantidad de entradas analógicas posibles se expande a 13. La corriente absorbida por el circuito implementado, con el LED incluido, es menor a 40mA, por lo que la alimentación desde el puerto USB es totalmente segura en lo que a consumo se refiere.

Para asegurarnos que ningún error fortuito provoque un exceso de tensión en la línea de 5Volts de nuestro circuito (que provienen del ordenador), hemos colocado el diodo D1. ¡Importante! Este diodo debe tener la menor caída de tensión posible en directa (Vforward) para no alterar los valores obtenidos en la medición y mantener la máxima exactitud posible con este sencillo circuito, es decir, sin apelar al uso de referencias de tensión ultra estables. Aquí la referencia es la tensión de alimentación proveniente del USB, por lo tanto, mientras más cercana esté la alimentación del PIC a los 5Volts, mayor será la exactitud en la medición. Si estás seguro de tu trabajo y ya has logrado un funcionamiento confiable, puedes obviar el uso de D1 y colocar allí un puente. Si en cambio utilizas una fuente de alimentación externa, será conveniente anular la alimentación desde USB y pasar a tener un suministro externo de energía en los 5Volts. Este concepto es muy importante para obtener precisión en las mediciones.

En estas pruebas iniciales, en las que la tensión medida es la misma que alimenta el circuito, no existirá posibilidad alguna de tener tensiones elevadas y riesgosas en cercanías del PIC que puedan pasar al ordenador a través del puerto USB. Más adelante, cuando expandamos la escala del voltímetro, este riesgo es real y debemos tomar precauciones para que no ocurran accidentes “desagradables”. R1 y D2 proporcionan el RESET inicial al sistema mientras que R2 polariza el LED de indicación de funcionamiento. Todo muy sencillo en la parte del hardware.

El programa que se carga dentro del PIC posee una estructura básica muy elemental, si es que sabemos separarlo en partes y entenderlo por bloques. Si deseamos interpretar todo de un solo trago, las cosas se pondrán complejas; en cambio, hacerlo por partes nos será muy útil para saber por qué suceden las cosas e incluso para realizar este trabajo en otros lenguajes de programación. El PIC hará lo mismo en la misma secuencia, sólo que en el idioma que mejor sepas interpretar tú. Por eso es muy importante conocer los bloques fundamentales que formarán el programa dentro del PIC:

  • Definir el dispositivo y la frecuencia de reloj (DEVICE)
  • Declarar las características del convertidor Analógico – Digital, ADIN (bits de resolución, tiempos de captura)
  • Definir las variables a utilizar dentro del programa (SYMBOL y DIM)
  • Definir cuántas entradas analógicas utilizaremos mediante los registros ADCON.
  • Iniciar el lazo principal de funcionamiento del programa.
  • Dentro de un contador de eventos (lazo FOR – NEXT), tomar muchas mediciones de la entrada analógica a controlar (ADIN) y luego promediar la sumatoria de las mediciones, sin perder el contacto USB (USBPOLL).
  • Transformar mediante procesos matemáticos el valor obtenido en un número con dos decimales y cargarlos por separado en distintos Bytes del Buffer (los enteros en un Byte y los decimales en otro Byte).
  • Transmitir la cadena de Bytes (USBOUT)
  • Reiniciar el ciclo del programa.

Como puedes ver, en tan sólo nueve pasos puedes lograr el funcionamiento de un voltímetro dentro de un microcontrolador PIC. El circuito “útil” para realizar mediciones hasta 5Volts sería tan sencillo como el siguiente:

Este circuito mostrado, multiplicado por “n” veces y visualizado en “n” cuadros gráficos, nos puede ser útil, por ejemplo, en un sistema de carga y control de múltiples celdas de baterías de Litio-Ion. Recordemos que la carga de una batería Litio-Ion requiere de un tiempo específico y condiciones especiales que pueden tener un monitoreo completo mediante un sencillo circuito como el presentado. Además, el analizador gráfico incorporado en la aplicación del ordenador te permitirá ver la curva de carga de la batería (y de descarga, según tu circuito final) y de ese modo conocer a la perfección el estado de la batería. Si observas el gráfico siguiente (que ya habrás visto en muchos sitios) comprenderás la importancia de saber “qué sucede dentro” de una celda Litio-Ion durante la primera hora y media de carga. Este es uno de los tantos ejemplos de aplicación del voltímetro NeoTeo y de la importancia que tiene, en este caso, el cuadro gráfico que incorpora el software del ordenador.

El programa en Visual Basic
La graficación en el ordenador (de mesa o portátil) de lo que nuestro voltímetro sea capaz de medir es otra parte fundamental del montaje de esta semana. Por supuesto que también será un desarrollo simple y efectivo con el objeto de presentar el funcionamiento del diseño que tú luego podrás acomodar a tu gusto estético y a tu personalidad. En el gráfico que te mostramos a continuación puedes ver que la interfaz gráfica es muy simple de organizar y de “clonar” en caso de que decidas utilizar múltiples entradas analógicas y en consecuencia ejecutes múltiples voltímetros. Realizar un sistema integrado entre un microcontrolador PIC y un programa en VB6 no es una tarea sencilla cuando no se poseen las herramientas necesarias, pero en este caso ya tienes toda la aplicación armada y sólo debes copiar y repetir lo que ya está hecho y funcionando para obtener múltiples voltímetros en una sola interfaz y ampliar así las posibilidades del instrumento mostrado.

El programa desarrollado posee las características típicas de cualquier ejemplo en Visual Basic: un formulario donde se ejecutan las instrucciones y una interfaz visual donde se sucederán los resultados obtenidos a partir de las mediciones. En el formulario tendremos la clásica distribución de procedimientos habituales (Load, Unload, Timers, botones) a los que se sumarán los procedimientos específicos del funcionamiento en USB (OnPlugged, UnPlugged, OnRead y algunos más), en los que escribiremos todo el código necesario para que la aplicación funcione de manera exitosa. Generaremos las variables que sean necesarias (las declararemos públicas en un formulario específico) y desarrollaremos el arte de mostrar y procesar los datos que vayan llegando a través del puerto USB que correspondan a los datos de tensión que el hardware esté detectando.

Por supuesto que las partes destacadas del programa no serán las etiquetas, ni el Timer que actualiza el reloj, ni los colores que utilicemos en el diseño, sino que estarán formadas, como siempre, por conjuntos de instrucciones muy específicas y concretas. En el procedimiento llamado OnRead, se procede a la lectura del buffer de entrada y los dos bytes obtenidos (que provienen del PIC) se muestran en las etiquetas de mayor tamaño, en las que se muestra la lectura en tiempo real. En el listado podrás encontrar, además, el sencillo pero eficaz arreglo para visualizar en forma constante dos dígitos a la derecha del punto decimal.

Mientras el programa se desarrolla, el Timer2 se encarga de actualizar de manera constante los valores en las variables que corresponderán a los registros mínimos y máximos que visualizaremos en tamaño más pequeño arriba de los dos únicos botones de comandos que tiene la interfaz. Cuando el botón “Captura” (Command1) es pulsado, los valores comienzan a compararse de manera muy sencilla. Tomemos como ejemplo el valor máximo: si la tensión medida (en tiempo real) es mayor al valor almacenado en la variable que contenía el valor máximo (hasta ese momento), la variable adoptará ese nuevo valor mayor. Si en cambio el valor en tiempo real (que mide el hardware e ingresa por el buffer) es menor, lo ignora y continúa la secuencia del programa. Por supuesto que la rutina para el valor mínimo es la misma pero atenderá sólo los valores menores a la medición en tiempo real. Por último, el botón “Limpiar” se encarga de ocultar (cambiando el color) los dígitos y retorna a la situación de constante igualación de las variables con la medición en tiempo real.

El cuadro gráfico (Picture Box) está resuelto en muy pocas líneas, todas comentadas, en las que podrás encontrar la forma de alterar los valores de velocidad de barrido de la línea que indica el nivel de tensión medido. También podrás modificar la amplitud que tomará la mencionada línea dentro del gráfico. Esto será de suma utilidad cuando decidas avanzar hacia un siguiente paso de reforma y modificación de la escala del voltímetro para poder utilizarlo en otras aplicaciones con posibilidad de medir tensiones mayores.

Reformas y ampliaciones
Para aumentar la escala de medición de cualquier voltímetro, hacen falta tan sólo dos resistencias para lograr un funcionamiento eficiente y, por sobre todo, lineal del voltímetro, esto es, sin verse afectado por desviaciones o errores introducidos por circuitos electrónicos reales y no ideales, como puede ser un amplificador operacional en configuración de seguidor de tensión. Por lo tanto, tienes dos posibilidades efectivas y concretas, de acuerdo al circuito en el que quieras aplicar el trabajo de este voltímetro: una de las posibilidades es una aplicación dedicada donde sólo lo utilizarás para monitorear una tensión de salida de una fuente de 12Volts, 5Volts o 9 Volts, donde las variaciones sean de algunos pocos Volts hacia arriba o hacia abajo. En este caso, bastará con la utilización de un circuito divisor resistivo ajustable para resolver la situación.

Observa que la resistencia total equivale a un 100%, mientras que la que queda aplicada a la entrada del microcontrolador será del 10% del valor total. De este modo sencillo, pasas a tener un voltímetro de 50Volts de fondo de escala. También se puede aplicar con otras combinaciones de valores para obtener otros valores de fondo de escala; esto se realiza “jugando” con los ajustes en el divisor resistivo ubicado a la entrada del PIC. Si en cambio deseas una cobertura amplia con un mínimo de error en las mediciones, podrías utilizar un amplificador operacional con muy bajo valor de offset, alimentado por una tensión mayor a los 5Volts que entrega el puerto USB. Esta es la segunda opción que tienes de uso del voltímetro y, para lograrla, deberás realizar un circuito que posea resistores (en el divisor resistivo) al 1% de tolerancia y componentes de elevada performance, como el amplificador operacional OP07. Antes de pensar en esta segunda opción, observa la exactitud lograda con sólo dos resistencias y luego resuelve si la complejidad de la segunda opción valdrá la pena.

Es decir, si deseas transformar este versátil instrumento en un voltímetro de alta gama, con una precisión comparable a los más caros del mercado, debes ajustar muchas variables que se encuentran en la vida real que no sólo desembocarán en una construcción compleja y costosa sino que necesitarás componentes muy específicos, como amplificadores de instrumentación de alta impedancia de entrada y un muy bajo nivel de offset (desviación o deriva). Nosotros te dejamos los programas para las dos versiones, de 0 a 5Volts y de 0 a 50Volts, con la recomendación de tener el máximo cuidado en la alimentación al PIC y al puerto USB del ordenador. Si esos son “detalles” que tienes bajo buen resguardo, te invitamos a experimentar este instrumento que estamos seguros que no te defraudará. Este voltímetro no llega para derrocar al noble y versátil multímetro, sino que te lo presentamos para que puedas desarrollar tus propios sistemas de medición con visualización gráfica. Disfrútalo y crea a partir de él. Las herramientas están servidas.

Escrito por Mario

Leave a Reply