気圧、温度、湿度の3つの表示を分離表示させるには?その4
内蔵EEPROMで簡易記録!


ようやく欲しかった機能がそろったので、ここでまとめをします。

ハードウエアは、下記の通りで、前回と同じです。PIC 16F886とPIC 18LF2550両方で共用ハードウエアです。
特に共用にした理由はありませんが、コンフィグ部分を構成するソフトウエア部分以外は全てソフトウエアも共通で2種類の異なる系統のPICにハード、ソフト共に共有できる所が面白いのでやってみました。


仕様:

気圧(300〜1200hPa):グラフィック上段の16×48領域に、初期値として最大1021hPa〜最小1006hPaの 1hPa/dot 分解能で表示します。
初期のプロット可能範囲を超えた場合は、1hPa/dot 分解能を保ちながら自動的に最大値、または、最小値を変更してのまま追尾表示をする「自動シフト機能」を使っています。

気温(-20〜70℃):グラフィック中段の16×48の領域に、0〜50℃の範囲で表示します。

相対湿度(0〜100%):グラフィック下段の16×48の領域に、0〜100%の範囲で表示します。

ただし、本装置が零下の環境で動作するかは補償の限りではありません。

約0.6秒毎に自動計測し、数値表を行いながらRS232Cにデータ出力をします。また、一定間隔でグラフィック表示をします。

通常は約30分毎にグラフィックプロット行い、48プロット(約2日分)を行うと、古いデーター部分から上書きしながらプロットを続けます。(スクロールしない:心電図表示に似ている)

主要部品:
PIC 16F886、または、PIC 18LF2550
グラフィック表示機能:ノキア液晶5110 aitendo(加工済み)[M-LCD5110-PCB]
気圧センサーユニット:SCP1000-D01モジュール (気圧、気温)秋月電子通商 通販コード M-03468
湿度センサー:SHT-11 strawberry linux 商品コード #80001
昇圧型小型DC-DC コンバーター 3.3V:HT7733A使用 StepUp・DIP 3.3Vタイプ 0.2A出力 秋月電子通商 通販コード M-03072

プロット間隔は、DIP_SW1,DIP_SW2の選択で随時変更が可能。DIP_SW1がOFF側ならば30分毎、DIP_SW1、2の双方が供にONの場合は約6秒毎、1秒DIP_SW2のみがOFFの場合は1秒毎のプロット間隔が選択できる。(下記表を参照)

  OFF ON
DIP_SW1 約30分毎(優先) 双方が供にONの場合には、約6秒毎
DIP_SW2 約1秒毎

ただし、 ここでの「OFF」とはSWとしての解放を意味し、プルアップ抵抗を通じてPICのポートへの信号は、「High」となります。
また、「ON」とはSWとしての導通を意味し、GNDへ接続されてPICポートヘの信号は、「Low」となります。

DIP_SW(ディップスイッチ)と、押しボタンを併用する事によって、128プロット分の気圧データーのPIC内蔵のEEPROMへの記憶、及びEEPROMからの再生とプロットが可能。 再生時は、RS232CよりEEPROMからの気圧データの出力が可能。

  OFF ON
DIP_SW3 この状態で「押しボタン」を押すと、設定されているプロット間隔毎にEEPROMから記録したデータの読み込みを開始し、128プロット分を読み出すと、自動的に読み出しモードを解除する。この時RS232Cへも、気圧データは読み込みデータを出力します。 この状態で「押しボタン」を押すと、設定されているプロット間隔毎にEEPROMへのレコードを開始し、128プロット分を記録すると、自動的にレコードモードを解除します。
記録中は「●」を表示します。

(上記DIP_SW3のOFF、ONの内容説明が逆でした。訂正いたします。Nov. the 7th 2010)

EEPROMへの128ポイント全部の記録前に記録を止める事も可能です。その場合は、プロットレート間隔を30分毎にして、なるべくEEPROMへの書込み中でない時を狙って電源を切って下さい。データの最後尾の後には「0」データを追加書込みしてありますので、再生時にはこの「0」データの所までの再生を行います。出来ればプロットレートを1秒にして、128プロット全てを書き込んで自動的に書込みが終了するのを待つ方が無難と思われます。

なお、現時点でDIP_SW4は未使用です。

電源は5.0VのACアダプター、または、アルカリ単三電池2本で稼働できます。アルカリ単三電池16F886の場合は、消費電流が5mA以下で約30日連続稼働、18LF2550の場合は、消費電流が10mAで約15日連続稼働します。

PICは、16F866または、18LF2550が使用できます。どちらも、同一のハードウエアで動作し、8MHzの外部クロックで稼働しますが、18LF2550は内部で外部クロックをマルチプライして16MHzにて稼働しています。

アプリケーションは、16F886用のものと、18LF2550用のものと2種類存在しますが、device.h、device.c以外のアプリケーション部分は全て同一です。deviceファイルは、コンフィグレーションや、システムクロック、データー通信クロッック、A/Dポートのデジタル設定等を含む、PIC間の構造上の相違点を決定している部分のみ異なっています。

なお、特に16F886で今回の回路は、何の問題もなく動作します。18LF2550は、18F2550の低電圧対応仕様(2.0Vから5.5Vまでの電源電圧で動作可能)であり、現時点では日本国内の通信販売では手に入れる事は出来ません。無理に、18LF2550を使う必要は全く有りません。

ただ、16F886と比べて、18LF2550の方が圧倒的にプログラム容量が大きい事や、コンパイラーが18F系の専用命令を使ってプログラムメモリー領域に配列データメモリー領域を配置してくれるので、余裕で16F886の倍以上のプログラムをが組む事が出来そうです。その反面、消費電力が倍程有るので、バッテリー駆動の出来る時間が半分になってしまう欠点が有ります。

下記に、EEPROMへの読み書きに対応したプロジェクトファイルをリンクしておきます。
16F886prrh32.zip
16F886prrh33.zip (EEPROMデーターのRS232C出力ルーチンを修正しました。Sep. the 14th 2010)

※ご注意 本プロジェクトは HI-TECH C for the PIC10/12/16 v9.81 以前のバージョンにて作成されています。 HI-TECH C for the PIC10/12/16 v9.81 以降のバージョンでそのままコンパイルすると、コンパイルエラーが発生いたします。これを解消するには、下記をご参照下さい。

HI-TECH C for the PIC10/12/16 v9.81リリースとその注意点!
http://ohta.no-ip.com/Pages/templan/index60.html
(Mar. the 1st 2011)
 
18LF2550prrh32.zip
18LF2550prrn33.zip (EEPROMデーターのRS232C出力ルーチンを修正しました。Sep. the 14th 2010)

18LF2550prrh98.zip (PIC駆動周波数を8MHzダイレクトに修正しました。ハードウエアが同じでも上記16MHzバージョンよりも半分の消費電流の約4.5mAで駆動できます。16F886と同等のバッテリー連続駆動をする事が出来ます。Sep. the 18th 2010)
なお、このソースプログラムは、
Windows XP Pro v2002 SP3上で、
現時点において最新で無償の、
MPLAB-IDE v8.53、
HI-TECH C Compiler for PIC10/12/16 MCUs version 9.71a Lite mode 及び、
HI-TECH C Pro for the PIC18 MCU Family Compiler Version 9.63PL3 Lite mode
によりそれぞれコンパイルされています。

(注意)これ以前のバージョンでコンパイルを行うと、スタックオーバーフローのワーニングが出たりしますので、必ず上記バージョンにてコンパイルして下さい。

気圧センサー部分を含むプログラムの大部分を、パレットソフトさんのプログラムを利用し、私が変更に、変更を加えて使用しています。

ノキア5110表示用のライブラリー部分は、
CQ出版の「トランジスタ技術2006年3月号」に掲載された、
R8C/15付録マイコン基板活用企画 
第9回 小型グラフィック液晶表示器で作る簡易温度計 山本 秀樹氏 のR8C/15用ソフトウエアをHI-TECH C Compiler用に移植して使用しています。

湿度センサーSHT-11とのインターフェース部分は、今回はエレキジャックさんのソースを利用しております。

I/Oは非オープンドレイン対応でPICの双方向I/O通信を行い、関連ポートグループのデジタルI/O操作は、ファイル device.c 上で一元管理されたポートバッファ方式関数で全て行っています。(Sep. the 12th 2010)

注意事項
General disclaimer
トッ プページへ

なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで