「マイコンで気象観測」其の6 湿度値を得る(HS15校正式作成)

 HS15Pは温度湿度で抵抗値が変化する抵抗体であり、追加したコンデンサと共にフィルターとして働きます。コンデンサ容量は判っているので、電圧を入力後、ある時間での出力電圧を測定すれば、式から抵抗値が判ります。今回の場合、電圧の入力はマイコンのデジタルポートをHIGHにすることで入力出来ます。


 私の場合の校正式です。私の場合は63%に到達する時間(=時定数)を使っていますので、R=(1/0.9943)*(T/C)となります。今回は1msec周期で電圧出力をモニターして63%になるまでのカウントを得ると秒に直すには1000で割る必要があります。コンデンサ容量は10μFの部品を使いましたが、テスターで計ると10.02μFでした。
 次に、R=(1/0.9943)*(T/C)の式の値を対数化しています。これはHS15Pのデータシートから得た校正式の為によるものです。


 コンデンサ容量によっても電圧上昇の速度が変わってしまいます。HS15Pの抵抗値がかなり変化の幅があるので、コンデンサ容量が少なすぎると高湿度の時に上昇が早すぎ、コンデンサ容量が大きすぎると低湿度時に時間がかかります。私は10μFの部品を使います。せっかくコンデンサ容量が計れるテスターがあるので計ってますが、無ければカタログ値をそのまま使っても良いと思います。


 さて本題です。HS15Pのデータシートは、この1個のグラフ画像しか得られません。私の場合はprocessingという開発言語で作った、マウスの座標値から値を得るプログラムを作りました。


 で、得られた値をプロットしてエクセルで近似式を求めると、低湿度・高湿度の時に近似式からズレが生じます。


 色々と試行錯誤した結果、抵抗値をx軸にして対数化した値を元に近似式を求めるのが一番良かった結果になりました。


 次に問題なのは、温度が変わると近似式が変わることです。データシートには5個の温度時の曲線が有り、近似式も5個有ります。これらを基に、温度も変数とする近似式を作る必要があります。
 5個の近似式はy=ax^2+bx+cという方程式で、このa,b,cについて5個の温度時でプロットして更に近似式を求めてみると、a,cについてはかなり一次方程式で良好なので、bも一次方程式で求めます(多項式にしても駄目そうなので)。そうして求めたのがa=0.032*t+2.224,b=-0.021*t-30.471,c=-0.8459*t+118.01です。これで湿度=a*Log10(R)^2+b*Log10(R)+cが求まります。