more than 2 BH1750 light sensors with Arduino Uno

Hi guys,

I need to use at least 4 BH1750 light sensors with my Arduino Uno.

I have a Setup for two like for example in this description GitHub - claws/BH1750: An Arduino library for the digital light sensor breakout boards containing the BH1750FVI IC.
Everything works fine for two sensors, they are both using the I2C connection (adress 0x23 and 0x5C)

But is there any way to use 4 of them with the arduino uno? If not - is there any extra component that could help me out? It would be ok to get the information from all 4 sensors one after the other (but without changing any cables of course)

Thank you very much!
Julian

The ADDR pin changes the I2C address of the chip.
That pin can be used as a CS (chip select) pin.
Connect the four ADDR pins to four digital outputs.
Make one of the four HIGH, and read the data from that address.
Leo..

Hi Leo,

thanks for your response. In this Case i could read for example sensor one on adress 0x5C whenever i set the digital output connected to Sensor 1 ADDR to high. And the same for sensor 2,3 and 4 with their particular digital out pins.

Am I getting it right? So i could read one sensor after the other (but within a few milliseconds, so it would be fine) I'll test the setup in the evening. Thanks for the tipp!

Just to make sure, the Arduino Uno can't read more than these two adresses, right ? (0x23, 0x5C)

Julian

Yes, connect all four sensors to the same I2C bus, and the four address select pins to four output pins.
When one of those four output pin is HIGH, that single sensor will be on a different address.
Make sure you read from that address (when the ADDR pin is HIGH).
Leo..

Another suggestion would be to use a software ("bit-banged") i2c library to create a second i2c bus on two other pins. Each bus can then address two bh1750s.

i have had the same problem with a Lux sensor - VEML 6030 from Vishay and that changing address, ( like chip select ' looks like a very well' manageable way - for the software does communictae just with one 0xAdr device.. its pretty genial!