Comprobador de Pilas de 1,5V con Arduino

16 Julio, 2015

“Estas pilas ya no duran como antes…” ¿Cómo podemos cuantificarlo con precisión? ¿Cómo comparar unas pilas con otras?

“No utilizar pilas de distintos tipos” ¿Por qué?

Para dar respuesta a estas preguntas diseñamos un Comprobador de Pilas de 1,5V con Arduino al que someteremos pilas de distintas marcas y con distintos grados de envejecimiento. La pila, recién cargada, se descargará completamente a través de una resistencia de 6 Ω. Registraremos la tensión cada minuto y así tendremos la Curva de Descarga de esa pila.

Circuito de Descarga

Circuito de Descarga

Medida de la Tensión con Arduino

Los Arduino son placas electrónicas que contienen una microcontroladora, un interface serie-USB y conectores para los pines de entrada – salida. (Ya los conoces ¿no es cierto?)

Conectaremos la tensión de la pila a una de sus entradas analógicas: la A0.

 

Registro con Arduino

Registro con Arduino

Software del Arduino

[Para lo que sigue se requieren conocimientos de programación de los Arduino. Ese conocimiento lo puedes adquirir aquí.]

Cuando aplicamos 5V a la Entrada Análogica A0 tenemos un valor con el comando analogRead(0) de 1023 ADCs (Analog-Digital Count / Cuentas Analógico-Digitales).

El programa que medirá las tensiones es el utilizado por LadyAda en el proyecto de un Logger de Luz y Temperatura con unas pequeñas modificaciones. Está a tu disposición aquí: _40_LoggerPila_Refresh.

Solo un par de notas:

  • La lectura de la entrada analógica se realiza con las líneas 135-ss:
analogRead(voltPin);
delay(10);
int adc = analogRead(voltPin);

en lugar de con un simple:

int adc = analogRead(voltPin);

para ganar precisión. El módulo Analógico-Digital de la microcontroladora ATMEL ATmega328P contiene un circuito Sample-and-Hold.

  • Con la línea 124:
analogReference(EXTERNAL);

y conectando la entrada AREF del Arduino a su propia salida de 3,3V conseguimos que el valor de 1023ADC corresponda a 3,3V en lugar de a 5V. De esta forma tenemos una resolución de 3,3V/1024 = 3mV/ADC  en lugar de 5V/1024= 5mV/ADC.

Conexión de la Referencia Analógica a la salida de 3,3V

Conexión de la Referencia Analógica a la salida de 3,3V

Grabación de las tensiones medidas en una tarjeta SD

Podemos conectar el Arduino al ordenador y recoger los datos que se están midiendo cada minuto pero preferimos grabarlos en una tarjeta SD para que sea un sistema autónomo.

SD shield

SD shield

Utilizaremos el Shield SD logger (placa auxiliar que se conecta pin a pin a los Arduino) de Adafruit. Tiene un interface para tarjeta SD, un Real Time Clock DS1307 con su batería y un par de leds.

El RTC nos permite registrar datos con fecha y hora. El Arduino por sí sólo ¡no sabe el día en el que vive! Requiere una librería propia. La tarjeta SD también. Puedes encontrar ambas aquí.

Conectamos la tarjeta SD formateada en FAT16 o FAT32, encendemos el Arduino y ¡Ya está! Se genera un archivo de nombre: LOGGER00.CSV, cabecera: datetime%Volt y cada minuto se añade una línea del tipo:

"2015/6/8 23:51:58"%1.06

Usaremos el caracter % para separar campos.

– Y… ¿Cuánto tiempo debemos esperar?
– Mmm… Necesitamos un LCD.

Visualización de datos en tiempo real en pantalla LCD

Hay librerías para conectar a Arduino a una miriada de LCDs. Aquí las tienes.

Utilicemos el Serial LCD de Sparkfun. Y así solo necesitamos un cable para controlarlo (Más los 5V y la GND). Estos sLCD incorporan una microcontroladora (en este en concreto una PIC) que, recibiendo las ordenes mediante comunicación serie desde el Arduino, se ocupa de que nos aparezca el texto que queramos con solo escribir:

 lcd.clear();
 lcd.print(filename);

LCD filename

Sólo tenemos que enseñarle a Arduino a hablar con el sLCD con la librería serLCD.

En nuestro programa:

Al arrancar el Arduino, se muestra durante 2 segundos el nombre del archivo donde se guardarán los datos. Luego se mantiene una pantalla con:

Pantalla Principal

Pantalla Principal

Cuando la tensión de la batería baja a 0,8V la caída es ya en picado, pero podemos dejarlo más tiempo si queremos ver absolutamente toda la curva.

Dejar largo tiempo una batería absolutamente descargada acorta su vida útil. Mejor recargarla poco después de someterla a este test.

Cuando queremos terminar el test: apagamos el Arduino y retiramos la pila de su soporte. En este orden para que no aparezcan datos 0V al final. Podemos probar otra batería a continuación. Colocamos la batería, encendemos el Arduino y se empieza a grabar en un archivo nuevo con numeración correlativa: LOGGER01.CSV, LOGGER02.CSV… Un registro de 12 horas genera un archivo de 20kB. Con una tarjeta SD de 256MB tenemos… hasta que nos cansemos.

El montaje esta terminado:

Montaje Completo 2

Montaje Completo

Llegado este punto, con los datos capturados en la tarjeta pasamos a la siguiente fase:

Tratamiento de los datos

Abrimos el archivo con una Hoja de Cálculo. Yo utilizo LibreOffice Calc. Marcamos como separador el carácter %

Screenshot Importación a LibreOfficeCalc

Screenshot Importación a LibreOfficeCalc

y tenemos dos columnas:

Screenshot Columnas LibreOfficeCalc

Screenshot Columnas LibreOfficeCalc

Lo interesante es representar esos datos gráficamente.

Dos detalles prácticos:

  • Hay que sustituir los . por , Si no el LibreOffice Calc no los considera números.
  • Después de lo anterior, yo recomiendo copiar los datos y pegarlos en otra columna como texto sin formato. Si no el LibreOffice Calc no termina de considerarlos números.

Resultados obtenidos

Se sometieron a test:

  • 4 pilas ENERGIZER Ni-MH de 2000 mAh
Energizer NI-MH 2000mAh

Energizer NI-MH 2000mAh

Curva de Descarga Energizer

Curva de Descarga Energizer

Se descargaron en 6 horas cediendo 1200 mAh. Se observa que la Número 28 está degradada y se descarga en menos de 1 hora.

  • 4 pilas HÄNEL Ni-MH de 2350 mAh
HÄNEL Ni-MH de 2350 mAh

HÄNEL Ni-MH de 2350 mAh

HÄNEL Ni-MH de 2350 mAh

HÄNEL Ni-MH de 2350 mAh

Se descargaron en 9 horas cediendo 1900 mAh.

BTY AA3000 Ni-MH

BTY AA3000 Ni-MH

BTY AA3000 Ni-MH

BTY AA3000 Ni-MH

Se descargaron en 2 horas cediendo 500 mAh. Muy lejos de los 3000 mAh. En ninguna inscripción en la batería se indica su capacidad en mAh. AA3000 induce a pensar que es una batería tamaño AA con una capacidad de 3000 mAh pero su capacidad real es de unos 500 mAh.

Si quieres ver la hoja de cálculo utilizada, la tienes aquí.

“No utilizar pilas de distintos tipos” ¿Por qué?

Si montamos en serie 4 pilas, todas ellas en buen estado y de las mismas características, tendremos el máximo de autonomía. Pero la cadena se rompe por el eslabón más débil. Si una de las pilas tiene menor duración porque es de un tipo distinto e inferior, cuando llegue al final de su capacidad la tensión del conjunto caerá en ese momento aunque las otras 3 pilas estuvieran dispuestas a aguantar más horas.

Yo creo que por eso se recomienda: “No utilizar pilas de distintos tipos”. Es mi opinión. ¿Tú que opinas?

2 thoughts on “Comprobador de Pilas de 1,5V con Arduino

  1. edu

    Hola,

    Me gusta esto y quiero montarlo. Esa resistencia de potencia de 6 ohms no se puede cambiar? quiero decir tiener que se de 6 ohms y de ‘las gordas’??

    Muy interesantes los articulos del blog. Estaré atento a las próximas.

    Saludos

    Responder
    1. Angel Espeso Autor de la Entrada

      Hola Edu,
      Es de 6 ohms para descargar la pila en unas 10 horas. Puedes utilizar otros valores.
      Las resistencia más comunes (no de las gordas) son de 1/4 W. Para que no se sobrecalienten, utiliza valores de 5 ohm o mayores.
      ¡Experimenta con lo que tengas a tu disposición!

      Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *