InicioTarjetas de DesarrolloArduinoMedición de luxes con Módulo BH1750: Sensor de Luz Digital

Medición de luxes con Módulo BH1750: Sensor de Luz Digital

Con este tutorial podrás realizar mediciones de luxes con el Módulo BH1750 :Sensor de Luz Digital en conjunto con la tarjeta de desarrollo UNO R3.

Introducción

El BH1750 realiza la medición de flujo luminoso, también llamado iluminancia, el cual incide en un área determinada.

Este flujo de iluminación expedido es medido a través de lúmenes (lm). Entre mayor sea el número de lm, mayor es la intensidad de iluminación es proveniente de la fuente.

Cuando esta iluminación llega a una área, surge el termino de lux (lx). En otros términos, si una lampara emite un lumen en una superficie de 1 m² habrá 1 lux :

  Lux = lm /m²  

A continuación algunos ejemplos de niveles de iluminación dependiendo de la fuente de luz en un metro cuadrado:

¿Cómo funciona el Sensor de Luz Digital?

El BH1750 utiliza el protocolo de comunicación I2C por medio de los pines SCL y SDA. No es necesario ningún cálculo para medir el valor de LUX porque el sensor lo proporciona directamente.

Tiene un amplio rango de medición ajustable desde los 0.11 a 100000 lux, por lo que es capaz de medir en casi cualquier situación de iluminación. Incorpora un convertidor analógico/digital de 16 bits que proporciona una resolución de 65535 niveles.

Este sensor tiene seis modos de medición diferentes, estas se dividen en dos grupos:

  • Modo continuo: El sensor hace mediciones de manera continua.
  • Modo único: Solo realiza una vez y pasa al modo de apagado.
Cada modo tiene tres precisiones diferentes:
  • Baja resolución: Precisión de 4 lx, tiempo de medición de 16 ms
  • Alta resolución: Precisión de 1 lx, tiempo de medición de 120 ms
  • Alta resolución Modo 2: Precisión de 0.5 lx, tiempo de medición de 120 ms

Para realizar la medición de lux se necesitarán los siguientes componentes:

Diagrama de conexión

El Arduino UNO tiene 6 entradas analógicas que brindan ayuda al momento de leer la información de algunas magnitudes físicas, tal es el caso de este sensor que percibe la intensidad lumínica, sin embargo para usar el Arduino UNO R3 se usarán las entradas A4 (SDA) y A5 (SCL), ya que estás son los pines que se ocupan para el protocolo I2C.

Código en Arduino IDE para el módulo BH1750

El siguiente código nos ayudará a tener lecturas del sensor de luz por medio del monitor serial de Arduino IDE. Realizaremos las lecturas con la configuración que se tiene por default (Modo continuo y Baja resolución).

Antes de realizar dicho código tendremos que descargar la librería para el BH1750.

Podemos hacer esto directamente en:

  La barra de Herramientas > Programa > Incluir Librería > Administrar Bibliotecas  

Posteriormente en la barra de búsqueda colocaremos:

  BH1750  

Y proceder a la instalación.

Ahora tenemos todo para poder realizar nuestro programa y poder realizar el censado de luxes por medio del BH1750

 
// Código de prueba 
#include <Wire.h>  //Librería para poder activar la comunicación por el protocolo I2C entre el módulo y el Arduino
#include <BH1750.h> // Librería para utilizar el modulo BH 1750 

BH1750 lux; //

void setup()
{
Serial.begin(9600); // Inicio de comunicación entre el módulo y Arduino
Wire.begin(); // Inicio de la librería wire y conecta al Arduino al bus 
lux.begin(); // Inicialización del sensor BH1750
Serial.println(F("Lectura de luxes por BH1750"));
}

void loop()
{
float luxes = lux.readLightLevel(); //Almacenamiento de valores otorgados por el sensor en una variable de tipo flotante
Serial.print("Luz: "); // Impresión de el texto luz
Serial.print(luxes); // Impresión del valor registrado por el sensor
Serial.println(" lx"); // Impresión de la unidad de la intensidad luminosa
delay(1000); //un retraso de 1 segundo
}

Como podemos observar dependiendo si hay mas iluminación el valor de lux varia entre 235 lux a 425 lux, recordando la tabla de referencia podemos concluir que estamos tomando la medición en una área interior/soleado o exterior/nublado.

Algunas de las aplicaciones para el sensor BH1750 son:
  • Ajustar el brillo de la pantalla en móviles y pantallas LCD.
  • Calibración de flash en cámaras.
  • Encender / apagar los faros de los automóviles en función de la iluminación exterior.

    Te invitamos a explorar mas del sensor de luz digital y otros tutoriales con Arduino aquí.

    Glosario

    Lumen (Lm): Es la unidad del Sistema Internacional para medir el flujo luminoso. La medida de la potencia luminosa emitida en un ángulo determinado por una fuente, es decir, la unidad que indica la “cantidad” total de luz que percibimos en un ángulo determinado.

    Luxes (Lux): Es la unidad derivada del Sistema Internacional de Unidades para el nivel de iluminación. Es la sensación de luminosidad. Su equivalencia es de un lumen/m². Se usa en fotometría como medida, tomando en cuenta las diferentes longitudes de onda según la función de luminosidad, un modelo estándar de la sensibilidad a la luz del ojo humano. Resumiendo, es la cantidad de luz que tenemos en un metro cuadrado.

    Bibliografía

    TUTORIALES RELACIONADOS