是日本罗姆(ROHM)半导体生产的数字式环境光传感IC,内置16位的模数转换器,它能够直接输出一个数字信号,不需要再做复杂的计算。这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。这款环境光传感器能够直接通过光度计来测量。光强度的单位是流明"lx"。当物体在均匀的光照下它能够在每平方米获得1lx的光通量,它们的光强度是1lx。有时为了充分利用光源,你可以增加一个光源的反射装置。那样在某些方向就能获得更多的光通量,以增加被照表面的亮度。
VCC —— 5V
GND —— GND
SCL —— D1
SDA —— D2
ADD —— NC
#include
#include
int BH1750address = 0x23;
union data
{
int a;
byte b[2];
};
data buff;
void setup()
{
Wire.begin(D1,D2);
Serial.begin(115200);
}
void loop()
{
int i;
uint16_t val=0;
BH1750_Init(BH1750address);
delay(200);
if(2==BH1750_Read(BH1750address))
{
val=((buff.b[0]<<8)|buff.b[1])/1.2;
Serial.print(val,DEC);
Serial.println("[lx]");
}
delay(150);
}
int BH1750_Read(int address)
{
int i=0;
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);
while(Wire.available())
{
buff.a = Wire.read();
i++;
}
Wire.endTransmission();
return i;
}
void BH1750_Init(int address)
{
Wire.beginTransmission(address);
Wire.write(0x10);
Wire.endTransmission();
delay(500);
}
地址:https://github.com/claws/BH1750
#include
#include
BH1750 lightMeter;
void setup(){
Serial.begin(115200);
Wire.begin(D4,D3);//D3--SCL D4--SDA
lightMeter.begin();
Serial.println(F("BH1750 Test"));
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}