電圧ロガーを、改良中
愉しみながら、ポツリポツリと製作している「電圧データ・ロガー」、試に実データを測ってみると、「測定範囲の設定」が中途半端で、あまり良くない感じ。(左図は、改造途中の表示画面)
通常、良く使うアナログ型マルチ・テスターなどを参考に見てみると、フルスケールを「10」、「50」、「250」にしてあったり、あるいは、「5」、「25」、「50」、「125」にしてあるものなど様々だ。
また、デジタル型では「0.2」、「2」、「20」、「200」などにしてあるものも見掛ける。
一方、この電圧ロガーは、許容最大入力30Vを意識して、「3」、「30」の切替式にしたのだが、実際に使ってみると、カバー範囲が「0〜3」ではやや中途半端で、枠からはみ出てしまうこともあるし、カバー範囲が狭過ぎる感じがあり、またレンジ数も2段では少な過ぎだ。
そこで、このロガーも、簡便性と経済性を考えた上で、「max50V」、「max5.0V」、「max0.5V」の3段階切替方式にしてみた。
ただ、レンジ切り替えが手動だし、「VBプログラム」の方もそれに連動出来ていないので、更に改良が必要だが、取り敢えず、3段切替方式は、上手く行きそうだ。(左上図<クリック>)
−−−−−−−−−−−−−−−−−−−−−−−−−
3段階に変更
元々、2段階を考えたのは、(一番拙い方法≒部品を決めてから、仕様を決め直したのだが、)偶々、超小型の切替スイッチが1個70円と手頃で、(小粒で辛い山椒のようで、)偉く気に入ってしまって、“必ずこれを使おう!”と決めたため。(苦笑 左写真の右下の赤いSW)
でも、「単純両切型」だと、2段階にしか出来ないが、「中立OFF型」だと、その機能を上手く利用すれば、3段階に出来る!
それには、オペアンプのフィードバック出力を分割入力する可変抵抗VR2個を使い、適切に切換えればよい。...それで、決めたのが、左写真<クリック>の回路(赤印が切替部)。
使ったのは、100KΩVR、5KΩVRで、オペアンプでの増幅度は、x1(上)、x10(中)、x100(下)になるように工夫して設定。(VRは1個60円)
尚、オペアンプの最大出力5Vなので、どんな入力もこの範囲内に落とし込まねばならない。
なので、入力50Vmaxなどは5Vmaxにするために、入力部に1/10の電圧減衰100KΩ VRを入れた。
尤も、30V以上の入力は、「デジタル電圧計」の許容最大値を超えるので、禁止!
その代わり、5V入力以下は後のオペアンプでx10、x100にして、0〜5Vの範囲になるようにした。
(蛇足だが、昔はADコンバータの能力なんか、大体6ビットが標準で、8ビットなど製造が難しく高価・高級品だったが、今は、これのように1チップ内に4chも入っていて、大変有り難く良い時代だ。0〜5Vを8ビット=255段階のデジタル信号で扱えるなんて、贅沢な話だと思う。でも、0.01V〜29.9Vの広範囲に見たいと思っても、そう簡単には問屋が卸さない。結構手間が掛かることだ)
課題
測定範囲を3段階にしたのはいいのだが、「VBプログラム」上でも、やはり手動で切り替えねばならない(どんくさ)方式だ。(左写真<クリック>の赤印)
実は、これを自動化したい!そして、「検出入力用端子」も4ポート残っている。(左図の赤印)
ところが、このポート(の状態)を読み出す方法が、未だ見付けられない。
何せ、ハードウェア・キットのオマケで付いて来たソフトで、ろくすっぽ説明も無い代物なので、ポートの読み出しなどは、自分で試行錯誤的に探し出さなくてはいけないらしい。
使われているマイコンは、「PIC16C715」だと分かっているのだが、分からないのは、その中に組み込まれたプログラムの機能仕様がどうなっているのか?ってこと。
(何処かに糸口が無いものか?と探してはいる...もしかしたら、“i command”なのかもしれないが、どう使うか?後述の参考資料は分析用)
上手くプログラムが改造出来れば、ロガー端末側の“SW切替”と連動して、自動で、PC側の“表示切替”も出来るはずなんだが。
なので、もう少し根を詰めて、元の「VBプログラム」や「PICプログラム」を解析して、「ポートの読み出し方法」を調べてみよう!と思っている。
雑感
今、「赤くて小さくて安いSW」が気に入っているのだが、次に使おうとしているのが、手元にもあるのだ。(少し大型だが、問題は無し)
はてさて?やはり、超小型SWを追加で買ってくるか、あるいはこの手持ちを使うか?ささやかに悩んでいる。(左写真 苦笑)
こんな風にして、もっと良い方法が無いものか?あーでもない!こーでもない!と、一人悩んでは、このロガーを組み上げて来ている。z(^^;? (左写真クリック)
(まぁ、のんびりやっているのだが、でも、確実に“ボケ”から遠ざかっているだろうと思えるので、しっかり頑張ろう!笑)
解析用資料の抽出(練習中!)
左リストは、添付されていたPIC16C715用アセンブリ・プログラムの一部で、“ポートB群の状態”を読み出し、RS232C出力へ渡すルーチンのようだ。
「VBプログラム」の方で、“i command”を発して、このルーチンを呼び出して、送り返されて来たデータを分析すれば、RB4,RB5,RB6,RB7の各ポートが、“H”か“L”かが分かるはず!
でも、8ビット・データの内の下位4ビットは、RS232C通信やEEPROMの書き込み、読み出しなどに使っているようだから、要注意!
補助資料:Microchip社のPIC16C71xプログラミング資料