Capacidad real de una batería con ARDUINO

Medir la capacidad real de una batería con ARDUINO. Para que este sistema pueda funcionar de forma autónoma (sin PC), se utiliza el módulo ‘LCD Keypad Shield’ para mostrar la información en su display. Midiendo la capacidad real de una batería nueva, podremos saber la fiabilidad del fabricante y además calcular el tiempo de funcionamiento que tendrá cualquier dispositivo que utilicemos con dicha batería.

LCD Keypad Shield - Esquema
LCD Keypad Shield – Esquema

El módulo ‘LCD Keypad Shield’ está diseñado para poder insertarlo encima del módulo ARDUINO, sin la necesidad de realizar ninguna conexión adicional. Como podemos ver en el esquema anterior, este módulo LCD  transfiere las entradas/salidas de ARDUINO que no utiliza (incluso el conector ICSP y el pulsador RESET) hacia su circuito impreso, permitiendo la inserción de conectores para poder utilizar estas conexiones sin tener que soldar cables en el módulo ARDUINO. LCD Keypad Shield dispone de 6 pulsadores, el pulsador Reset y 5 más para realizar maniobras, así como un diodo Led para indicar cuando está alimentada la placa. Los 5 pulsadores de maniobras están conectados a una red de resistencias alimentadas con 5V, y la salida va conectada a la entrada analógica ‘0’ de ARDUINO. Dependiendo del pulsador que se accione, aparecerá una tensión diferente en esta entrada analógica. Si leemos el valor desde ARDUINO utilizando la sentencia: analogRead(0), obtendremos un valor diferente con cada pulsación. Añadiendo una simple rutina en el código, podremos detectar la posición de cualquier botón. En la imagen anterior se muestran los valores que he medido en mi ARDUINO -tus medidas pueden variar ligeramente-, así como la rutina que podrías utilizar para detectar la pulsación de los botones.

LCD Keypad Shield & ARDUINO
LCD Keypad Shield & ARDUINO

El módulo LCD utiliza su propia tabla de caracteres (ROM), pero también dispone de 8 caracteres programables (RAM). Los caracteres programables los podemos utilizar para generar cualquier carácter o símbolo que necesitemos mostrar en la pantalla y no se encuentre en la tabla de caracteres (ROM) del display. En la imagen anterior se muestran los detalles para programar estos caracteres, así como las sentencias que se deben utilizar con la librería: LiquidCrystal.h en ARDUINO.

Sistema de medida: Capacidad real de una batería
Sistema de medida: Capacidad real de una batería

Para medir la autonomía de la batería, vamos a utilizar ARDUINO como cronómetro de precisión. La conexión/desconexión del cronómetro se realiza de forma automática, utilizando una entrada digital como control. El sistema de detección del estado de la batería será el incluido dentro del módulo TP4056 (módulo de carga para 3,7V con protección). El módulo TP4056  además controlar la carga de la batería, mostrando su estado mediante dos indicadores LED, desconecta la batería de cualquier dispositivo que conectemos a su salida cuando la batería llega a umbral mínimo de tensión (<2,5V).  Entre la salida de tensión del módulo TP4056 y ARDUINO conectaremos un pequeño interface, consistente en un transistor NPN, 2 resistencias y un condensador (ver esquema). Para facilitar el cálculo y obtener precisión en la medida, utilizaremos una carga electrónica para conseguir que la corriente permanezca constante, independientemente de la tensión que tenga la batería.

El cronómetro incrementará el contador de tiempo, siempre que tengamos tensión a la salida del módulo TP5056. Cuando el cronómetro se detenga podremos calcular la capacidad real de la batería, convirtiendo el valor de tiempo medido en horas y multiplicándolo por la corriente que hayamos seleccionado en la carga (la corriente en amperios para Ah). Es importante destacar que al final del ciclo de descarga, cuando el cronómetro se detenga, la carga se desconectará de la batería… y esta empezará a recuperarse más rápido o despacio dependiendo de la carga que le hayamos desconectado. Al subir de nuevo la tensión de la batería, llegará un momento en el que se supere el umbral de reposición del módulo TP4056, se conectará de nuevo y el cronómetro seguirá incrementando el tiempo. Cuando esto suceda, se producirán ciclos intermitentes de cadencia cada vez más larga, y al final se detendrá por completo. Si queremos conocer la capacidad de la batería con bajo consumo, podemos esperar hasta el final. Pero si necesitamos comprobar la autonomía con el consumo que hemos seleccionado en la carga (porque es el consumo de nuestro dispositivo), tendremos que hacer el cálculo cuando se desconecte el cronómetro por primera vez.

En la siguiente imagen se muestran las medidas comparativas que he realizado con dos baterías de origen chino, rotuladas con una capacidad de 9800 mAh. Las dos baterías son nuevas y pertenecen al mismo lote. Las medidas las he realizado con una corriente constante de 500 mA, y el tiempo que se muestra es el de la primera desconexión. Al medir la capacidad de dos baterías iguales, nos aseguramos que la batería que hemos utilizado no está defectuosa (ambas medidas son parecidas). Al realizar dos medidas utilizando la misma batería, comprobamos la precisión del sistema de medida que estamos utilizando (valores casi idénticos).

Resumen de las medidas
Resumen de las medidas

En la última línea se muestra la capacidad que he medido en otra batería de tipo TR 14500, de una ‘supuesta’ capacidad de 1200 mAh.

Medidas con umbral de tensión ajustable

Si queremos medir la capacidad de otros tipos de batería, con tensiones diferentes, o simplemente necesitamos comprobar el tiempo de funcionamiento de cualquier batería hasta llegar a una tensión umbral determinada, podríamos montar el circuito que se muestra a continuación.

Sistema de medida opcional, con umbral de tensión ajustable
Sistema de medida opcional, con umbral de tensión ajustable

Como podemos ver, sólo tendremos que sustituir el módulo de carga TP4056 por el circuito de control que se muestra en la imagen. Mediante el potenciómetro de ajuste (22K), fijaremos el umbral mínimo de tensión a la que se debe desconectar de la carga electrónica,  y detener la cuenta del tiempo (cronómetro).

Descargar el código de ARDUINO : Crono_Battery