หลังจากให้วงจรทำงานปรากฏว่าหน้าserial monitorขึ้นค่าแสงแค่ค่าเดียวคือ56412lux รบกวนผู้รู้ช่วยตรวจสอบและแนะนำด้วยนะครับ
ตัวโค้ด
#include <BH1750FVI.h> // Sensor Library
#include <Wire.h> // I2C Library
BH1750FVI LightSensor;
int led[ ]={9,10,11,12,13};
int inputPin = 3;
int n = 4;
unsigned char LightMode, LM_DAY, LM_NIGHT;
void setup() {
for(int count=0; count<n; count++)
pinMode(led[count], OUTPUT);
pinMode(inputPin, INPUT);
Serial.begin(9600);
LightSensor.begin();
LightSensor.SetAddress(Device_Address_H);
LightSensor.SetMode(Continuous_H_resolution_Mode);
Serial.println("Running...");
}
void loop() {
int i = 0;
for(int a = 1;a<=14400;a++){
LightMode = LM_DAY;
int value = digitalRead(inputPin);
uint16_t lux = LightSensor.GetLightIntensity();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lux");
if(lux < 53000){
digitalWrite(led[i],HIGH);
i++;
}
if(lux > 54700){
digitalWrite(led[i],LOW);
i--;
}
delay(3000);
}
for(int a = 1;a<=14400;a++){
LightMode = LM_NIGHT;
for(int j = n;j>=0;j--){
digitalWrite(led[j], LOW);
}
delay(3000);
}
}
serial monitor