int BH1750address = 0x23; // Set BH1750 address
byte buff[2];
int t = 0;
int y = 0;
void setup()
{
Wire.begin();
Serial.begin(115200);
pinMode(D7,1);
pinMode(D6,1);
pinMode(D5,1);
}
void loop()
{
uint16_t val = 0;
BH1750_Init(BH1750address); // Initial BH1750
delay(200);
BH1750_Read(BH1750address); // Read and check data from BH1750
val = ((buff[0] << 8) | buff[1])/1.2;
Serial.print(val + String(" lux ")); // Show light density unit
Serial.println(buff[1]/1.2);
delay(150);
if(buff[1]/1.2 < 50)
{
delay(300);
t++;
while(buff[1]/1.2 < 50)
{
uint16_t val = 0;
BH1750_Init(BH1750address); // Initial BH1750
delay(200);
BH1750_Read(BH1750address); // Read and check data from BH1750
val = ((buff[0] << 8) | buff[1])/1.2;
}
}
Serial.println(t);
if(t==1)
{
digitalWrite(D7,1);
digitalWrite(D6,0);
digitalWrite(D5,0);
}
if(t==3)
{
digitalWrite(D7,0);
digitalWrite(D6,1);
digitalWrite(D5,0);
}
if(t==6)
{
digitalWrite(D7,0);
digitalWrite(D6,0);
digitalWrite(D5,1);
}
if(t==10)
{
digitalWrite(D7,0);
digitalWrite(D6,0);
digitalWrite(D5,0);
t=0;
}
}
int BH1750_Read(int address) // BH1750 read data function
{
int i = 0;
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);
while (Wire.available())
{
buff[i] = Wire.read(); // Read one byte
i++;
}
Wire.endTransmission();
return i;
}
void BH1750_Init(int address) // BH1750 initial function
{
Wire.beginTransmission(address);
Wire.write(0x10); // Start operation
Wire.endTransmission();
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น