つれづれなるまゝに

単なる作業メモ。主に、Linux, arduino, raspberry piとか?

arduino HH10D その2

2013-10-09 21:26:56 | arduino
抵抗を買ってきたので、HH10Dを動作させてみる。


こちらのサイトに大変お世話になりました。
TMP102の時のようにI2Cで値を取得、計算してポン!という代物ではなかった。

他の湿度計よりお安い分、手間がかかる感じですかね。
参考にさせていただいたサイトでも7回に分けて説明されてました。

ここデータシートの3ページ目にある以下の式を使います。

RH(%) = (offset - Soh) * sens / 2^12

I2Cから、offsetとsensの値を取得、FOUTの周波数を測定してSohを算出という形です。
FOUTからの値は、周波数カウンターライブラリを使用して取得。このライブラリは5番ピンを使うので、FOUTをそこに繋ぐ。



スケッチですが、最初こちらを参考にして動作させてみたところ、値が4000%RHとかになってしまいました。再度、じっくり内容を読んでみる。参考元で使用しているArudinoがProで、システムクロックが8MHzとUNOの半分なためFreqCounter::start()の値が500になってました。

この値を1000にしたところ、それっぽい値になりました。(例のごとくエアコンで湿度を確認)
こちらのスケッチはFreqCounter::start()の値が1000でしたので、正解のようです。

1点だけまだはっきりわかってないことがあって、FreqCounter::f_compの値。これUNOだといくつがいいのだろうか。

最後にメモ。今回使用している周波数カウンターライブラリですが、他に使用できるPMWが11と3だけになるそうです。(10, 9, 6は使えなくなる)
詳しくはここを参照。