今回の記事から、温度センサーADT7410から温度データを取得するプログラムを作成します。今回はセンサの概要説明です。
ADT7410仕様概要
最初に、実践編で使用する温度センサーADT7410の概要について説明します。
ADT7410は微妙な温度変化を計測することができます。
温度データは16ビットまたは13ビットで取得可能で、16ビットの時は0.0078度刻み、13ビットの時は0.0625度刻みで温度変化を計測することができます。どちらのビット数で計測するかは電源投入後の動作設定の時に指定します。
測定温度範囲はマイナス40度 〜 プラス105度ですので、一般的な温度計測には問題ない性能だと思います。
ところで、温室度・気圧センサー(BME280)では取得したデータの処理が大変でしたよね。(よくわからない補正計算とか…)
この温度センサーのデータ処理はそれほど大変ではありません。
今回は動作設定や温度データ取得の概要を説明します。
ADT7410の制御方法概要
ADT7410の制御方法の概要を説明します。
ADT7410のメモリマップは以下のようになっています。

なんだかいろいろありますが、単純な温度計測をするだけであれば、赤枠部分の温度データレジスタ、青枠部分の動作設定レジスタのみ使用すればOKです。
温度データを取得する場合、 I2C通信を使用してメモリアドレス0x00と0x01のデータを読み取ります。
動作設定を行う場合は、同じくI2C通信を使用してメモリアドレス0x03に設定データを書き込みます。
読み取った温度データの扱いや動作設定の詳細については次回以降の記事で詳しく説明します。
今回の記事では、残りのレジスタについて簡単に説明します。
レジスタ内容
ステータス(0x02)
このレジスタを読み取ると、ADT7410の状態がわかります。
例えば、あらかじめ指定しておいた温度を上回った、下回った、などの情報です。
実践編のプログラムでは、マイコンで温度データを読み取り、マイコン側でそのデータを処理しますので使用しません。
ただ、マイコン側で処理が面倒なときは有用かもしれませんね。
高温側INT割り込み信号発生温度(0x04・0x05)
ADT7410本体には「INT」と呼ばれるピンがあります。
あらかじめ設定した温度を上回ったり、下回ると、このピンの出力が1になります。
0x04と0x05のレジスタは、高温側の温度を設定するレジスタです。
例えばこのレジスタに35度という温度を設定しておくと、測定温度が35度を超えるとADT7410のINTピンが1になります。
ただ、実践編で使用しているモジュールは、ADT7410のINTピンの信号は出ていませんのでこの機能は使用することができません。
低温側INT割り込み信号発生温度(0x06・0x07)
先ほどは測定温度が上回った場合でしたが、こちらはこの設定温度を下回った場合にINTピンが0になります。
先ほどと同様、実践編で使用しているモジュールは、ADT7410のINTピンの信号は出ていませんのでこの機能は使用することができません。
CT割り込み信号発生温度(0x08・0x09)
ADT7410にはINTピンとは別に「CT」と呼ばれるピンがあります。
測定した温度が0x08, 0x09で設定した温度を上回ると、CTピンが0になります。先ほどと同様、実践編で使用しているモジュールは、ADT7410のINTピンの信号は出ていませんのでこの機能は使用することができません。
設定温度を上回った場合に出力を1にするというピンがINTピン、CTピンの2本あります。
この使い方ですが、INTピンは温度の上限、CTは温度の警告に使うことを想定しているようです。
具体的には、例えば農作物の温室栽培で、温室内気温が25度は絶対に超えては行けない場合を考えてみます。
この場合、25度を超えると換気する必要がありますが、25度になったら換気装置をONにするだけでなく、例えば23度を超えたら警告をしたい、というケースがあるかもしれません。
この場合、INT割り込み信号の高温を25度、CT割り込み信号発生温度を23度に設定します。
INT割り込み信号は換気装置に接続、CT割り込み信号は警告ランプに接続、などの用途で利用できます。
とは言っても、今回使用するモジュールではINTピン、CTピンともに接続されていませんので、使用することはできません。
ヒステリシス温度(0x0A)
先ほどのINT/CT割り込み発生では、設定温度の判定にヒステリシス特性を持たせることができます。
例えば、INT割り込みの高温側設定を35度、ヒステリシス温度を1度に設定した場合の動作を説明します。
この設定の場合、気温が35度を超えるとINTピンが1になります。これは通常の判定です。
ただし、一度INTピンが1になると、34度(=設定温度の35度 − ヒステリシス温度の1度)を下回るまではINTピンは1のままになります。
ID(0x0B)
このレジスタにはチップのIDが保存されています。
値は0xCXとなっていて、「X」には任意の数字が入ります。つまり0xC0〜0xCFのいずれかの値になります。
リセット指示(0x2F)
このレジスタになんらかの値を書き込むとADT7410がリセットされて、電源投入直後の状態に戻ります。
特にADT7410をリセットする必要はないと思いますが、I2C通信でNACKが返信された場合はリセットする、などの対応ができます。
以上がADT7410のレジスタの説明です。
次回の記事では、ADT7410のI2C通信手順を確認し、そのあと動作設定方法の詳細、温度データの取得と計算方法について説明します。
更新履歴
日付 | 内容 |
---|---|
2018.8.5 | 新規投稿 |
2025.8.18 | 説明内容補足 |