今回の記事では温度センサー(ADT7410)の動作設定方法を説明します。
動作設定概要
ADT7410の動作設定を行うには、ADT7410内部メモリのアドレス0x03に1バイトのデータを書き込むことにより行います。
I2C通信手順は次のようになります。

なお、デバイスアドレスは0x48、書き込み(0)ですので、最初に送る「スレーブアドレス+読み書き指定」のデータは0x90になります。
つまり、ADT7410の動作設定を行うには、0x90、0x03と動作設定データ(1バイト)の合計3バイトを送信することになります。
今回の記事では、動作設定データの1バイトの詳細を説明します。
動作設定レジスタ詳細
次の図は動作設定の1バイトデータの詳細です。

以下にそれぞれのビットの意味を説明します。
解像度(bit7)
ADT7410は温度を計測する際、16ビットで計測するか13ビットで計測するか選択できます。
16ビット計測時、測定温度の分解能は0.0078度、13ビット計測時は0.0625度になります。
このビットの値は以下の意味になります。
値 | 意味 |
---|---|
0 | 13ビット測定モード |
1 | 16ビット測定モード |
実践編では少数第2位まで表示しますので、分解能は16ビット(=1)に設定します。
測定モード(bit6・bit5)
温度計測をどのようなタイミングで測定するかの設定です。
測定モードとしては以下の4種類があります。
- 次々に休みなく測定するモード
- マスターから測定指示をした場合に測定するモード
- 1秒間に1回測定するモード
- スリープモード
bit6とbit5の2ビットは以下の意味になります。
値 | 意味 |
---|---|
00 | 連続測定モード 1秒間に何回も測定するため消費電力は大きくなります |
01 | 指示した時のみ測定するモード このビットに01を書き込むと測定してくれます。測定には約240msかかりますので、測定データの取得は工夫が必要です。 (具体的にはステータスレジスタで新しいデータが測定されたから確認後、測定データを取得します) |
10 | 1秒間に1回測定するモード |
11 | スリープモード スリープ指定した場合、I2C通信以外はスリープします。スリープ中でもI2C通信は可能です。 |
実践編では連続測定モード(0b00)で使用します。
INT/CTモード(bit4)
INTピンとCTピンの動作モードの設定ですが、今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。
使用しない場合、設定値は0で問題ありません。
INT論理(bit3)
INT信号の正論理/負論理指定です。
今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。
使用しない場合、設定値は0で問題ありません。
CT論理(bit2)
CT信号の正論理/負論理指定です。
今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。
使用しない場合、設定値は0で問題ありません。
INT/CT回数(bit1・bit0)
INT/CTの割り込み信号は、INT/CT設定温度を上回ったあるいは下回った場合に発生しますが、何回上回った/下回った場合に発生させるかの設定です。
今回使用するモジュールではINT/CTピンは使用できませんので説明は省略します。
使用しない場合、設定値は0b00で問題ありません。
動作設定レジスタで使用するところは少なく、16ビットモードでの測定設定を行うのみですので、動作設定の1バイトデータは「0x80」になります。
次回は取得した測定データ2バイトの温度データへの変換方法を説明します。
更新履歴
日付 | 内容 |
---|---|
2018.8.12 | 新規投稿 |
2025.8.18 | 説明図更新 |