bclose

¿Cuánto consume Arduino?

Calculando la duración de las baterías

¿Cuánto consume Arduino?

 

 

    • Queremos saber con exactitud el consumo de energía de nuestros Arduinos.
    • Montar un circuito que nos permita medirlo.
    • Entender las características de las baterías.
    • Aprender a calcular su duración con nuestros circuitos.
    • Algunas técnicas básicas de ahorro de energía con Arduino

 

Material requerido.

Imagen de Arduino UNO Arduino Uno o similar.

 

ProtoboardconexionesUna Protoboard mas  cables.
Multimetro sencilloUn multímetro digital.

 

El consumo real de Arduino

 

Mas pronto que tarde, si estas jugando con los Arduinos un poco mas en serio que la media, te vas a encontrar con que quieres correr un registro de datos, un data logging, en algún punto lejos de un punto de suministro eléctrico.

La solución es fácil, incorporas unas baterías y listo. A funcionar un año a base de baterías. ¿Cuánto has dicho?

El problema es que las baterías tiene la mala costumbre de agotarse antes de tiempo y dejarte tirado. Por eso calcular adecuadamente su capacidad es clave para que este tipo de proyectos sean viables, así que tenemos que empezar dimensionando adecuadamente la batería en función de los consumos.

Vale, ningún problema. Midamos el consumo de nuestro prototipo.

De nuevo tenemos un pequeño problema y es que aun no tenemos prototipo para medir y por tanto vamos a tener que estimar consumos y todo eso. Y necesitamos tener una idea aproximada para estimar si nuestro proyecto es viable.

Podemos empezar midiendo el consumo en vacío de nuestro Arduino UNO, por ejemplo, y así poder hacer algunos cálculos sencillos.

Esta claro que cuanto menos consuma nuestro equipo mas duraran las baterías. Pero …¿Cuánto es la duración real de eso? ¿Una semana? ¿Un mes? ¿Un año quizas?

Queridos amigos, en la vida de todo científico (O técnico) hay un punto en el que hay que mancharse las manos de grasa y bajar al mundo real. ¡Hay que medir!

Y tenemos que empezar midiendo los consumos reales de nuestro Arduino. Y pacientes lectores, este es el primer objetivo de esta humilde sesión que nos ocupa.

 

¿Cuándo consume Arduino?

 

¿No me digáis que nunca os habéis planteado esta pregunta? Si os pasa como a mi, claro que os la habéis hecho, e incluso lo habéis consultado por Internet con mejor o peor fortuna, y habréis encontrado bastantes opiniones y en su mayor parte divergentes.

Así que vamos a hacer nuestras propias medidas para salir de dudas, y para ello vamos a plantear el método que vamos a usar.

En primer lugar vamos a empezar con un venerable Arduino UNO. Podríamos sentir la tentación de usar el conector de barrilete o el USB pero para poder medir el consumo real tendríamos que romper un cable para poner nuestro multímetro en serie con la alimentación, y aquí no rompemos nada si se puede evitar, porque es algo que me repatea el higadillo.

Conector de barrilete

Incluso si rompiéramos el cable de alimentación de barrilete, seria muy mala idea medir el consumo por ahí, porque esa es la entrada al regulador LM7805 que incorporan todos los Arduinos UNO y MEGA, que si bien es barato es un autentico asco en cuanto a eficiencia energética.

Hasta el punto que si usamos un típico alimentador de 9V, el regulador LM7805 básicamente desperdicia la mitad de la energía ( 1 – 5/9  = 45%) en forma de calor.

Estos reguladores son baratos y eficaces pero no se ocurra usarlos en situación de baterías, Con estas hay que buscar otras soluciones, como Buck converters (fuentes power down) o Boosters (fuentes power up) si nuestra batería es de digamos 9V o 12V.

Para nuestra medida vamos a optar por alimentar nuestro Arduino desde los pines de tensión en los laterales, a 5V y GND:

Regleta lateral

Para medir el consumo real de nuestro circuito vamos a usar un multímetro sencillo que aunque no es de precisión nos va a sobrar para medidas a palmos, que es lo que nos interesa en este caso. Podemos montar el circuito asi:

Usando un polimetro

Voy a usar una fuente de protoboard porque de ese modo puedo medir el consumo pinchando el polímetro a través de la protoboard sin necesidad de pelar cables ni romper conectores. Me ha parecido una forma cómoda de hacerlo (Y recordad que soy muy vago)

Un par de consideraciones.

 
  • Por si hasta ahora no habiais medido intensidad con un polímetro, basta con que lo pongáis en serie,De ese modo la corriente que atraviesa el circuito, lo recorre y puede medirla. (En un mundo ideal, un medidor de intensidad optimo debería tener 0Ω de resistencia).
  • Poner una de las puntas de medida en la entrada COM (Común) del polímetro y aseguraros de que la otra va a la entrada que ponga mA, que en mi caso pone VΩmA (Fijaros en la foto)
  • De este modo la intensidad que llega a nuestro Arduino, pasa a través del multímetro y nos dará una medida correcta.
  • Poner el fondo de escala en 200 mA

Llegados a este punto basta ya con encender todo y medir lo que consume nuestro Arduino UNO. Aquí os dejo un mini vídeo con el asunto:

El resumen es que poco mas o menos un Arduino UNO consume unos 46 mA en reposo y por si mismo.

 

Calculando la duracion de la bateria

 

Vale. Ya sabemos cuanto consume un Arduino UNO, como 46 mA el sólito y ahora ¿Como calculo el tiempo de vida de la batería?

Pues fácil, fácil. Vete a Amazon o Ebay o donde prefieras y busca baterías de 5V. Enseguida encontraras una pila de ellas tratando de llamar tu atencion.

Lo importante de una batería son dos cosas principales: La tensión que proporcionan en Voltios y la capacidad que normalmente se mide en mAh (mili amperios hora)

 
  • Si estas montando un Dron o Quadcopter, el peso será también un factor determinante.  

Encontraras baterías de diferentes capacidades y precio pero enseguida las encontraras de 1.000 a 1.200 mAh. Como sabemos que nuestro Arduinillo consume unos 46 mA, la cuenta es así de  fácil:

1200 mAh / 46 mA = 26.08 horas

La razón de que la capacidad de las baterías se mida en mAh es precisamente que para calcular su duración, basta con dividir esa capacidad por la corriente que usa. No hay mas. ¿A que creías que iba a ser mucho mas difícil? Pues ya ves.

Pero aun asi, tenemos un problema serio. Incluso con una batería decente, parece que nuestro limite es poco mas de un día, y eso si no hacemos nada. En cuanto le coloquemos algo a nuestro Arduino la cosa va a empeorar.

¡Pero que desastre! ¡Esto no puede ser! ¿Pero a donde vamos así?

Bueno, cuando se os pase la rabieta, empezaremos a buscar soluciones que para eso estamos los ingenieros, y recordad que según decía un viejo profesor:

Recordad siempre que ingeniero viene de ingenio. Usad el vuestro

¿Por donde podemos empezar? Veamos, una pregunta sensata sería ¿Todos los modelos de Arduino consumen lo mismo? ¿O hay unos que consumen mas que otros?

A medir, pues (Vale el mismo sistema de antes y he probado unos cuantos modelos que tenia rodando por la mesa) y esto es lo que tenemos:

ModeloConsumo en mADuracion de una bateria de 1200 mAh
Arduino UNO4626 horas
Arduino MEGA93Casi 13 horas
Arduino DUE7516 horas
Arduino Nano1580 horas

La primera conclusión si vas a correr un Arduino con baterías es que procures usar un Arduino Nano. Porque parece que bate el record de eficiencia energética de los Arduinos.

El Nano tuvo un re-diseño reciente para esto precisamente y daros cuenta de que no incluye un regulador de tensión, porque solo se puede alimentar por USB a 5V, o alimentándolo directamente con un fuente externa de 5V (Que es lo que yo he hecho con la fuente de protoboard) y quitar ese chip libera ya unos 10 mAh de consumo.

Ya esperábamos que el MEGA consumiese mas dado su mejor chip, pero teníamos alguna esperanza con el DUE, ya que al ir a 3,3V su consumo debería ser menor, pero su mayor velocidad de reloj y potencia de procesador tienen un precio.

 
  • Normalmente, el consumo aumenta a medida que crece la frecuencia del reloj, y peor aun ese consumo se desperdicia en forma de calor, lo que causa problemas a la hora de evacuarlo y es uno de los motivos por los que no se puede aumentar la frecuencia por las buenas para conseguir chips mas rápidos 

Aun con el Nano, la duración de las baterías no llega a 4 días. Podemos comprar mayores baterías, de hasta 5.000 mAh que son 4 veces lo que habíamos hablado, a cambio de empezar a ser un trasto que pesa y ciertamente voluminoso y aun así solo habremos conseguido llegar a 333 horas con un Nano. Poco menos de dos semanas. De un año mejor ni hablamos.

 

Mejorando la duracion de las baterias

 

¿Por qué consume tanto un Arduino UNO?

En primer lugar, porque Arduino esta diseñado para ser fácil de manejar, no para ser eficiente. En la vida hay que elegir y todas las elecciones acarrean inconvenientes y hay que apechugar.

Tu Arduino tiene un consumo relativamente alto porque no solo el chip ATMEGA328 consume, sino que también consumen los chips de control del USB y el regulador de tension (Al menos 10 mA en vacío)

Si no necesitas todo eso, puede ser buena idea diseñar un circuito con solo el procesador de Arduino sin el resto de componentes como veíamos en la sesión Arduino en Protoboard. y eso disminuiría sensiblemente el consumo a unos 20 mA. Pero probablemente esta opción no esta al alcance de nadie que no haya diseñado antes places de circuito impreso PCB propias (Printed Circuit Board).

Otra solución es que el consumo energético del chip central depende de la frecuencia del reloj o cristal de nuestro circuito. Arduino UNO corre normalmente a 16Mhz pero existen modos de bajar esta velocidad a la mitad usando un reloj interno del propio chip y eliminando la necesidad de un cristal externo.

Ciertamente esto supone disminuir a la mitad, la ya de por si escasa capacidad de operación del UNO, pero para leer un sensor o enviar un mensaje puede no necesitarse mas y es una solución a considerar, que por ahora ignoraremos.

 
  • Esto de usar el reloj interno del chip ATMEGA 328 para disminuir la velocidad y consumo, podría ser el motivo de otra futura sesión, pero que desde luego desborda la intención y extensión, del capitulo actual 

Las pilas de 9v que se suelen dibujar en los montajes de Arduino no suelen tener mas allá de unos 300mA, lo que normalmente las hace una muy mala elección para nada que no sea correr algo para enseñar a tu profe o así.

Pila 9V

Las pilas alcalinas del tipo AA disponen de una buena relación de precio duración porque a diferencia de las de 9V suelen ser  de alrededor de 2.800 mAh, pero el inconveniente es que se gastan y hay que reponerlas.

Pila alcalina de 1,5V

En general os recomendaría que cortarais el regulador de tensión de vuestro Arduino si vais a usar un proyecto de larga duración, y le alimentéis directamente con 5V desde los pines de tensión con en el ejemplo de mas arriba.

Podríamos usar un buck boost converter, una fuente de alimentación conmutada, para que usando por ejemplo 10 pilas AA de 1,5V en serie, alimentáramos nuestro Arduino.

 
  • OJO, si metes esos 15 voltios a tu Arduino por el conecto de alimentación lo quemaras casi con seguridad y no quisiera ser el responsable de la muerte prematura de algunos Arduinos honrados 
.

Podemos poner en serie las baterías, con lo que se suman las tensiones de cada una y obtendríamos 15V de diferencia con el que podríamos alimentar el buck boost converter y garantizar una tensión de 5V estable para alimentar nuestro circuito.

Pero incluso una fuente de este tipo tiene una perdida de energía en la conversión ya que su eficiencia no sera mayor de un 85%, aunque podría compensar su uso. Habría que probarlo.

Quizás alguno de los que leéis esto tengáis mas experiencia que yo con las baterías y seria interesante oír vuestros comentarios.

Esta no pretende ser una disquisicion sobre baterias, pero si el tamaño y peso no son importantes en nuestro proyecto, una vieja bateria de coche, de plomo y acidos malisismos para el medio ambiente, son la solucion ideal ya que no es dificil encontrarlas  de uno 80 Ah por 60 – 70€.

MAxima capacidad

Si esto es excesivo tambien las hay mas pequeñas, pero las ventajes de las baterias de plomo es que estan super probadas y hay oferta abundante a bajo precio (relativamente). Son las campeonas de capacidad.

Y por ultimo, la solución de verdad que es la que hay que emplear (Además de todas las anteriores): Hacer entrar a vuestro Arduino en modo Sleep, es decir ponerlo en situación de letargo para que reduzca al mínimo su consumo, especialmente si como es habitual solo tiene que tomar unas medidas cada… ¿Media hora?

El resto del tiempo que no ha saltado el ciclo de lectura, hay que apagarlo e hibernar hasta que llegue la primavera, y con las luces apagadas.

La solución es por supuesto una combinación de todo estas cosas y el modo Sleep, pero esto es ya el tema de la próxima sesión.

 

Resumen de la sesión

 

 

    • Medimos en real el consumo sin carga de varios modelos de Arduino.
    • Vimos como calcular la duración teórica de una batería conociendo el consumo de nuestro circuito.
    • Presentamos las primeras técnicas básicas para alargar la vida de las baterías.