Example Code for Arduino-Light Intensity Measurement

Last revision 2025/12/26

This article offers a comprehensive guide on measuring light intensity with Arduino using the BH1750 sensor, including hardware setup, wiring connections, software requirements, and sample code implementation.

Hardware Preparation

Software Preparation

Wiring Diagram

LightSensor

Sample Code

/*
 Sample code for the BH1750 Light sensor
 Version 0.2
 website:www.DFRobot.com
 Connection:
 VCC-5v
 GND-GND
 SCL-SCL(analog pin 5)
 SDA-SDA(analog pin 4)
 ADD-NC
 */
#include <Wire.h> //BH1750 I2C Mode
#include <math.h>
int BH1750address = 0x23; //setting I2C address
byte buff[2];
void setup() {
        Wire.begin();
        Serial.begin(9600);//init Serail band rate
}
void loop() {
        int i;
        uint16_t val=0;
        BH1750_Init(BH1750address);
        delay(200);
        if(2==BH1750_Read(BH1750address)) {
                val=((buff[0]<<8)|buff[1])/1.2;
                Serial.print(val,DEC);
                Serial.println("[lx]");
        }
        delay(150);
}
int BH1750_Read(int address) {
        int i=0;
        Wire.beginTransmission(address);
        Wire.requestFrom(address, 2);
        while(Wire.available()) {
                buff[i] = Wire.read();  // receive one byte
                i++;
        }
        Wire.endTransmission();
        return i;
}
void BH1750_Init(int address) {
        Wire.beginTransmission(address);
        Wire.write(0x10);//1lx reolution 120ms
        Wire.endTransmission();
}

Was this article helpful?

TOP