1.概要
(1)仕様
|
![]() |
(2)ピン
ピンと目的は下表のとおり
|
(3)内部回路

2.簡単につかう
BH1750は照度センサー。アクセスの仕方(BH1750の連続高精度値を読む方法)
I2Cの信号の並びは スレーブアドレス(以下SAと言う)+オペコード 又は SA+返信データ(2Byte)です。
信号の内容は3つ ①設定を送る ②動作を要求する ③動作の返信(照度データ2Byte)
(1)設定を送る(オペコード)
BH1750の設定は「高額窓の影響を考慮したセンサー感度調整」しか有りません。この感度調整用の設定値は「3.レジスタ(2)高額窓の影響を考慮したセンサー感度調整方法」を参照。
今回はデフォルト値(0x42、0x65)をBH1750に設定する。
上位バイト送信
| ①読取るBH1750のSA番号 ②オペコードの指示 |
-> -> |
0x23 0x42 |
下位バイトの送信
| ①読取るBH1750の※SA番号 ②オペコードの指示 |
-> -> |
0x23 0x65 |

(2)動作の要求
動作については今回指示するう「連続高精度解像モード」を含め9つあり。詳細は「3.レジスタ(3)動作モードについて」を参照。
連続高精度解像モードで要求
| ①読取るBH1750の※SA番号 ②オペコードの指示 |
-> -> |
0x23 0x10 |

(3)動作の返信(照度データ)
高精度解像度の場合は「(2)動作の要求」から標準で120ms経過してからSA番号を送る事。低解像度の場合は(2)値の要求から標準で16ms経過してからSA番号を送る事。
| ①読取るBH1750の※SA番号 ②値の返信 2BIT |
-> -> |
0x23 0x01 0xE3 |

lxの求め方 0x01E3 /1.2 = 483/1.2 = 402.50(lx)
3.I2Cスレーブアドレス
アドレスは2種類あり| ADDR端子 | スレーブアドレス |
| VCC | 0x5C |
| GND | 0x23 |
4.レジスタ
I2Cの信号の並びは スレーブアドレス(以下SAと言う)+オペコード 又は SA+返信データ(2Byte)です。(1)オペコード
下記表のNo10,No11が設定で使用し、「(2)高額窓の影響を考慮したセンサー感度調整方法」を参照。
No1~No9は動作の要求で使用し、「(3)動作モードについて」を参照。
| No | オペコード | 概 要 | |
| 1 | b0000 0000 | 0x00 | パワーダウン |
| 2 | b0000 0001 | 0x01 | 電源オン |
| 3 | b0000 0111 | 0x07 | リセット |
| 4 | b0001 0000 | 0x10 | 連続H解像度モード |
| 5 | b0001 0001 | 0x11 | 連続H解像度モード2 |
| 6 | b0001 0011 | 0x13 | 連続L解像度モード |
| 7 | b0010 0000 | 0x20 | ワンタイムH解像度モード |
| 8 | b0010 0001 | 0x21 | ワンタイムH解像度モード2 |
| 9 | b0010 0011 | 0x23 | ワンタイムL解像度モード |
| 10 | b0100 0xxx | 0x40~0x47 | ゲイン調整上位値 |
| 11 | b011x xxxx | 0x60~0x7E | ゲイン調整下位値 |
(2)高額窓の影響を考慮したセンサー感度調整方法
BH1750FVIは、センサー感度を変更することができます。この機能を使用することで、光学窓の影響(光学窓の有無の違い)をキャンセルすることができます。
調整は、測定時間を変更することで行います。
たとえば、光学窓の透過率が50%(光学窓を設定すると測定結果は0.5倍になる)の場合、センサー感度をデフォルトから2倍に変更することで、光学窓の影響を無視できます。
この調整は (測定時間レジスタ) の値を変更することで、センサー感度をシフトします。
センサー感度の目標が 2 倍の場合、MTreg 値は 2 倍に設定する必要があります。
MTreg 値をデフォルトから 2 倍に変更すると、測定時間も 2 倍に設定されます。
MTreg 値はデフォルトが69(0x45)をデフォルト値として最小が31(0x1F)~254(0xFE)まで設定が出来ます。
ただしBH1750へ設定を指示する場合はオペコードとして2Byteにして2回に分けて指示します。
下はデフォルト値(0x42、0x65)を設定した場合を示している。

MTreg 値をオペコードにする方法は下表のとおり
| MTreg |
|
|||||||||||||||||||||
| オペコード |
|
|
||||||||||||||||||||
| 上位 | 下位 | |||||||||||||||||||||
MTreg 値からオペコードへ変換した値一覧
| Mtreg値 | lx/count H mode |
lx/count H mode2 |
|||||||||||||
|
16 | 10 | |||||||||||||
| 最小 |
|
0x1F | 31 | 1.85 | 0.93 | ||||||||||
| デフォルト |
|
0x45 | 69 | 0.83 | 0.42 | ||||||||||
| ※2倍 |
|
0x8A | 138 | 0.42 | 0.21 | ||||||||||
| 最大 |
|
0xFE | 254 | 0.23 | 0.11 | ||||||||||
| lx/count H mode |
lx/count H mode2 |
上位オペコード | 下位オペコード | |||||||||||||||||||||||
|
|
|||||||||||||||||||||||||
| 最小 | 1.85 | 0.93 |
|
0x40 |
|
0x7F | ||||||||||||||||||||
| デフォルト | 0.83 | 0.42 |
|
0x42 |
|
0x65 | ||||||||||||||||||||
| ※2倍 | 0.42 | 0.21 |
|
0x44 |
|
0x3A | ||||||||||||||||||||
| 最大 | 0.23 | 0.11 |
|
0x47 |
|
0x7E | ||||||||||||||||||||
H mode2 lx/count = 69/(Mtreg値x1.2x2)
(3)動作モードについて
各オペコードの内容は下表のとおり| コード | 項 目 | コメント |
| 0x00 | パワーダウン | 消費電力を小さくするモードでこれを復帰する場合は0x01電源ONを指示すること。 消費電流は標準で120μAが0.01μAになります。 |
| 0x01 | 電源オン | ワーダウンの状態から電源をオン状態にし測定・リセットコマンドを待ちます。 |
| 0x07 | リセット | ※1 データレジスタ値をリセットします。 |
| 0x10 | 連続H解像度モード | ※2 1lx解像度で測定開始 測定時間は120ms必要 |
| 0x11 | 連続H解像度モード2 | ※2 0.5lx解像度で測定開始測定時間は120ms必要 |
| 0x13 | 連続L解像度モード | ※2 4lx解像度で測定開始測定時間は16ms必要 |
| 0x20 | ワンタイムH解像度モード | ※2 連続モードのコメント測定後jは自動的にパワーダウンモード移行 |
| 0x21 | ワンタイムH解像度モード2 | ※2 連続モードのコメント測定後jは自動的にパワーダウンモード移行 |
| 0x23 | ワンタイムL解像度モード | ※2 連続モードのコメント測定後jは自動的にパワーダウンモード移行 |
※2 パワーダウン状態の場合でも本コードを指示することにより電源がオンになり、測定を開始する。
各モードからの遷移


