センサー
hts221

湿度、温度センサー

More than 1 year has passed since last update.


はじめに

I2Cを使用する準備ができたので、初めに湿度、温度センサーを使ってみようと思います。


HTS221

HTS221は、湿度と温度を取得することができます。

スレーブアドレスは

読み出し BE

書き込み BF

となります。

通信速度は400k、100kともに使用することができます。

また、オートインクリメントにも対応しています。


アクセス手順

以下のフローでHTS221を使用します。

flow.jpg

ワンショットモードで温度と湿度を取得しています。

ワンショットモードでは、プログラム側でトリガーを掛け、湿度と温度の更新を行います。

1) HTS221をパワーオンする

CTRL_REG1レジスタのPDビットを「1」に設定します。

また、ワンショットモードで温度、湿度を取得するのでBDUビットを「1」に設定して計測データの排他を行います。

2) キャリブレーションを読み込み

デバイス固有のキャリブレーションを読み込みます。

キャリブレーションはスレーブアドレス0x30~0x3Fから取得します。

3) ワンショットモードを開始

CTRL_REG2レジスタのOne-shot enableビットに「1」を設定してワンショットモードを開始します。

4) ステータスの確認

STATUS_REGレジスタを読み込み温度、湿度のデータの更新が完了するのを待ちます。

5) 湿度と温度のデータを取得

湿度データ

HUMIDITY_OUT_LレジスタとHUMIDITY_OUT_Hレジスタを読み出します。

温度データ

TEMP_OUT_LレジスタとTEMP_OUT_Hレジスタを読み出します。

6) キャリブレーションの値から温度と湿度を計算する

キャリブレーションの値を使用して現在の温度を計算します。

計算式は下記になります。

湿度の計算


H_{RH}\verb|[%]| = \frac{(\verb|H1_rH| - \verb|H0_rH|)\times(\verb|H1_T0_OUT| - \verb|H0_T0_OUT|)}{\verb|H1_T0_OUT| - \verb|H0_T0_OUT|} + \verb|H0_rH|

温度の計算


T\verb|[degC]| = \frac{(\verb|T1_degC| - \verb|T0_degC|)\times(\verb|T_OUT| - \verb|T0_OUT|)}{\verb|T1_OUT| - \verb|T0_OUT|} + \verb|T0_degC|


まとめ

湿度、温度センサーの使用方法が分かったので、実際にプログラムを作成していこうと思います。