El BH1750 es un sensor digital de luz ambiental muy preciso y fácil de integrar en proyectos con microcontroladores como el Arduino Uno R3.
¿Qué es el BH1750?
Es un sensor de iluminancia que mide la intensidad de luz en lux (lx), desarrollado por ROHM Semiconductor. A diferencia de los LDR analógicos, el BH1750 entrega directamente valores digitales mediante comunicación I2C, lo que facilita su integración y lectura precisa.
Características
| Parámetro | Valor / Descripción |
|---|---|
| Rango de medición | 1 a 65,535 lux |
| Resolución | Hasta 0.5 lux |
| Comunicación | I2C (SDA y SCL) |
| Voltaje de operación | 2.4V – 3.6V (módulos con regulador aceptan 5V) |
| Modos de medición | Continuo y por única vez |
| Direcciones I2C posibles | 0x23 (por defecto) o 0x5C (con ADDR a VCC) |
| Tiempo de respuesta | 16 ms a 120 ms (según resolución) |
Ventajas frente a otros sensores
- Lectura directa en lux, sin cálculos adicionales.
- Alta precisión y estabilidad frente a interferencias.
- Bajo consumo energético, ideal para sistemas alimentados por batería.
- Fácil integración con Arduino gracias al protocolo I2C.
- Compacto y confiable, perfecto para proyectos de automatización o robótica.
Integración con Arduino Uno R3
Materiales necesarios
- Arduino Uno R3
- Sensor BH1750 (módulo)
- Cables Dupont
- (Opcional) Resistencia pull-up para SDA/SCL si el módulo no las incluye
Conexiones
| BH1750 Pin | Arduino Uno R3 |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
| ADDR | NC o GND (I2C: 0x23) |
Código básico
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup() {
Serial.begin(9600);
Wire.begin();
lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE);
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Luz: ");
Serial.print(lux);
Serial.println(" lx");
delay(500);
}
Puedes instalar la librería desde el IDE de Arduino: BH1750 by Christopher LawsDescargo de Responsabilidad
La información técnica, diagramas de conexión y códigos proporcionados en esta guía tienen fines educativos y de referencia. Aunque se ha procurado que los datos sean precisos y actualizados, no se garantiza su exactitud, integridad ni compatibilidad con todos los entornos o versiones de hardware/software.
El uso de estos contenidos es bajo responsabilidad del usuario. No nos hacemos responsables por daños, fallos de funcionamiento, pérdidas económicas o cualquier consecuencia derivada de la implementación de los circuitos, códigos o recomendaciones aquí descritas.
Se recomienda verificar siempre las hojas de datos oficiales del fabricante, realizar pruebas controladas y adaptar el diseño a las condiciones específicas de cada proyecto.