Tutorial MPU6050 ultra bajo consumo (50uA) con Arduino

Esta breve entrada vamos a ver como activar el modo bajo consumo (low power o sleep) del sensor MPU6050 y reducir su consumo hasta 50uA. Este modo de bajo consumo es especialmente útil en mi Proyecto Elcanodonde hago lecturas del sensor MPU6050 solo durante 100ms cada segundo, lo que me permite activar el modo de bajo consumo durante 900ms, es decir, el 90% del tiempo, lo que supone un ahorro energético enorme. 

Placa Arduino NanoComprar en Amazon
Sensor MPU6050Comprar en Amazon

La conexión necesaria es la siguiente:

Sin hacer nada, solo con alimentar el sensor MPU6050 y comenzar a hacer lecturas, el sensor consumo unos 5.8mA, mucha corriente para tenerlo activo de forma continua y tirando de una batería:

Consumo MPU6050 activo, con LED

Para reducir este consumo lo máximo posible, vamos a utilizar dos trucos muy útiles, uno software, y uno hardware

Activar el modo bajo consumo vía software

El sensor MPU6050 cuenta con un modo de bajo consumo que se puede activar de forma muy sencilla a través del Register 107 – Power Management 1Este registro permite activar/desactivar el modo de bajo consumo cuando queramos, y es especialmente útil cuando necesitemos hacer medidas a intervalos de tiempo determinados, de forma que podremos poner el sensor en bajo consumo cuando no se vaya a utilizar, y activarlo al hacer las medidas. El sensor no puede hacer lecturas mientras está en modo bajo consumo: 

Solo necesitamos altivar el Bit6 – SLEEP, por lo que el registro quedaría de esta forma. Pasándolo a hexadecimal, obtenemos el número 0x80:

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
01000000

Para trasladar esto a código Arduino, tenemos que escribir en el registro 6B el número hexadecimal 0x80 cada vez que queramos activar el modo de bajo consumo:

Y cada vez que queramos hacer alguna lectura, salir del modo bajo consumo:

Solo con activar el modo bajo consumo del sensor MPU6050, el consumo de corriente cae hasta 1.33mA, pero recordad que en este modo no podemos hacer lecturas, es solo para intervalos de tiempo donde no necesitemos usar el sensor:

Consumo MPU6050 bajo consumo, con LED

Os dejo un sketch para descargar en el siguiente enlace para que lo probéis vosotros mismos. Obtiene 2000 lecturas y después pasa a modo bajo consumo durante otros 4 segundos:

Descargar código

De esta forma tenemos un consumo de 5.8mA al hacer lecturas, y 1.33mA en modo bajo consumo. Si hacemos lecturas cada segundo durante 100ms (como hago en el Proyecto Elcano), nos da un consumo medio de 1.77mA:

perfil consumo MPU6050 con LED

Quitar el led que incorpora la placa

Si os fijáis en las imágenes anteriores, veréis como hay un led siempre encendido que consumo hasta 1.3mA. Este led se enciende con solo alimentar la placa, y es un devorador de energía inútil, por lo que la segunda medida que vamos a tomar es quitarlo. Podéis des-soldar o bien el propio led, o bien la resistencia que tiene al lado.

Una vez hecho esto, y si volvemos a cargar el sketch que os he dejado arriba, vemos como el consumo cae hasta 4.4mA al hacer lecturas. Si os fijáis en la imagen, el led permanece apagado: 

Consumo MPU6050 activo, sin LED

Y a 0.055mA (55uA) en modo bajo consumo:

Consumo MPU6050 bajo consumo, sin LED

Si hacemos lecturas cada segundo durante 100ms (como hago en el Proyecto Elcano), nos da un consumo medio de 0.5mA (500uA):

Tutorial Arduino ultra bajo consumo (90uA)

Os dejo esta entrada donde aprenderemos como reducir el consumo de la placa Arduino Nano hasta 90uA (micro-amperior).

 

También te podría interesar


Indice ‘Boya Iridium con Arduino‘ | Proyecto Elcano:

Boya Iridium Arduino

  1. Introducción
  2. Análisis de concepto y costes
  3. Diseño electrónica (esquemas y PCB)
  4. Montaje hardware (próximamente)
  5. Programación en Arduino (próximamente)
  6. Lanzamiento y seguimiento (próximamente)

Índice ‘Drone con Arduino’

Drone con Arduino

  1. Conceptos generales sobre drones.
  2. Material necesario y montaje de los componentes hardware.
  3. Mando RC y receptor. Programación en Arduino (código).
  4. MPU6050 y su programación en Arduino (código).
  5. Batería LiPo (código).
  6. Control de estabilidad y PID. 
  7. Motores, ESC y su programación en Arduino (código).
  8. Calibración de hélices y motores (código). 
  9. Software completo y esquema detallado (código).
  10. Probando el Software completo antes de volar.
  11. Como leer variables de Arduino en Matlab (código).

Añadir un comentario

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