#include const int Light_ADDR = 0b0100011; // address:0x23 int tempLight = 0; void readLight(); void setup() { Serial.begin(115200); Wire.begin(); //initialize light sensor Wire.beginTransmission(Light_ADDR); Wire.write(0b00000001); Wire.endTransmission(); } void loop() { readLight(); delay(5000); } void readLight(){ // reset Wire.beginTransmission(Light_ADDR); Wire.write(0b00000111); Wire.endTransmission(); Wire.beginTransmission(Light_ADDR); Wire.write(0b00100000); Wire.endTransmission(); // typical read delay 120ms delay(120); Wire.requestFrom(Light_ADDR, 2); // 2byte every time for (tempLight = 0; Wire.available() >= 1; ) { char c = Wire.read(); tempLight = (tempLight << 8) + (c & 0xFF); } tempLight = tempLight / 1.2; Serial.print("light: "); Serial.println(tempLight); }