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)
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..
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)
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!