// Illuminance sensor (BH1750FVI) test #include #include LiquidCrystal_I2C lcd(0x27,16,2); int BH1750 = 0x23; byte buff[2]; void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("COSMOLIGHT"); lcd.setCursor(0, 1); lcd.print("Project Arduino"); Wire.begin(); // BH1750FVI reset Wire.beginTransmission(BH1750); Wire.write(0x07); Wire.endTransmission(); // BH1750FVI mode set Wire.beginTransmission(BH1750); Wire.write(0x10); Wire.endTransmission(); delay(3000); } void loop(){ float dt = 0; float lxData = 0; int i = 0; // BH1750FVI access start Wire.beginTransmission(BH1750); Wire.requestFrom(BH1750, 2); // byte read while (Wire.available()) { buff[i] = Wire.read(); i++; } // access end Wire.endTransmission(); dt = ((buff[0] << 8) | buff[1]); lxData = dt / 1.2; // data ---> LCD lcd.clear(); lcd.setCursor(0, 0); lcd.print("Illuminance(lx):"); lcd.setCursor(0, 1); if (lxData < 0) { lcd.print("Data Overflow"); } else { lcd.print(String(lxData, 1)); } delay(1000); }