0. Componentes y programación necesaria para el control del módulo sensor de luz BH1750 FVI

Componentes requeridos:

{Product:2000}{Product:216}

I. Cómo utilizar un sensor de luz con Arduino

Este corto tutorial explica cómo utilizar el sensor de luz BH1750 para medir la intensidad de luz.

El BH1750 es un sensor digital que mide el nivel de luz y puede ser controlado con facilidad para formar un luxómetro mediante Arduino, Raspberry Pi u otras placas. El sensor BH1750FVI se utiliza para ajustar la luz del fondo de las pantallas LCD y teclados por los fabricantes de teléfonos móviles, cámaras digitales, navegación y dispositivos de juegos portátiles.

Para obtener más información sobre productos o sus descripciones técnicas entre en nuestra web Solectro Shop.

II. Procedimientos experimentales

Conexión

El módulo se alimenta directamente de Arduino, así que no necesitamos una fuente de alimentación externa. Deberás soldar los pines o headers para usarla sobre una Protoboard o con cables DuPont. En este ejemplo conectaremos el módulo a la placa Arduino UNO mediante I2C como muestra la siguiente imagen:

Los pines del módulo irán de la siguiente manera conectados a la placa Arduino UNO:

Pin del sensor Pin de Arduino UNO
GND GND
VCC 3.3V
CADDR -
SDA A4 (SDA)
SCL A5 (SCL)

 

Operación
Para usarlo de forma más completa, instala la librería BH1750 desarrollada por Christopher Laws, disponible en este enlace.
Esta librería incluye varios ejemplos de programación a los que se recomienda echar un vistazo.
Una vez instalada desde Programa > Incluir Librerías > Añadir Bibliotecas .ZIP..., abre un nuevo sketch vació y pega el siguiente código:

#include <Wire.h>
#include <BH1750.h>
 
BH1750 luxometro;
 
const byte luxMode = BH1750_CONTINUOUS_HIGH_RES_MODE;
// BH1750_CONTINUOUS_HIGH_RES_MODE
// BH1750_CONTINUOUS_HIGH_RES_MODE_2
// BH1750_CONTINUOUS_LOW_RES_MODE
// BH1750_ONE_TIME_HIGH_RES_MODE
// BH1750_ONE_TIME_HIGH_RES_MODE_2
// BH1750_ONE_TIME_LOW_RES_MODE
 
void setup() {
   Serial.begin(9600);
   Serial.println(F("Inicializando sensor..."));
   luxometro.begin(luxMode); // Inicializar BH1750
}
 
void loop() {
   uint16_t lux = luxometro.readLightLevel(); // Lectura del sensor en lux
   Serial.print(F("Iluminancia:  "));
   Serial.print(lux);
   Serial.println(" lx");
   delay(500);
}

Carga y sube el programa, y abre el Monitor Serie para poder observar lo lúmenes que capta.