BH1750-PCB Modulo GY-302 Sensor de Luz Ambiental, Salida Serial I2C

[BH1750-PCB] BH1750-PCB Modulo GY-302 Sensor de Luz Ambiental, Salida Serial I2C

https://electrofranko.com/web/image/product.template/54330/image_1920?unique=1c3f7db

S/ 16.00 16.0 PEN S/ 16.00

S/ 16.00

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: BH1750-PCB

Módulo Sensor de Luz e Iluminancia Lux (BH1750)

Sensor digital de intensidad lumínica ambiental de alta precisión con interfaz bus I2C.

El módulo acondicionador digital BH1750 está diseñado para medir de forma segura la intensidad de luz ambiental directamente en unidades físicas Lux. Su funcionamiento se basa en un fotodiodo integrado con respuesta espectral similar a la sensibilidad del ojo humano, procesada por un convertidor ADC interno. Esta arquitectura genera una señal digital directa libre de variaciones por ruido que se transmite eficientemente por el bus de datos I2C. Es una solución altamente compacta y eficiente para tareas de telemetría, estaciones climáticas, ajuste automático de pantallas y proyectos inteligentes de domótica.

Especificaciones Técnicas del Módulo

Parámetro Detalle
Tensión de OperaciónDC 3.3 V a 5 V (Conversor integrado)
Rango de Medición1 lx a 65535 lx (Lúmenes por m²)
Interface de DatosProtocolo I2C (Serial Data / Clock)
Dirección I2C por Defecto0x23 (Pin ADDR conectado a GND)
Dirección I2C Secundaria0x5C (Pin ADDR conectado a VCC)
Convertidor InternoADC de 16 bits de alta resolución
Parámetro Detalle
Respuesta EspectralSemejante a la curva visual humana
Dependencia de FuenteBaja variación ante luz solar o LED
Corriente de Trabajo140 uA típico (Bajo consumo activo)
Modo Apagado (Power Down)Consumo mínimo menor a 1 uA
Resolución del SensorHasta 0.5 lx en modo de alta precisión
Dimensiones de la PCB21 x 16 mm

Diagrama de Conexiones y Mapeo de Pines

Diagrama de Conexión BH1750

Ventajas del Módulo

Lectura Directa en Lux: Entrega los valores calculados digitalmente de forma directa sin requerir complejas fórmulas matemáticas de calibración externa.

Alta Inmunidad al Ruido: Al procesar la señal de forma interna y transmitir mediante bus I2C, la medición no se degrada por cables largos.

Filtro de Espectro Óptico: Su sensibilidad coincide con el ojo humano, ignorando radiaciones infrarrojas que falsean lecturas en fotorresistencias comunes.

Direccionamiento Ajustable: Permite modificar su pin de dirección de hardware para conectar hasta dos sensores BH1750 independientes en el mismo bus.

Código Arduino de Medición en Tiempo Real

// Código optimizado para el módulo luxómetro BH1750 utilizando comunicación I2C directa // Realiza lecturas promediadas consecutivas para ofrecer un valor estable de iluminancia #include <Wire.h> const int direccionBH1750 = 0x23; // Dirección I2C común (ADDR conectado a GND) const int muestras = 5; // Muestras cíclicas para estabilizar la medición void setup() { Serial.begin(9600); Wire.begin(); // Inicialización del bus de comunicación I2C // Configuración del sensor en modo continuo de alta resolución (1 Lux de precisión) Wire.beginTransmission(direccionBH1750); Wire.write(0x10); Wire.endTransmission(); Serial.println("--- Luxómetro Digital BH1750 Inicializado ---"); delay(200); // Tiempo de espera para la primera conversión interna } void loop() { long acumuladorLux = 0; int lecturasValidas = 0; // Ciclo de muestreo acumulativo para mitigar ruidos o fluctuaciones rápidas for (int i = 0; i < muestras; i++) { Wire.requestFrom(direccionBH1750, 2); if (Wire.available() >= 2) { int byteAlto = Wire.read(); int byteBajo = Wire.read(); // Unión de bytes y cálculo de iluminancia según el datasheet oficial (Resultado / 1.2) unsigned int resultadoCrudo = (byteAlto << 8) | byteBajo; acumuladorLux += resultadoCrudo; lecturasValidas++; } delay(20); // Intervalo prudente entre muestreos continuos } if (lecturasValidas > 0) { // Cálculo final del promedio y conversión física a Lux float promedioCrudo = (float)acumuladorLux / lecturasValidas; float nivelLux = promedioCrudo / 1.2; // Despliegue de datos depurados hacia el Monitor Serie Serial.print("Intensidad Lumínica Real: "); Serial.print(nivelLux, 1); // Muestra la medición con un decimal de precisión Serial.print(" lx"); // Clasificación cualitativa simple del ambiente medido if (nivelLux < 10.0) { Serial.println(" -> Ambientación: Oscuridad / Noche"); } else if (nivelLux >= 10.0 && nivelLux < 150.0) { Serial.println(" -> Ambientación: Iluminación Interior Baja"); } else if (nivelLux >= 150.0 && nivelLux < 1000.0) { Serial.println(" -> Ambientación: Oficina / Espacio de Trabajo Óptimo"); } else { Serial.println(" -> Ambientación: Luz Exterior o Sol Directo"); } } else { Serial.println("[ERROR]: Falla de comunicación en el bus I2C"); } Serial.println("----------------------------------------"); delay(1000); // Frecuencia de refresco cíclica equilibrada }