H24.8.5今年も暑い夏を迎え熱中症と節電対策の一助とするため温湿度計を作ることにした。LCDと1本信号線で通信できる温湿度センサーとCPUは8ピンAVRを使い、それらのインターフェイスの勉強も兼ねて作った。1-Wireではない(それより簡単)回路構成は、回路図のとおり至ってシンプル。LCDのピンピッチは1.5mmのため1本おき(奇数ピン)に基板に指し、偶数ピンは裏側に無理やり持っていって接続。LCDのリセット信号は、VDDに直付でも問題ないようだが、CPUで制御DHT22は、なるべく他の部品から離した。(近いと温度が高めになる)電源は、3.3〜5V対応可。(LCDコントラスト設定調整要)制御ソースTINY13AにはI2C(TWI)のインターフェイスが実装されていないので、I2Cのシーケンスを組でLCDを制御。初期化処理はストロベリーリナックスのサンプルを参考にした。最初コントラストは濃くしておいた方が無難。こちらのHPの日本語データシートを参考にさせて頂いた。データ読み出しスタート信号は、Lowレベル1ms以上となっているので最初2msとしたが、時間が経つと起動しなくなってしまったので、5msとして解決した。データの読み出し間隔は約2秒。フリーズして処理が止まっていないか確認するため、1行目の8列目の表示を1秒周期で’*’を点滅させた。まとめLCDとのI2C通信に手こずった。データシートどおりにシーケンスを組んだつもりであったが、思わぬところでハマって相当時間がかかった。DHT22もスタート信号を2msでは、途中で起動しない(フリーズ)状態になりそれに気づくのに苦労した。これとは、別に通常のLCD(HD4470)とDS18B20(1-Wire)を使用した温度計をブレッドボード上で作った。それと比較したのが下の写真です。温度表示は、0.3-0.4度程度の差でした。