BH1750 to measure laser (650nm) intensity

I have encountered an error to measure the light intensity of my laser source (650nm) (see image attached). The serial plot remains constant even i have changed the intensity of my light source, I have even tried both extremes: dark environment and close to lase source, yet there are no changes to the serial plot. Have anyone enconutered similar problem? How do i solve this error?

Here, the codes were used for the complete setup of photodiode BH1750 and Arduino Nano:

/*
Advanced BH1750 library usage example
This example has some comments about advanced usage features.
Connection:
VCC -> 3V3 or 5V
GND -> GND
SCL -> SCL (A5 on Arduino Uno, Leonardo, etc or 21 on Mega and Due, on esp8266 free selectable)
SDA -> SDA (A4 on Arduino Uno, Leonardo, etc or 20 on Mega and Due, on esp8266 free selectable)
ADD -> (not connected) or GND
ADD pin is used to set sensor I2C address. If it has voltage greater or equal to
0.7VCC voltage (e.g. you've connected it to VCC) the sensor address will be
0x5C. In other case (if ADD voltage less than 0.7 * VCC) the sensor address will
be 0x23 (by default).
*/
#include <Wire.h>
#include <BH1750.h>
/*
BH1750 can be physically configured to use two I2C addresses:
- 0x23 (most common) (if ADD pin had < 0.7VCC voltage)
- 0x5C (if ADD pin had > 0.7VCC voltage)
Library uses 0x23 address as default, but you can define any other address.
If you had troubles with default value - try to change it to 0x5C.
*/
BH1750 lightMeter(0x23);
void setup(){
Serial.begin(9600);
// Initialize the I2C bus (BH1750 library doesn't do this automatically)
Wire.begin();
// On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3);
/*
BH1750 has six different measurement modes. They are divided in two groups;
continuous and one-time measurements. In continuous mode, sensor continuously
measures lightness value. In one-time mode the sensor makes only one
measurement and then goes into Power Down mode.
Each mode, has three different precisions:
- Low Resolution Mode - (4 lx precision, 16ms measurement time)
- High Resolution Mode - (1 lx precision, 120ms measurement time)
- High Resolution Mode 2 - (0.5 lx precision, 120ms measurement time)
By default, the library uses Continuous High Resolution Mode, but you can
set any other mode, by passing it to BH1750.begin() or BH1750.configure()
functions.
[!] Remember, if you use One-Time mode, your sensor will go to Power Down
mode each time, when it completes a measurement and you've read it.
Full mode list:
BH1750_CONTINUOUS_LOW_RES_MODE
BH1750_CONTINUOUS_HIGH_RES_MODE (default)
BH1750_CONTINUOUS_HIGH_RES_MODE_2
BH1750_ONE_TIME_LOW_RES_MODE
BH1750_ONE_TIME_HIGH_RES_MODE
BH1750_ONE_TIME_HIGH_RES_MODE_2
*/
// begin returns a boolean that can be used to detect setup problems.
if (lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) {
Serial.println(F("BH1750 Advanced begin"));
}
else {
Serial.println(F("Error initialising BH1750"));
}
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}


How does the sensor respond to room and other light sources?

Still constant even under ambient light and LED light changes

Sounds like the sensor is not working at all.

Naww, i have tried two sensors, same problem :smiling_face_with_tear:

Then something else is wrong, like the code or the wiring.

I have tried several code templates, still consant reading, and i have made sure to wire them accordingly:

VCC > 5V
GND > GND
SCL > A5
SDA > A4
ADD > not connected

When starting with a new I2C device, I always run the I2C Address Scanner program to check whether communications are working, and whether the address is as expected.

1 Like

Thanks for the suggestion! I will try to run a scan and will update you whether if it works :grin:

Does you code print "BH1750 Advanced begin"?

1 Like

Hey man thanks a lot, I have checked thru, apparently it was my soldering issue, after soldering again, I have managed to get readings :blush:

Before this it wasn't, after soldering it again, now it does! :grin:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.