BH1750FVI Digital Ambient Light Sensor Module

45,00 DH 60,00 DH

Availability:

214 in stock

SKU: 0176 Categories: ,

Description

BH1750FVI Digital Ambient Light Sensor Module

This module uses the BH1750FVI digital ambient-light sensor to measure illuminance and report a digital value over I²C. It is useful for light-level monitoring, automatic display-brightness projects and other prototypes that need an ambient-light reading.

🔧 Specifications stated for this module

  • Sensor: BH1750FVI, digital ambient-light sensor
  • Interface: I²C
  • Listed measurement range: 1–65,535 lx
  • Listed high-resolution step: 1 lx
  • Listed typical current: 0.12 mA
  • Listed measurement variation: ±20%
  • Peak spectral sensitivity: approximately 560 nm
  • 50/60 Hz light-noise rejection
  • Board size: 13.9 × 18.5 mm

Voltage note: the product listing describes the module as suitable for 3–5 V systems. The BH1750FVI IC itself is specified for a 2.4–3.6 V supply. Breakout boards differ in their regulators and I²C level shifting, so verify the markings or documentation of the supplied board before applying 5 V or connecting its SDA/SCL lines to 5 V logic. Use 3.3 V logic unless the board’s compatibility is confirmed.

⚙️ Measurement and I²C address

The sensor converts incident light into a 16-bit digital result. Its ADDR input selects one of two I²C addresses: ADDR low selects 0x23; ADDR high selects 0x5C. The address shown in software may appear shifted or formatted differently by some libraries. High-resolution mode has a nominal 1 lx step; readings and conversion time depend on the selected measurement mode.

💡 Typical uses

  • Ambient-light monitoring
  • Automatic brightness control for displays
  • Lighting and home-automation prototypes
  • Arduino and other microcontroller projects

📌 Module pinout

  • VCC: module supply; confirm the voltage supported by the supplied breakout
  • GND: ground
  • SDA: I²C data
  • SCL: I²C clock
  • ADDR: I²C address selection, if brought out on the board

🔌 Basic Arduino example

The original source code is preserved below. The example initializes the sensor and prints the measured light level to the Serial Monitor.

#include <Wire.h>
#include <BH1750.h>


BH1750 lightMeter;


void setup(){
  Serial.begin(9600); // Initialiser la communication série
  Wire.begin(); // Initialiser la communication I2C
  lightMeter.begin(); // Initialiser le capteur BH1750
  Serial.println("BH1750 Test"); // Message de test
}


void loop() {
  float lux = lightMeter.readLightLevel(); // Lire la valeur de luminosité
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(1000); // Attendre 1 seconde avant la prochaine lecture
}

Components for the basic example

  • Arduino Uno
  • BH1750FVI light-sensor module
  • Connecting wires

Connections shown in the source

  • VCC: Arduino 5 V (only if the supplied breakout explicitly supports it; otherwise use 3.3 V)
  • GND: Arduino GND
  • SDA: Arduino A4 on Uno
  • SCL: Arduino A5 on Uno

🌟 Advanced example with an I²C 1602 LCD

The second original code example is preserved below. It reads the sensor in continuous high-resolution mode and displays the result on an I²C LCD.

#include <Wire.h>
#include <BH1750.h>
#include <LiquidCrystal_I2C.h>


// Initialiser le capteur BH1750
BH1750 lightMeter;


// Initialiser l'écran LCD I2C à l'adresse 0x27 avec 16 colonnes et 2 lignes
LiquidCrystal_I2C lcd(0x27, 16, 2);


void setup(){
  Serial.begin(9600); // Initialiser la communication série
  Wire.begin(); // Initialiser la communication I2C
  lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); // Initialiser le capteur en mode haute résolution continue
  lcd.begin(); // Initialiser l'écran LCD
  lcd.backlight(); // Allumer le rétroéclairage de l'écran LCD
  lcd.print("BH1750 Test"); // Message de test
  Serial.println("BH1750 Advanced Test"); // Message de test pour le Moniteur Série
}


void loop() {
  float lux = lightMeter.readLightLevel(); // Lire la valeur de luminosité
  lcd.setCursor(0, 0); // Positionner le curseur à la première ligne
  lcd.print("Light: "); // Afficher le texte "Light:" sur l'écran LCD
  lcd.setCursor(0, 1); // Positionner le curseur à la deuxième ligne
  lcd.print(lux); // Afficher la valeur de luminosité sur l'écran LCD
  lcd.print(" lx"); // Afficher l'unité de mesure "lx"
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(500); // Attendre 500 ms avant la prochaine lecture
}

Connections shown in the source

  • Sensor VCC: Arduino 5 V only when supported by the actual breakout; otherwise use 3.3 V
  • Sensor GND: Arduino GND
  • Sensor SDA/SCL: Arduino A4/A5 on Uno
  • LCD VCC/GND: connect according to the LCD module’s rating
  • LCD SDA/SCL: share the I²C bus with the sensor, provided voltage and pull-up levels are compatible

Both devices share the I²C data and clock lines, but their pull-ups must be compatible with the microcontroller’s logic voltage. Check the board pinout and library configuration before powering the circuit.

Thank you for your loyalty!

EN