解决方案

产品中心

联系我们

康控科技电话

当前位置 > 新闻中心

arduino操作光照传感器BH1750(数字型I2C)

作者: 发布于:2014/3/8 9:29:43>

arduino操作光照传感器BH1750(数字型I2C)

引脚说明

GND电源地

ADDI2C地址引脚

SDAI2C总线数据引脚

SCLI2C总线时钟引脚

VCC电源 电压3-5V

线路连接图


程序代码

#include<Wire.h>

#include<math.h>

#include<MsTimer2.h>


intBH1750address = 0x23;//BH1750 I2C地址

bytebuff[2];


intflag = 0;//定时中断标志


voidtimer()//定时中断函数

{

 flag = 1;

}


voidsetup()

{

 Wire.begin();

 Serial.begin(9600);

 MsTimer2::set(2000, timer); //定时器设置,每2秒触发一次timer函数操作

 MsTimer2::start();

}


voidloop()

{

 if( flag )//

 {

   Serial.print( BH1750() );

   Serial.println("[lux]");

   flag = 0;//归零,等着定时中断重新赋值

 }

}


doubleBH1750() //BH1750设备操作

{

 int i=0;

 double val=0;

 //开始I2C读写操作

 Wire.beginTransmission(BH1750address);

 Wire.send(0x10);//1lx reolution 120ms//发送命令

 Wire.endTransmission();  


 delay(200);

 //读取数据

 Wire.beginTransmission(BH1750address);

 Wire.requestFrom(BH1750address, 2);

 while(Wire.available()) //

 {

   buff[i] = Wire.receive();  // receive one byte

   i++;

 }

 Wire.endTransmission();

 if(2==i)

 {

  val=((buff[0]<<8)|buff[1])/1.2;

 }

 return val;

}

运行结果