78F0533のコーナー(6)

更新日:2007年9月13日


時計付き4ヶ月温度記憶装置を作ろう

今回は1時間ごとの温度を記憶する装置を作ります。完全に時期はずれていますが、来年あたりの子供の自由研究に使えそうです。年、月、日も自動的に記憶しますので、データ解析にも大変便利と思います。普段は何気にカレンダー付き時計&温度計としてお使い下さい。データロガーの親戚みたいなものですが、長時間の温度記憶に特化(?)しているのがミソですね。それでは製作をスタートしましょう。
時計付き4ヶ月温度記憶装置を作ろうの基本仕様
1)カレンダー(年、月、日)付きのデジタル時計です。もちろんカレンダーはうるう年も考慮しています。(そのはずです。)
2)1時間ごとの温度を127日間記憶します。
3)記憶したデータはS-RAMに記憶し、電源を抜いてもバックアップが可能です。
4)計測したデータはPCと接続して吸い取ります。後でエクセルで処理が出来ます。
5)S-RAMには1分おきにカレンダー、時刻をバックアップします。瞬時の停電が起きても早期の復旧が可能です。

6)カレンダー、時刻、温度は7セグメント8桁で表示します。
7)表示のバリエーションは3種類用意しています。
8)CAULの赤外線リモコンユニットを用いてワイヤレス操作が可能です。
時計付き4ヶ月温度記憶装置を作ろうの全体構成図
まずは全体の構成図です。今回はマイコンのみですので簡単です。
(時計付き4ヶ月温度記憶装置の構成図)
今回は大きく4つのブロックに分かれています。
@マイコンブロック
以前の製作にも使いました、uPD78F0533を使用します。ピン数が多いので今回のように外部にS-RAMを接続するような製作にはピッタリです。
Aデータ記憶ブロック
256kbitのS-RAMを使います。今回はそのうち4kbyte分を使います。ちなみに私は手持ちの部品を使いました。海外メーカーはまだ製造していると思いますので、インターネットで探してみて下さい。電源を抜いてもS-RAMのデータを保持するようにスーパーキャパシタでバックアップします。
BPC接続ブロック
PCとシリアル接続をするためにRS232Cの変換回路を作っています。コネクタの配線はクロスのケーブルを想定していますので、独自なケーブルを使われる方は、注意して下さい。シリアル接続ですのでPCとの接続にUSB-シリアル変換ケーブルを使用しても全く問題はありません。
C表示ブロック
MAXの表示ドライバを使って7セグメント8桁の表示を行います。シリアルデータで制御出来るので大変便利です。但し一般的に購入すると結構高い部品です。
Dサーミスタブロック
過去の製作で使った石塚電子製の103AT3を使います。同じ部品でいろんな記事を書いてますので詳しくはそちらを参照下さい。
E赤外線ユニット
CAULのBタイプを使いました。簡単でとても便利に使えますので「ちょっとひとやすみのコーナー」をのぞいてみて下さい。
電源は5V系のみです。今回も特別には掲載しませんでした。皆さんで考えて下さいね。
時計付き4ヶ月温度記憶装置を作ろうのマイコンブロック
uPD78F0533のボードを入手して製作しました、。前回の製作にも記載しましたが、ボード上で電源系は次のように配線されています。A/Dコンバータの基準電圧は電源電圧と同じになります。
(マイコン側の電源とGNDの接続)
このボードにそれぞれの回路を接続して全体を構成します。
操作ボタンやスイッチ、LED表示などは特別な回路を付けずにマイコンが直接入力、駆動しています。時計機能は32.768kHzの水晶発振子を取り付けて0.5秒の時計割り込みで計測しています。水晶のコンデンサを調整することによりかなりの精度の時計になります。現状の定数でも実用的には問題ありません。
(水晶発振回路)
(操作ぼたん回路)
(LED表示回路)
LED表示回路はPCへデータ送信している時に点灯することにしました。
(サーミスタ回路)
サーミスタ回路は極めて単純です。測定電圧を計算式にかけて温度を算出しています。C言語でプログラミング出来るのでこのあたりがアセンブラに比べて大変便利ですね。
(ポート割付と設定)
ポート設定は難しいことはありません。過去の製作に比べて空きポートが多いので、簡単に理解出来ると思います。アナログポートがまだ余っていますので、複数の温度を測定して記憶出来るようにするのも楽しいかもしれません。
時計付き4ヶ月温度記憶装置を作ろうのデータ記憶ブロック
測定データの記憶方法はいくつか考えられますが、私はS-RAMに記憶する方式を取りました。部品さえ入手出来れば駆動方法は極めて簡単です。
(データ記憶回路)
今回アドレスバスは12本しか使いません。丁度4kバイトになります。使用しないアドレスバスはGNDにきっちり落としておきます。今回も電源が無い時にもデータを保持するためにCEをとトランジスタを介して制御しています。S-RAMのみの電源をダイオードを介してスーパーキャパシタで保持します。S-RAMのスピードは気にすることはありません。入手出来るものを使用して下さい。面実装タイプしかありませんでしたので変換基板でDIPタイプにしています。
(S-RAMを変換基板に載せる)
S-RAM内部の使用状況は次の通りです。
(S-RAMマップ)
RAMの前半と後半にバックアップ判定用データを用意して、電源投入時に全てが保たれていればRAMの内容をクリアせずに起動します。最初に電源を投入した時はデータは入っていませんのでRAMの内容は初期化されます。カレンダーと時刻を1分おきにバックアップします。電源を投入した時にバックアップ判定用RAMが正しく保持されていた時にはバックアップしてあるデータを読み込んで初期値とします。停電になった時には時計は進みませんが次に電源を入れた時にはバックアップデータを初期値として動きますので少しの設定で正常な時刻に戻すことが出来ます。
温度の測定は毎時「30分00秒」に行います。できるだけこの時間には何もしない(?)ことをお薦めします。
時計付き4ヶ月温度記憶装置を作ろうのPC接続ブロック
記憶したデータをPCに吸い上げるためにシリアル接続します。定番のICを使って回路を構成します。
(PC接続回路)
最近のPCにはRS-232CのコネクタがついていませんがUSB-シリアル変換ケーブルで接続することが可能です。シリアルで直接する場合も変換ケーブルを使う場合も同じですがこの製作からはクロスケーブルで接続して下さい。
PCとのシリアル通信のマイコン側ソフトは「マイコン電子工作あれこれ - 78K0 横丁」の記事を参考にさせて頂きました。ありがとうございました。アプリレットから生成されるルーチンではどうしてもうまく動きませんでした。申し訳ございません。
データはSW6を長押しすることでPCへ出力することが出来ます。データ出力中はLEDを点灯させています。この間は時計カウントアップのみしか受け付けませんので秒数の表示は固定されますが、数秒間待つと正しい表示に戻りますので、ご了解よろしくお願いいたします。
時計付き4ヶ月温度記憶装置を作ろうの表示ブロック
MAXのセグメントドライバICを使います。マイコンとシリアルで接続出来るので大変便利です。LEDの輝度調整もやってくれますのでかなりのすぐれものです。
(7セグメント8桁表示回路)
このICには7セグメント表示モードがありますが、今回は7セグメント以外の文字も表示出来るように個別データで表示を行っています。
(数字表示用データ)
データ「A」から「E」には特定の文字を定義しています。データ「F」は空白表示としています。7セグメントではもっと他の表示も出来ますので皆さんで工夫してみて下さい。
時計付き4ヶ月温度記憶装置を作ろうの7セグメント表示
7セグメント8桁に表示される表示される内容について説明します。
(通常の7セグメント表示)
左側より時、分、秒を表示します。一番右側は温度を表示しています。表示は3種類用意しています。SW5を押すことにより表示を切換えます。
(表示バリエーション2)
左側より年、月、日を表示します。一番右側は温度を表示しています。切り換えた表示はそのまま保持します。時計は内部で刻んでいますので表示を変えても遅れることはありません(あたりまえか)。
(表示バリエーション3)
右側より月、日、時、分を表示します。このとき温度表示はありません。SETスイッチをONすることで設定モードに入れます。年、月、日、時、分の順に設定していきます。
(設定モード1)
最初に年、月、日を設定します。SW1が設定値アップ、SW2が設定値ダウンです。次の項目に進むにはSW3を押します。設定は最初だけなのでこのモード中の表示はパワーを掛けていません。正直どの項目を設定しているのか良く判らない時もあります。またカレンダー設定ですので、一度SW3を押して次の項目に入った時にはひとつ前に戻ることが出来ません。再度SETスイッチを入れな直すか設定を1周して戻ってきたところで再設定下さい。申し訳ございません。
(設定モード2)
残った時、分を設定します。秒は設定出来ません。SETスイッチを戻した時に0秒スタートするようにしてあります。時報に合わせてSETスイッチを戻すときっちり時刻を合わせられます。今回はSW4を使用しませんでした。皆さんで面白い使い方を考えてみて下さい。
時計付き4ヶ月温度記憶装置を作ろうの赤外線ワイヤレス操作
ちょっとひとやすみのコーナーで紹介しました赤外線コントロールユニットを使用してワイヤレスで操作出来る様にしてみました。赤外線コントロールカーCAULを使いました。
(CAULを改造して4つのスイッチを押せるようにしました)
(操作ユニットです)
時計付き4ヶ月温度記憶装置を作ろうのPCへのデータ転送
データの吸い取りは専用のソフトで行います。前回のデータロガーで作った時のものと同じソフトを使用します。使い勝手はあまり良くありませんが、皆さんで工夫してみて下さい。ちなみにVB2005で作ってあります。(終了操作の使い勝手がよくありません。申し訳ございません。)
PCへ転送するデータは最終的にはエクセルで開ける内容にしてあります。(拡張子をCSVにして保存して下さい)。エクセルでどのように開けるかを示しておきます。
(PCで吸い取ったデータをエクセルで開く)
測定日と24時間の温度が順次記載されます。後は皆さんの自由にして処理加工お願いいたします。S-RAMの中身は127日間のデータがループして記憶されますので日付を見て判断して下さい。ちなみに日が変わった時には1日分の温度データを一度「tt」の文字で初期化しますので、データの内容を見れば今どこの辺りに記憶されているのかは一目瞭然です。上記データのサンプルはこの製作を行っている部屋の気温の変化を示しています。この時期面白いような気温の変化が無く申し明けございません。もう少し経って本格的な秋になればもっと大きな変化をすると思います。時計精度についてはそれなりですので、誤差が大きい場合は水晶発振回路のコンデンサを各自調整お願いいたします。
時計付き4ヶ月温度記憶装置を作ろうのPC側データ読み込みアプリ
PC側のソフトはまだ未熟ですが、簡単に操作方法を記します。
(PC側データ読み込みアプリ)
最初に接続するCOMポート番号を記入して下さい。USB変換コネクタを使用される方は特に番号に注意を払って下さい。COMポート番号は「マイコンピュータ」「プロパティ」「ハードウェア」「デバイスマネージャ」で内容を確認して下さい。記入後「接続」ボタンを押して下さい。装置のSW6を長押しすることでPC側にデータが吸い込まれます。転送は数秒で終了します。
受信が全て終了するとアプリのボタンを押せる状態となりますので「名前を付けて保存」を押して下さい。ファイルセーブのダイアログが現れるので好きなファイルネームで保存して下さい。CSVの拡張子でセーブすればエクセルで使い勝手の良いデータと開くことが出来ます。
このアプリを皆さんのPCで動かす場合には次のふたつのファイルをインストールする必要があります。
Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)
Microsoft .NET Framework 2.0 日本語 Language Pack (x86)

マイクロソフトのHPにありますのでGoogleで検索するなどして探して下さい。
時計付き4ヶ月温度記憶装置を作ろうの大完成の姿
それでは大完成した姿を披露いたします。
(本体内部です。結構見栄えは良いです)
(7セグメント表示内部です)
(赤外線ユニット内部です)
(本体外観です)
(7セグメント表示部です。今回は緑色のLEDにしました)
(赤外線ユニットはコンパクトに)
(全体ではこんな感じです)
私は本体、表示部、赤外線ユニットを個別にしましたが、全て一体化しても良いかと思います。
時計付き4ヶ月温度記憶装置を作ろうのマイコン側ソースファイル
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全てのファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
時計付き4ヶ月温度記憶装置を作ろううのPC側アプリ
実行ファイルはこちらからダウンロードして下さい。ダンロード後は適当なフォルダ上にて解凍後実行して下さい。過去の製作のデータロガーで使ったものと全く同じソフトです。
今回の製作はは如何だったでしょうか。ハード部分は夏休みに一気に作製しましたが、ソフトの開発が遅れたため今回の発表となりました。しかしながらソフトの確認が全て終わったわけではありませんので今後の改良が必要かもしれません。またもっと使い易い機能などの追加が今後あるかもしれません。次回は久しぶりにラジオ関連の装置の製作を発表する予定です。ソフビ改造の可能性もありますが・・・・・
これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります。

NEC78K0/K0Sマイコン開発室へ戻る