用户工具

站点工具


ocrobot:alpha:bh1750:index

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
ocrobot:alpha:bh1750:index [2017/04/07 10:03] – 外部编辑 127.0.0.1ocrobot:alpha:bh1750:index [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +===== ALPHA BH1750FVI =====
 +==== 简介 ====
 +BH1750FVI 是一种I2C总线接口的数字型光强度传感器。它可以根据收集的光线强度数据来控制其他执行装置。分辨率有16位(1lx-65535lx)。
 +==== 特点 ====
 +  - IIC总线接口
 +  - 响应光谱为人眼可见光谱
 +  - 1 - 65535lx宽范围响应。
 +
 +==== 勒克斯 ====
 +勒克司(lux,法定符号lx)是照度的单位。等于1流明的光通量均匀照在1平方米表面上所产生的照度。
 +
 +====参考图片====
 +{{:ocrobot:alpha:bh1750:bh1750bvi侧面-重调-435.png?nolink|}}
 +{{:ocrobot:alpha:bh1750:bh1750bvi正面-重调-435.png?nolink|}}
 +==== 代码 ====
 +<code cpp>
 +#include <Wire.h>
 +
 +#define ADDR 0b0100011
 +
 +void setup() {
 +  // put your setup code here, to run once:
 +  Serial.begin(9600);
 +  Wire.begin();     
 +  Wire.beginTransmission(ADDR);
 +  Wire.write(0b00000001);
 +  Wire.endTransmission();
 +
 +}
 +
 +void loop() {
 +  // put your main code here, to run repeatedly: 
 +  int val = 0;
 +
 +  // reset
 +  Wire.beginTransmission(ADDR);
 +  Wire.write(0b00000111);
 +  Wire.endTransmission();
 +
 +  delay(100);
 +
 +
 +
 +  Wire.beginTransmission(ADDR);
 +  Wire.write(0b00100000);
 +  Wire.endTransmission();
 +
 +  // typical read delay 120ms
 +  delay(120);
 +
 +  Wire.requestFrom(ADDR, 2); // 2byte every time
 +
 +  for (val=0; Wire.available()>=1; ) {
 +    char c = Wire.read();
 +    //Serial.println(c, HEX);
 +    val = (val << 8) + (c & 0xFF);
 +  }
 +
 +  val = val / 1.2;
 +  Serial.print("lx: ");
 +  Serial.println(val); 
 +
 +  Serial.println("OK");
 +  digitalWrite(13, HIGH);
 +  delay(100);   
 +}
 +</code>
 +==== 下载 ====
 +**数据手册:**
 +
 +{{:ocrobot:alpha:bh1750:bh1750fvi-e-186247.pdf|BH1750FVI数据手册英文版}}
 +
 +**原理图:**
 +
 +{{:ocrobot:alpha:bh1750:alpha_bh1750fvi_r2.pdf|ALPHA BH1750FVI.pdf}}