|
前些天买了个BH1750传感器,打算用在气象站上。用于检测环境光光照强度
主角登场
引脚说明
- GND 电源地
- ADD I2C地址引脚
- SDA I2C总线数据引脚
- SCL I2C总线时钟引脚
- VCC 电源 电压3-5V
线路连接
程序代码- #include <Wire.h>
- #include <math.h>
- #include <MsTimer2.h>
- int BH1750address = 0x23;//BH1750 I2C地址
- byte buff[2];
- int flag = 0;//定时中断标志
- void timer()//定时中断函数
- {
- flag = 1;
- }
- void setup()
- {
- Wire.begin();
- Serial.begin(9600);
- MsTimer2::set(2000, timer); //定时器设置,每2秒触发一次timer函数操作
- MsTimer2::start();
- }
- void loop()
- {
- if( flag )//
- {
- Serial.print( BH1750() );
- Serial.println("[lux]");
- flag = 0;//归零,等着定时中断重新赋值
- }
- }
- double BH1750() //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;
- }
复制代码 运行结果
首发链接:http://www.ardapi.com/post/2012-08-08/40031872959 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|