Si estabas buscando la manera de construir un amperímetro en la menor cantidad de pasos posibles y con la menor cantidad de componentes críticos, el LMP8601 y un microcontrolador son un buen punto de partida para comenzar a experimentar con instrumentos de medición. Gracias a este amplificador de precisión de National Semiconductor puedes construir en una tarde este instrumento que será muy útil para tu taller y que está orientado para incorporarlo a fuentes variables de alimentación. La adopción de este sencillo circuito nos servirá para controlar que el consumo de nuestros experimentos sea el adecuado y correcto.
Cuando comenzamos a entusiasmarnos con las construcciones de pequeños gadget electrónicos basados en circuitos con transistores, circuitos integrados, motores, luces y demás elementos afines, nos damos cuenta que necesitamos una fuente de alimentación. Al observar además que van a pasar por nuestra mesa de trabajo muchas construcciones hechas por nosotros mismos, asociamos este hecho a que la fuente deberá poseer una tensión de salida variable, regulada y controlada. Para controlar la tensión de salida, bastará con un voltímetro como el que nos había enseñado a construir Ariel o si nos parece mejor, podemos prefijar en el control de tensión algunas marcaciones gráficas que nos indiquen los valores que la fuente nos entrega a su salida cuando ajustamos el potenciómetro de control.
Una fuente de alimentación sin indicaciones de tensión y corriente suministradas al circuito bajo prueba, no siempre es una buena elección. Por ejemplo, lo que se acostumbra a hacer es utilizar una fuente de ordenador y se aprovecha de ella las salidas de +/- 12 Volts y +/- 5 Volts. Pero la exactitud de los valores que puede entregarnos este tipo de fuentes de alimentación es una incógnita que puede provocar escozor al saber que nuestros circuitos pueden transformarse en una fiesta de fuegos artificiales ante un mal funcionamiento de las etapas de control de la tensión de salida. Si no tenemos un conocimiento veraz de la calidad operativa de nuestra fuente, el riesgo es grande. Además, cuando trabajamos con circuitos que serán alimentados a baterías en su aplicación final, necesitamos no sólo de otros valores de tensión de salida, sino que también es fundamental contar con un medidor de corriente entregada. Es decir, un amperímetro.
La necesidad de optimizar los consumos a la menor corriente posible, se transforma en una necesidad cuando utilizamos baterías. La autonomía de éstas debe ser la mayor posible, por citar un ejemplo, en un robot de competición donde no se permita el cambio de baterías en toda la competencia. Otro ejemplo sería un equipo de radio móvil o una baliza con baterías recargables para llevar siempre en el automóvil. De esta forma los ejemplos se multiplican por miles y la implementación de un amperímetro en nuestra fuente “de laboratorio” será la finalidad de nuestro artículo.
LMP8601
Este circuito integrado de National Semiconductor puede ser solicitado como “sample” o muestra gratis a la compañía y con él armaremos un amperímetro muy simple pero muy preciso a la vez. Observarás en los videos que componen este artículo que las pruebas realizadas y los resultados obtenidos con cargas resistivas, tienen una exactitud de 2 milésimas de Amper (0,2 %) en los consumos que rondan los 500 miliamperes y de hasta un 2% en corrientes que superan los 2 Amperes. Otra de las cosas a destacar inicialmente, es que el sistema se basa en la utilización de una resistencia SHUNT colocada entre sus terminales de entrada para medir la diferencia de potencial inducida en ella por la circulación de corriente a través de la misma.
En el diagrama en bloques podemos ver la disposición interna de las secciones que constituyen al LMP8601 entre las que se destacan las entradas y los módulos preamplificadores de precisión. Éstos poseen una ganancia de 10 el primero y de 2 el segundo. Esta división interna nos permite trabajar con un solo preamplificador según las necesidades de diseño, pero en nuestro caso hemos utilizado ambos uniendo los pines 3 y 4. Además, vemos en la parte superior del esquema extraído de la hoja de datos del dispositivo un terminal llamado Offset, que se utiliza para medir corrientes en ambos sentidos a través del shunt cuando el pin es colocado a la tensión de alimentación o en un solo sentido cuando es colocado a GND.
Cuando el pin Offset se coloca a la tensión de alimentación, en la salida del LMP8601 se obtiene una señal equivalente a la mitad de la alimentación (midrail) en una situación de circulación de corriente igual a cero. Si la corriente circula en un sentido, la tensión subirá hasta la tensión de alimentación y si se produce una inversión en la circulación de corriente, la tensión de salida tenderá a bajar hasta casi cero volts. En cambio, cuando el pin Offset se conecta a GND (ground – referenced) la salida de tensión obedecerá a la circulación de corriente en un solo sentido a través del shunt y variará entre 0 y la tensión de alimentación, de acuerdo al valor adoptado en el shunt.
En la imagen superior vemos claramente una aplicación de circulación de corriente en ambos sentidos a través del shunt (Rsense). El circuito de medición de corriente está implementado para un cargador elemental de baterías. Mientras la batería esté en proceso de carga, la corriente circulará en un sentido y cuando el cargador deje de alimentar a la carga y a la batería, será ésta la que suministre la corriente de funcionamiento a la carga. De este modo, se invierte el sentido de circulación de corriente dentro del shunt. El resultado será una medición de 0 a ½ VCC para un sentido de circulación y de ½ VCC a VCC en el otro sentido.
Otra de las características importantes del LMP8601 es que nos permite trabajar con alimentaciones de 3,3 Volts o 5 Volts. Este beneficio nos abre la posibilidad de utilización del dispositivo en cualquier desarrollo, pudiendo introducir un amperímetro como un adicional muy útil para monitorear de forma continua y precisa la corriente consumida por cualquier etapa de nuestro proyecto. Además si sumamos este beneficio de alimentaciones amplias (3,3V y 5V) a la posibilidad de trabajar con diferencias de potencial de hasta 60 Volts entre las entradas, podemos darnos cuenta que estamos ante un circuito que puede implementarse como “nativo” en muchos diseños. Podemos agregar a todo lo dicho que el consumo propio del circuito en operación es de apenas 1 miliamper, y agregando la característica de su encapsulado 8pinSOIC, vemos en este circuito integrado un instrumento extraordinariamente útil, pequeño, versátil y preciso como para ser incorporado en cualquier trabajo donde se requiera un monitoreo constante de la corriente de trabajo.
Llegando al final de las características destacables, podemos ver en la hoja de datos del LMP8601 la variedad de posibilidades de conexión que este circuito integrado nos brinda. Como vemos en la imagen y en la hoja de datos, la implementación puede efectuarse en diversas partes del circuito de carga adoptando así diferentes nombres las configuraciones empleadas (Low Side Current Sensing o High Side Current Sensing). Por supuesto que, como todo dispositivo que tiene la posibilidad de ser utilizado en ámbitos industriales, no debe ser menor la atención que se ponga al alimentar con tensión al mismo y colocarle un buen capacitor de 100nF de desacoplo. Esto es fundamental cuando se trabaja en ambientes eléctricamente ruidosos y también sería oportuno sumar un capacitor electrolítico de baja ESR (Resistencia Serie Equivalente) para minimizar los disturbios provocados por la EMI (Interferencias Electromagnéticas) y el ruido industrial.
En la imagen siguiente podemos ver un módulo fabricado para lograr un manejo cómodo del IC en un protoboard tal como se aprecia en los videos, con una terminación equivalente a un encapsulado DIL. En la parte superior puede notarse el capacitor de 100nF de desacoplo que mencionábamos anteriormente (color marrón), mientras que en la parte inferior se aprecia un puente (color verde) que conecta el pin 2 del IC a GND.
Llegamos de esta forma a los dos puntos más elementales e importantes del uso e implementación del LMP8601. Por un lado el valor y la precisión del shunt a emplear en la entrada y por el otro lado, la exactitud de la alimentación del IC y del microcontrolador que se utilice para construir los sistemas de sensado de corrientes.
En lo que respecta al valor del shunt empleado vemos en las hojas de datos del IC que el valor adoptado no necesita ser un valor específico y único, sino que comprende una amplia variedad de posibilidades. Vemos ejemplos de aplicación donde se utilizan valores que van desde 0,01 Ohm hasta 10 Ohm. Esto es debido a la posibilidad del ajuste de ganancia que brinda el IC en la sumatoria de sus dos etapas. Nos encontramos entonces con salidas que varían entre 0,2V/Amper hasta valores de 1V/Amper según el valor óhmico del shunt empleado. Cuanto más preciso sea el valor de este resistor, menor será la complejidad del software que utilizaremos en el microcontrolador para obtener una medición tan fiel como sea posible. En nuestro caso no tuvimos la suerte de conseguir un valor exacto y comercial de resistor shunt por lo que debimos conformarnos con 4 resistencias de 0,22 Ohm, las que arrojaron un valor final y aproximado de 0,055 Ohm. Más adelante verás que la diferencia de 10% (0,05 a 0,055) se quita en el listado del programa de microcontrolador.
Por el lado de la exactitud en la alimentación cabe aclarar que el ADC (Convertidor Analógico Digital) de cualquier microcontrolador depende de dos posibles configuraciones. La primera es utilizando una referencia externa y de precisión como es el uso de un LM336 y la segunda es utilizando como referencia de tensión de entrada, la propia alimentación del circuito general. Esto último no es recomendable ya que pueden existir consumos variables dentro del funcionamiento del circuito (leds, backlight de un LCD, activación de drivers para relés, etc.) que hagan variar la tensión general y por consecuencia nuestras mediciones serán muy subjetivas y carentes de exactitud.
A pesar de este consejo, en el ejemplo que mostramos nos hemos tomado la libertad de utilizar la tensión de alimentación como referencia y pensarás entonces que recomendamos una cosa y hacemos otra. Sucede que nosotros estamos haciendo una evaluación para demostrar el funcionamiento del LMP8601 y no un instrumento finalizado de características profesionales. Además, con el circuito no hacemos otra cosa que utilizarlo para medir la intensidad de corriente a través del shunt por lo que las variaciones a lo largo de la experimentación son mínimas y despreciables. Si lo que tú deseas es construir un instrumento de propiedades excelentes, deberás tener en cuenta este detalle y en el caso de utilizar un microcontrolador PIC, deberás utilizar un LM336 a la entrada de AN3 (+Vref) y configurar el registro ADCON1 en función de esta disposición de hardware. Observa en el siguiente video que la precisión obtenida en la porción que comprende 100 mA hasta 1 Amper abarca desde 1mA a 4 mA máximos, es decir, el 0,4% de exactitud comparado con un multímetro de calidad media.
Descripción del código utilizado en el PIC
Según el programa que hemos utilizado en el microcontrolador que es un PIC 16F877A, como siempre y según las plantillas que ya tenemos pre-armadas de programas que utilizamos habitualmente, definimos el dispositivo a utilizar, la frecuencia de reloj y luego las conexiones que requiere el LCD. En este caso, agregamos el ajuste del ADC del PIC y ajustamos (seteamos) los registros ADCON para utilizar AN0 (A ENE CERO) como entrada de tensión desde el LMP8601. En este mismo registro se ajusta la utilización de tensión de referencia a la tensión de alimentación, tal como mencionamos en párrafos anteriores. Toda esta información y como variarla a tu conveniencia y necesidad, la encuentras en las hojas de datos del 16F877A.
El lazo principal del programa se basa en realizar 50 mediciones, o dicho de otro modo, tomar 50 muestras instantáneas del valor de tensión existente en la entrada AN0. Para esto se utiliza una variable del tipo BYTE que llamamos A y que vamos incrementado en una unidad a medida que vamos realizando las tomas de información. Una vez que llegamos a la acumulación de 50 mediciones, la rutina salta a la etiqueta “MIDOI” donde comienza el proceso de adecuación matemática del valor acumulado.
La primera operación es de dividir por 50 el valor obtenido ya que fueron 50 mediciones. Esto nos permite tener un valor promedio y más equilibrado de la medición. Las operaciones matemáticas a las que sometemos el valor leído, se deben al shunt empleado. A su valor y a la exactitud que éste posea. Observen que nosotros hemos tenido que restar hasta un 11,2% al valor final expresado en Amperes por el hecho de no utilizar un shunt de 0,05 Ohm, sino de un valor aproximado. Esa aproximación resultó ser, según las pruebas y las comparaciones con un multímetro de calidad media, del porcentaje ya mencionado.
Los valores de exactitud obtenidos en el rango más usado por circuitos basados en microcontroladores son muy alentadores y nos hacen ver que el LMP8601 puede convertirse en un instrumento candidato a ser nativo en cualquier desarrollo que requiera un control y sensado permanente de dispositivos alimentados a baterías.
Ya cuando nos alejamos de un Amper en el programa se puede ver sobre el final, que se utilizan dos decimales en lugar de tres para una lectura más estable y confiable. Aquí como decíamos antes, las variaciones respecto a un instrumento comercial son de aproximadamente un 2%. A la izquierda de la imagen se puede ver un multímetro que indica la tensión aplicada a la carga (4 resistencias de 20 Ohm 5 Watt en paralelo) y a la derecha, la comparación entre los valores obtenidos.
El circuito
El circuito es muy sencillo y está basado en un PIC 16F877A corriendo a 20Mhz con un LCD alfanumérico conectado al puerto B y con la entrada de tensión de lectura por AN0. La elección del PIC obedece a la posibilidad que nos brinda el programa Proton para poder utilizarlo en su versión Lite. Por otro lado, el shunt se conecta en serie con la carga resistiva ya mencionada y la parte de PIC es alimentada por una fuente fija de ordenador que fue adaptada para los experimentos mientras que la carga, es alimentada por una fuente variable que no aparece en las imágenes por obvios motivos estéticos. En el siguiente video se aprecia la disposición de todos los materiales en el protoboard y las conexiones antes citadas.
Posibles ampliaciones
Las posibilidades de ampliación del proyecto y de anexarle funcionalidades operativas son muy amplias. A partir del desarrollo de este artículo combinado con la utilización de otra de las entradas analógicas del PIC funcionando como voltímetro, nos permitirían obtener en display la potencia consumida en Watts por el circuito, además de conocer la resistencia equivalente que provoca el consumo de corriente mostrado por el circuito que hoy te presentamos.
La implementación del LMP8601 no se limita a aplicaciones en corriente contínua sino que como habíamos visto antes, con el pin Offset podemos sensar corrientes en ambos sentidos a través de una carga. Esto equivale a decir que también podemos aplicar este IC en circuitos de corriente alterna. Pero yendo más allá en la ampliación de la aplicación, se podrían realizar sendos detectores de “cruce por cero” para atacar al PIC con las señales de tensión e intensidad “digitalizadas”, medir su desfasaje en el tiempo, y así conocer el factor de potencia y el coseno fi de una aplicación con cargas en corriente alterna. Lo que comúnmente se conoce como “cofímetro” o “cosímetro”. Un instrumento muy preciado por la ingeniería eléctrica para la optimización de consumos en sistemas industriales.
Más ampliaciones vendrían de la mano del aprovechamiento de los pines Rx y Tx del PIC para conectar un eventual instrumento de esta naturaleza al ordenador vía RS-232. En este caso necesitaríamos construir un programa que registre la evolución de los valores obtenidos en el tiempo cual si fuese un datalogger. Y un pasito más aún en esta misma dirección, sería la posibilidad de usar un PIC de la línea 18F2550 para realizar la conexión a cualquier netbook a través de un puerto USB para aplicaciones móviles o “de campo”. Esto nos permitiría conectarnos a nuestros instrumentos de manera móvil aprovechando las bondades del USB y considerando que los ordenadores portátiles ya no traen puertos RS-232.
Pero claro, para esto hacen falta muchos conocimientos, un buen espacio de tiempo para lograr un desarrollo bien purificado y por supuesto, la versión completa del Proton para poder trabajar con cualquier PIC que soporte USB. Si tú dominas otros lenguajes de programación ya tienes las ideas para comenzar a trabajar y hasta podrías enviarnos tus avances para verlos y aprender de ellos. Nosotros pronto tendremos todo lo necesario y estaremos desarrollando un súper-instrumento con todos y cada uno de los detalles mencionados más los que tú puedas imaginar y proponer en los comentarios de este artículo. Hoy dimos un paso más. Conocimos el LMP8601 y su implementación como amperímetro. Ahora debemos trabajar para conjugar un instrumento más complejo y que combine todas las ideas mencionadas. ¿Te apuntas?