/******************************************************************************* * * 105 - Usando dois módulos BH1750 para medir a iluminação ambiente em lux * Autor: Angelo Luis Ferreira * 22/08/2022 * http://squids.com.br/arduino * *******************************************************************************/ #include // biblioteca para comunicação I2C #include // biblioteca para sensor BH1750 #include // biblioteca para o display LCD I2C // objetos (conforme bibliotecas) BH1750 sensorLeft; // cria a instância sensorLeft BH1750 sensorRight; // cria a instância sensorRight LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); // cria a instância lcd void setup() { // inicializações Wire.begin(); // inicializa a biblioteca Wire.h (a biblioteca BH1750 não faz isso automaticamente) Serial.begin(9600); // inicializa a comunicação serial sensorLeft.begin(BH1750::CONTINUOUS_HIGH_RES_MODE, 0x23, &Wire); // incializa o BH1750 (sensorLeft) / Pino ADDR em nível lógico 0 sensorRight.begin(BH1750::CONTINUOUS_HIGH_RES_MODE, 0x5c, &Wire); // incializa o BH1750 (sensorLeft) / Pino ADDR em nível lógico 1 lcd.begin(16,2); // inicializa o lcd 16X2 com I2C } void loop() { showLux(); delay(300); } void showLux() { // le os valores do sensor de lux uint16_t luxLeft = sensorLeft.readLightLevel(); // faz a leitura do sensorLeft uint16_t luxRight = sensorRight.readLightLevel(); // faz a leitura do sensorRight // mostra as informacoes no LCD lcd.setCursor(0, 0); lcd.print(" Left"); lcd.setCursor(10, 0); lcd.print(" Right"); lcd.setCursor(0, 1); lcd.print(" "); lcd.print(luxLeft); lcd.print(" "); lcd.setCursor(10, 1); lcd.print(" "); lcd.print(luxRight); lcd.print(" "); }