用户工具

站点工具


ocrobot:sensor_suite:bh1750:main

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
ocrobot:sensor_suite:bh1750:main [2019/12/23 03:51] – [代码] 董凯萍ocrobot:sensor_suite:bh1750:main [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== 光照强度检测计 ======
 +OCROBOT 光照强度检测计采用OCROBOT ALPHA系列模块堆叠而成。
 +本模型可以测量当前位置的光照强度,并且可以根据收集的光线强度数据来控制其他执行装置,分辨率有16位(1lx-65535lx)。响应光谱为人眼可见光谱。
  
 +勒克司(lux,法定符号lx)是照度的单位,等于1流明的光通量均匀照在1平方米表面上所产生的照度。
 +
 +=====图片展示=====
 +{{:ocrobot:sensor_suite:bh1750:光照度435.png?400|}}
 +=====主要硬件=====
 +  - OCROBOT ALPHA 8F32P-U主控板
 +  - OCROBOT ALPHA BH1750FVI 光照度传感器模块
 +  - OCROBOT ALPHA LCD1602显示屏
 +  - OCROBOT ALPHA 双路锂电池扩展板
 +
 +==== 代码 ====
 +<code cpp>
 +#include <Wire.h>
 +#include <LiquidCrystal_I2C.h>
 +#define ADDR 0b0100011
 +LiquidCrystal_I2C lcd(0x20, 16, 2);
 +void setup() {
 +  // put your setup code here, to run once:
 +  Serial.begin(9600);
 +  Wire.begin();     
 +  Wire.beginTransmission(ADDR);
 +  Wire.write(0b00000001);
 +  Wire.endTransmission();
 +  lcd.init();                   //初始化屏幕
 +  lcd.backlight();
 +}
 +
 +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;
 +  lcd.clear();
 +  lcd.setCursor(0, 0);
 +  lcd.print("lx: ");
 +  lcd.setCursor(4, 0);
 +  lcd.println(val); 
 +
 +  //Serial.println("OK");
 +  digitalWrite(13, HIGH);
 +  delay(100);   
 +}
 +</code>
ocrobot/sensor_suite/bh1750/main.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1