グラフ表示温度計の製作

AVRマイコンは ATMEL ATMega64 http://reef.path.ne.jp/%7Ehero/pdf/MEGA64.PDF
開発環境 AVR Studio4.12 SP4 + WinAVR 20060421
ライターはavrezusb http://optimize.ath.cx/avr/writer.htm


これまで製作した温度計は最新値を表示するだけでしたが、今回は過去の温度も記録しドットマトリクス表示のLCDにグラフ表示させてみたいと思いチャレンジしてみました。

目的は気温の観測ではなくて、燻製用の釜の内部温度を知りたいという事ですので温度表示スケールが10℃から100度とワイドレンジになっています。 

全体の構成
○液晶
デジットのジャンク品でなんと180円という代物ですが、しっかり機能してくれました。これについてはこちらを参考にさせていただきました。(ありがとうございます。)
○AVRマイコン
ATMEGA64 RAMが4kBあります。LCDのドット数が1024であり、VRAMとしてリニアに割り当てるとmega168などの1KBのRAMでは不足してしまいますが4KBもあれば、プログラムが容易になります。 購入はこちら 秋月電子
○負電圧コンバータ  LTC1144CN8 300円 これも秋月電子から購入

○温度センサは このセンサはLM35DZというもので0〜+100℃の範囲で使用できます。




マイコンはこれまでのDIP型ではなくて表面実装タイプですのでそのままでは半田付けが困難なため、変換基板を購入しました。 CPUが650円なのにこの基板が500円程度もするのはちょっともったいないような気もしますが仕方ないですね。



なんとか半田付けできました。いくつかブリッジもできましたが半田吸い取りで手直しします。



この液晶は-12Vの電圧を供給する必要があるので、12Vの電源を用意し、このコンバータICとコンデンサ2個だけで-12Vを得ることができます。非常に簡単で便利ですが1個300円(液晶より高い)

コンバータの接続図です。



ATMEGA64のピンアサイン図です。当初ISP端子としてMOSI、MISO端子に接続していましたが上手くいきません。実はPDI、PDO端子を使用しなければならないということでした、マニュアルを良く見れば下のような図がありました。ご注意ください。

プログラムの説明
LCDの制御方法につきましてはリンク先を参考にしていただくのがわかりやすいと思いますので手抜きさせていただきますが、液晶にはメモリが無く常に表示情報を送りつづける必要がありますのでマイコン内蔵のクロックとカウンタから定期的な割り込みを発生させて一回の割り込みしょりで横一列のデータを送るという処理を繰り返します。割り込み処理の間(約40%程度)で温度センサからの電圧をA/Dコンバート、数値換算、メモリシフトなどの処理を行います。

A/Dコンバートは割り込み処理間の時間に完了しないようなので止む無く割り込みを止めていますが表示のちらつきはあまり目立たない程度にできました。 内蔵8MHzクロックを使用していますが、外付けの16MHzクリスタルを追加すれば倍の処理能力になり、余裕が出来ると思います。

RAM上にVRAM用途のエリアを確保し、フォント情報をそこにプロットします。

温度の記録頻度はSWを押すと10秒、30秒、60秒、5分の4種をセレクトする事ができます。

画面の拡大

これを燻製の釜にセットして、燻製中の温度管理に役立てたいと思っています。


次の作品は気温観測用にしました

民宿 陽喜