Añadir una batería LiPo en proyectos con Arduino

En la próxima versión de Bike Pixels quiero integrar una batería recargable para que no haya que depender de una batería externa. En principio esto, que podría parecer algo trivial no lo es tanto. Las baterías de polímero de litio (o LiPo) son peligrosas si se cargan incorrectamente, se sobrecargan, se calientan en exceso o se almacenan incorrectamente pueden llegar a explotar. Por suerte para facilitarnos las cosas y permitirnos añadir una batería LiPo en proyectos con Arduino contamos con varios módulos que pueden hacer parte del trabajo por nosotros. Uno de estos módulos es el TP4056.

Carácteristicas del módulo TP4056

El elemento principal del módulo es el propio chip TP4056. Se trata de un cargador programable lineal de corriente y tensión constante para baterías LiPo de célula única. El módulo además integra dos indicadores LED del estado de carga y dos chips adicionales encargados de la protección de la batería. Aunque existen versiones que no cuentan con estos chips, en este caso vamos a utilizar una versión que sí incluye estos elementos igual que la descrita en la imagen.

Componentes del módulo TP4056
Componentes del módulo TP4056

El módulo facilita la realización del proceso de carga. Primero asegura una corriente constante hasta que la batería LiPo llega a los 4.2V. Después va reduciendo la intensidad de carga paulatinamente hasta completar la carga de la batería y finaliza el ciclo de carga cuando la corriente de carga desciende a una décima parte del valor programado. Soporta tensiones de entrada de hasta 8V por lo que puede utilizarse conectado directamente a un puerto USB o un cargador móvil de hasta 1.2A.

R3
[kΩ]
Intensidad
carga [mA]
10130
5250
4300
3400
2580
1.66690
1.5780
1.33900
1.21000

Por defecto está programado para cargar baterías con una intensidad de hasta 1Ah aunque es posible reducir este valor sustituyendo la resistencia R3 por una de un valor superior. Si usáis baterías de una capacidad próxima a los 2000 mAh o mayor podéis dejar la resistencia por defecto, de lo contrario es necesario modificarla.

Normalmente las baterías LiPo tienen un valor de intensidad máxima de carga y descarga de 0.5C, es decir, podemos aplicar una corriente de carga menor que la mitad de su capacidad. Usar intensidades superiores puede reducir la vida útil de la batería o incluso destruirlas. Por tanto, dependiendo de la máxima intensidad de carga que podamos utilizar en nuestra batería será necesario modificar la resistencia R3 por una con el valor que se ajuste a la intensidad dada en la tabla adyacente.

Además el módulo también garantiza la seguridad de la batería. El chip DW01A está diseñado para proteger de daños y de la degradación de baterías LiPo debido a sobrecargas, sobredescargas o picos de corriente. Por otro lado el FS8205A es un chip con un MOSFET doble. Se encarga de cortar el suministro de corriente a la batería cuando se completa la carga y de evitar su descarga si su tensión baja por debajo de los 2.7V. Un valor inferior puede reducir su vida útil e incluso dejarla inservible.

Piezas necesarias

A parte del módulo TP4056, necesitamos obviamente una batería LiPo y una placa Arduino o un clon. Además como normalmente las placas Arduino trabajan con un voltaje de 5V es necesario añadir un módulo regulador de voltaje que aumente el voltaje de la batería LiPo. Para el ejemplo he usado un Pololu U3V12F5 que es bastante caro aunque es muy pequeño y además muy eficiente ofreciendo hasta 1A de salida. De todas formas cualquier módulo step-up que convierta el voltaje de la batería LiPo a 5V y nos proporcione una intensidad alrededor de los 500mA servirá. Además, a menos que queremos que nuestro Arduino este encendido hasta que se descargue por completo la batería tendremos que añadir un interruptor para poder apagarlo y encenderlo cuando lo necesitemos. A continuación os dejo una lista con diferentes enlaces a tiendas donde podéis comprar todos estos elementos:

ComponenteAmazon.esAliExpress
Módulo TP4056(10 uds) 8,95 €0,31 €
Módulo step-up 5V7,29€ (5 uds.)0,38 €
Batería LiPo ~2000 mAh14,29 €6,98€
Arduino Nano(original) 14.40 €(clone) 2,93€
Interruptor(50 uds.) 7.99 €0.07 €
Cable AWG 26 (~0.4 mm)(6x10m) 17.89 €(6x10m) 10.60 €

Como veis por algo más de cinco euros podemos tener Arduino funcionando con una batería. Y de todo ello lo más caro es la batería. Eso sí, vuelvo a repetir, hay que tener un mucho cuidado con ella cuando realicemos la conexión de todos los elementos.


The best 3D printer of 2021
Publicidad

Esquema de conexión

Por suerte la conexión es bastante sencilla. Tan solo debemos conectar la batería y el módulo step-up junto con el interruptor al módulo TP4056. Después solo quedará conectar la salida del módulo step-up a la placa Arduino. Para ello es necesario conectar con al módulo step-up a los pins de tierra y 5V. Tened en cuenta que normalmente no se recomienda utilizar este puerto pero como en este caso tenemos regulado el voltaje podemos utilizar este puerto sin peligro. Todas las conexiones se ven mucho mejor en el siguiente esquema:

Esquema hecho en Fritzing con las conexiones de los diferentes componentes necesarios para usar una batería LiPo en nuestros proyectos con Arduino.
Esquema de conexión entre la batería LiPo, el módulo TP4056 junto con el módulo step-up de 5V a una placa Arduino Nano.

Además, si subimos a la placa el código que hace parpadear el LED integrado, tras conectar todos los elementos podemos probar direcatemente si todo está en orden. En mi caso, después de soldar todos los elementos me ha quedado algo así:

Arduino Nano funcionando con una batería LiPo y lista para cargar con un módulo TP4056.

Como veis añadir una batería LiPo en vuestros proyectos con Arduino es bastante sencillo y barato. La única limitación está en la intensidad máxima que suministra el módulo step-up. En proyectos que requieran de mayores intensidades esta solución puede no resultar adecuada.

Para más información

Si queréis saber más sobre cada uno de los chips que componen el módulo TP4056 a continuación os dejo una serie de enlaces con las fichas de cada uno de ellos:

Si queréis continuar con un proyecto algo más avanzado recientemente he publicado un nuevo post con un circuito que añade un panel solar para realizar la carga de la batería con energía solar.

Por supuesto si tenéis cualquier duda o encontráis algún fallo o posible mejora no dudéis en dejar vuestro comentario al pie de este post. Además si queréis que os avise sobre las novedades o nuevos tutoriales podéis suscribiros al Newsletter.


Cuando digo explotan, es que explotan y pueden causar incendios. Hay que evitar cualquier cortocircuito, sobrecalentamiento, aplicación incorrecta de voltajes e intensidades durante su recarga y guardarlas en un lugar seco y templado.
Son enlaces de afiliado por lo que cada vez que compres a través de ellos estarás ayudando un poquito a financiar el proyecto. Además no te costará nada de nada, ya que el precio de cada componente no cambiará para ti y nosotros nos llevamos una pequeña comisión por cada venta. ¡Gracias de antemano! (El precio de cada producto es orientativo y corresponde al precio dado en noviembre de 2019.)


3 comments

  • Buenas, gracias por el aporte

    Tengo diversas dudas
    1° ¿Porque alimentar el arduino por 5v en lugar de por Vin?
    2° ¿Existe algun problema en tener el cargador siempre enchufado a la red electrica y que solo utilice la bateria cuando la alimentación del cargador cae? Es para que me mande un aviso por sms si se va la luz
    3° ¿el cargador detecta la carga de la bateria y esta siempre cargando o tiene que caer por debajo de un umbral para que entre a cargar?

    Muchas gracias


    • Hola,

      Contesto por puntos (más vale tarde que nunca):

      1. Al tener el módulo step-up que realiza ya la regulación de la corriente a 5V no hace falta utilizar la entrada Vin que también cuenta con regulación y admite voltajes de entre 7 a 12V. Por tanto utilizar la entrada de 5V es mucho más eficiente.
      2. En principio no a menos que los cortes de suministro sean muy frecuentes ya que la batería se descargara parcialmente y se cargara de nuevo muy a menudo.
      3. El módulo realiza la carga en cuanto el voltaje de la batería cae por debajo de los 4.2V.


  • habra un diagrama para alimentar un arduino por pin de 5v pero que se corte la alimentacion por ese pin cuando lo conecte por el usb de manera automatica para poder programarlo con la bateria conectada? Segun tengo entendido, se puede hacer con un transistor


Leave a Reply

Your email address will not be published.