179608325 发表于 2014-9-4 11:30:56

BH1750 模块在强光照射下,返回数值为 0,是什么问题?

在 X宝 买了一块 BH1750FVI传感器,连线正常,在光照程度不太高的情况下,读取数值是正常的。

但是到了太阳太亮的时候,经常读出来的值是 0。这个时候拿块半透明纸片把传感器遮住,就又能读出数值了。

请问这是传感器坏了,还是其他问题?

#include <Wire.h> //IIC
#include <math.h>
// ����ǿ��
// BH1750FVI
// in ADDR 'L' mode 7bit addr
#define ADDR 0b0100011
// addr 'H' mode
// #define ADDR 0b1011100

int BH1750address = 0x23;
byte buff;

void setup()
{
        Wire.begin();
        Serial.begin(9600);
}

void loop()
{
        int i;
        uint16_t val = 0;
        BH1750_Init(BH1750address);

        delay(200);

        if (2 == BH1750_Read(BH1750address))
        {
                val = ((buff << 8) | buff) / 1.2;
                Serial.print(val, DEC);
                Serial.println("");
        }

        delay(150);
}


int BH1750_Read(int address) //
{
        int i = 0;

        Wire.beginTransmission(address);
        Wire.requestFrom(address, 2);
        while (Wire.available()) //
        {
                buff = Wire.read();// receive one byte
                i++;
        }
        Wire.endTransmission();

        return i;
}

void BH1750_Init(int address)
{
        Wire.beginTransmission(address);
        Wire.write(0x10);//1lx reolution 120ms
        Wire.endTransmission();
}

迷你强 发表于 2014-9-4 15:26:14

爆表了。。。。。最大65535的量程 ,,强日光直射情况下能到近70000-140000lux

179608325 发表于 2014-9-7 08:31:05

迷你强 发表于 2014-9-4 15:26 static/image/common/back.gif
爆表了。。。。。最大65535的量程 ,,强日光直射情况下能到近70000-140000lux

那要怎么样处理呢?
页: [1]
查看完整版本: BH1750 模块在强光照射下,返回数值为 0,是什么问题?