Software:Arduino
元に戻る
BH1750
2024/7/28
本文目次
本文以外目次
1.データ取得
2.概要
1.BH1750ハード
2.Arduino全般目次
3.Arduino日本語リファレンス。
本 文
1.データ取得
下のプログラムを実行することによりシリアル通信のモニターに結果が表示される。
14:31:11.517 -> 値=0x21E9 10進値/1.2=7234.17(lx)
14:31:16.648 -> 値=0x2066 10進値/1.2=6911.67(lx)
14:31:21.771 -> 値=0x1AAE 10進値/1.2=5691.67(lx)
14:31:26.879 -> 値=0x1A8F 10進値/1.2=5665.83(lx)
14:31:32.009 -> 値=0x159 10進値/1.2=287.50(lx)
14:31:37.137 -> 値=0xB5 10進値/1.2=150.83(lx)
#include <Wire.h> #define BH1750_ADDRESS 0x23 uint16_t lu1; int rs; void setup() { Serial.begin(115200); Wire.begin(2,0); //PinNo=SDA,SCL D4=SDA,D3=SCL に設定 ESP-12E Wire.beginTransmission(BH1750_ADDRESS); Wire.write(0x42); Wire.endTransmission(); Wire.beginTransmission(BH1750_ADDRESS); Wire.write(0x65); Wire.endTransmission(); } void loop() { uint8_t data[4],i=0; Wire.beginTransmission(BH1750_ADDRESS); Wire.write(0x10); Wire.endTransmission(); delay(120); Wire.requestFrom(BH1750_ADDRESS,2); while(Wire.available()){ data[i] = Wire.read(); i++; } lu1=(data[0] << 8) | data[1]; Serial.print(" 値=0x"); Serial.print(lu1,HEX); Serial.print(" 10進値/1.2="); Serial.print(lu1/1.2); Serial.println("(lx)"); delay(5000); }
Arduino Program Source
download
[目次に戻る]
2.概要
(1)仕様
No
スペック
説 明
1
電源電圧
DC2.4~3.6V
2
通信方式
I2C
3
測定レンジ・精度
照度:1~65535 lx
4
分解能
0.5 lx(
高解像度モード2
)
5
消費電流
120μA 電源オン状態
0.01μA: 電源オフ状態
(2)ピン
ピンと目的は下表のとおり
PIN
DEVICE
DESCRIPTION
1
ADDR
スレーブアドレス制御端子で
GNDに接続することで0x23
Vccに接続することで0x5Cとなります。
2
SDA
データの送受信I
2
CのSDA母線に接続します、
3
SCL
クロック入力でI
2
CのSCL母線に接続します
4
GND
Ground
5
VDD
Power supply: 3.0V (2.4~3.6V)
Pinは写真左から1番と呼ぶ
(3)内部回路
[目次に戻る]