今回から温度センサADT7410から温度データを取得するプログラムを作成します。今回はセンサの概要説明です。最初に、実践編で使用する温度センサADT7410の概要について説明します。ADT7410は微妙な温度変化を計測することができます。温度データは16ビットまたは13ビットで取得でき、16ビットの時は0.0078度刻み、13ビットの時は0.0625度刻みで温度変化を計測することができます。どちらのビット数で計測するかは電源投入後の動作設定の時に指定します。プラス105度ですので、一般的な温度計測には問題ない性能だと思います。ところで、温室度・気圧センサBME280では取得したデータの処理が大変でしたよね。この温度センサADT7410のデータ処理はそれほど大変ではありません。今回は動作設定や温度データ取得の概要を説明します。取得した細かい動作設定内容や取得した温度データの処理方法はこの後の記事で説明します。センサ制御方法概要ADT7410の制御方法の概要を説明します。ADT7410のメモリマップは以下のようになっています(「メモリマップ」という言葉を忘れてしまったら、実践編第29回の説明を確認してください)。なんだかいろいろありますが、温度計測をするだけであれば、赤枠部分の温度データレジスタ、青枠部分の動作設定レジスタのみ使用することになります。I2C通信を使用してアドレス0x00と0x01のデータを読み取ります。2バイトのデータを読み取ることになりますが、この2バイトのデータから温度に変換する方法はこの後の記事で詳しく説明します。動作設定を行う場合は、同じくI2C通信を使用してアドレス0x03に設定データを書き込みます。この動作設定についてもこの後の記事で詳しく説明します。残りのレジスタについて簡単に説明しておきます。ステータスこのレジスタを読み取ると、ADT7410のステータス(状態)がわかります。指定しておいた温度を上回った、下回った、などの情報です。温度データはマイコンで読み取り、マイコンでその温度を処理しますので、特に読み取る必要はないと思います。INT割り込み信号発生温度(高温)ADT7410には「INT」と呼ばれるピンがあります。このピンは、あらかじめ設定した温度を上回ったり、下回ると、このピンの出力が1になります。0x04と0x05のレジスタは、高温側の温度を設定するレジスタです。このレジスタに35度という温度を設定しておくと、測定温度が35度を超えるとADT7410のINTピンが1になります。実践編で使用しているモジュールは、ADT7410のINTピンの信号は出ていませんのでこの機能は使用することができません。INT割り込み信号発生温度(低温)先ほどは測定温度が上回った場合でしたが、こちらはこの設定温度を下回った場合にINTピンが0になります。先ほどと同様、実践編で使用しているモジュールは、ADT7410のINTピンの信号は出ていませんのでこの機能は使用することができません。CT割り込み信号発生温度ADT7410にはINTピンとは別に「CT」と呼ばれるピンがあります。0x09で設定した温度を上回ると、CTピンが0になります。先ほどと同様、実践編で使用しているモジュールは、ADT7410のINTピンの信号は出ていませんのでこの機能は使用することができません。設定温度を上回った場合に出力を1にするというピンがINTピン、CTピンの2本あります。この使い方ですが、INTピンは温度の上限、CTは温度の警告に使うことを想定しているようです。具体的には、例えば農作物の温室栽培で、室温が25度は絶対に超えては行けない場合25度を超えると換気する必要がありますが、25度になったら知らせるのではなく、例えば23度を超えたら警告をする、などの用途に使えます。この場合、INT割り込み信号の高温を25度、CT割り込み信号発生温度を23度に設定します。言っても、このモジュールではINTピン、CTピンともに接続されていませんので、使用することはできません。ヒステリシス温度この設定について詳細に説明すると非常に長くなってしまいますので、簡単に説明します。ヒステリシス特性をご存知の方に向けた説明になります。先ほどのINT/CT割り込み発生する場合、設定温度の判定にヒステリシス特性を持たせます。ヒステリシス温度の1度)を下回るまではINTピンは1のままになります。IDこのレジスタにはチップのIDが保存されています。値は0xCXということで、0xC0〜0xCFの値のいずれかになります。リセット指示このレジスタになんらかの値を書き込むとADT7410がリセットされ電源投入直後の状態に戻ります。ADT7410をリセットする必要はないと思いますが、I2C通信でNACKが返信された場合はリセットする、などの対応ができます。実践編ではそこまでのプログラムは作成しません。以上がADT7410のメモリマップの説明です。