PIC-logger

last updata : 2011/04/25

PIC-logger 【+5V~-5V 4チャンネル 電圧ロガー】

桜
2011年の桜

PIC-loggerを作る前の日に行ってきました。

今年は大きな災害があり、早急な復旧復興を願っています。

簡易測定器を作る。

PIC-logger

小型の太陽電池を使って充電できる物を作るかなと思ったのですが、 その充放電特性を取るためにはテスターでは定期的に測るのは難しいです。

そこで、手持ちに有る部品で簡単な電圧ロガーを作ることにしました。

構 想

ネットで「電圧ロガー 自作」で検索すれば、色々でてきます。 液晶表示してSDカードに記録する単体動作の物が多いようです。 その中で、マイナス側(0V以下)まで測れて回路が簡単なものは無かったです。

その中で気になったのは、8pinのPICを使いデータの収録はパソコンと言う形のロガーでした。 複数のwebがありますから、まあ使えるのかと。 それとPIC12F683は、使い慣れているという所がありました。

そこで構想としては

  • PIC12F683を使い4チャンネルをシリアルで送る。
  • オペアンプを使い-5V~+5Vの入力にする。
  • -5Vを生成する。
  • 精度は、-4.5V~+4.5Vで1%以内 0℃~30℃で3%以内を目標にする。

としてみました。

回路図

回路図

回路としては、「オペアンプで受けてPIC12F683でA/D変換してシリアルでパソコンに送る。」 と言う単純な構成です。

回路/ファームウェア(PICのプログラム)では、出来るだけノイズの影響を排除するようにしています。

アナログ入力部

オペアンプLMC6484Aにてボルテージフォロアで受けています。 次段が反転増幅(?)になっている為入力抵抗を高くすることが目的です。

次段のオペアンプは、-5V~+5Vの入力を5V~0Vの入力範囲に変換する回路です。 まず反転増幅回路を使い増幅率を1/2倍しています。 簡単に言うと入力の半分の電圧にしています。 それと、オフセット電圧(+1.666V)ををかけて電圧位置を調整します。

基準電圧部

オペアンプの下のLT1004CZ-2.5というリファレンスICで2.5Vを作っています。 この電圧を基に調整をして精度を上げていきます。

1.666Vもここで作っています。 今回は半固定抵抗を入れていますが、計算上も実用上も100kΩ/200kΩの分圧で十分です。

ローパスフィルタ(LPF)

抵抗とコンデンサによるパッシブフィルタです。 最初は入れてなかったのですが、無いとノイズがA/D変換に影響を与えます。

1.5kΩ/0.1uF のLPFでカットオフ周波数は、約1kHzです。

PIC12F683

8ピンPICです。手軽に使えて好きなPICですね。

A/D変換の基準に電源電圧を使っているので、 DC/DCのノイズ低減のためインダクタとかを入れて対策を施しています。

DC/DCコンバータ

DC/DCコンバータ
真ん中の下の黒いのがDC/DC-IC

DC/DCコンバータのRT9266PE(SOT-23-6)を使って+5Vと-5Vを作っています。

昇降圧回路にしてありますので、入力電圧が+7V~+3Vまで出力電圧を維持できます。 ただ、この回路がノイズ源になります。 それでも微小電圧を測定するわけではないので十分実用になります。

一般的なICじゃないので、後で秋月から購入できるICで回路を組みたいと思います。

DC/DC コンバータ HT7750A (2011/05/19追記)

AE-UM232R

昔サンプルとして秋月から買った USB-シリアル変換モジュール です。 電源もここから取れるので一石二鳥です。

JP1は、2-3(VIO-VCC)接続 JP2は、ショートで使います。

採用の理由は「私のパソコンにはRS-232Cのコネクタは無いんですよね。」です。

製作上の注意点

まずは、オペアンプに使っている100kΩ抵抗を選別します。 (抵抗値が[100k *]の物)

単純に各チャンネルの増幅率を合わせるためです。 今回は5%品を選別しましたが、温度特性を良くするためには1%品を選別すると良いです。

選別して実装の仕方は、

  • テスターで抵抗値を一本づつ測定する。
  • 3桁同じ抵抗値の物を3本見つけ出す。
  • その3本を一つのオペアンプに使う。

問題は、抵抗の比率ですから各チャンネルの抵抗値がずれてても大丈夫です。 1.666Vを作る分圧抵抗もこの方法で選んでもOKです。

次に、アナログ部(アナログ入力部からフィルタまで)は、GNDで囲みます。 その他のGNDとは、一点で接続するようにします。

アナログ回路

ここの部分で一点接続

完成 完成した回路

ソフトウェア

ダウンロード

PIC12F683 用 ファームウェア Version D2 loggerD2.zip

Windows7(xp) 用 プログラム Version 1.2.0 pic-loggerVer120.zip

ファームウェアは、Hexファイルです。 書き込んで使ってください。 ソースは、コメント等をきれいにしたら公開するかもしれません。

プログラム(PIC-logger.exe)には、説明書は付けてません。(まだ作っていないので。) ここで簡単に説明します。

PIC-logger 説明書

PIC-logger

右は調整後の表示です。

調整が済まないと、各チャンネルの表示に不正な文字が表示されます。

各部の説明

1. Channal0 ~ Channal3

各チャンネルの電圧を表示しています。 50mS毎に表示を更新しています。

2. グラフ表示部

ログ記録とは別に動作確認用グラフ表示機能があります。

チャンネル1は赤色、チャンネル2は黄色、チャンネル3は緑色、チャンネル4は、青色で波形表示します。

最大で1チャンネル当たり612000ポイントのデータを保持してグラフ表示します。

3. COM0 ~ COM20

シリアルポートを選択します。 通信設定は、9600bps 8bit 1stop-bit 固定です。

4. 電圧調整...
電圧調整

ボタンを押すと右のダイアログが開きます。

初めてハードウェアを接続したときは、必ずステップ1から順番に調整していきます。

ステップ1では、REF端子を測定したテスターの値を書き込みます。 この値を基にテスター同じ値がでるようになります。

ステップ2は、各測定端子をGND端子に接続してボタンを押します。 この結果は、PIC12F683のEEPROMに書き込まれます。 この結果を基に電圧オフセットを調整します。

ステップ3は、各測定端子をREF端子に接続してボタンを押します。 この結果は、PIC12F683のEEPROMに書き込まれます。 この結果を基に電圧ステップを調整します。

5. 計測設定...
計測設定

ボタンを押すと左のダイアログが表示されます。

記録用フォルダは、ログファイルが生成されるフォルダを指定してください。 空白や、無効なフォルダ名の場合は、エラーになります。

サンプルのサンプリング間隔は、最小1秒から最大60分間隔でデータを記録していきます。

サンプルの各処理は、現在の所「オーバーサンプリング処理を行う。」だけです。 精度的には他の二つより良いですが遅くなっています。

6. 記録開始/記録停止

このボタンで、ログファイルを作成します。ファイル名は自動生成します。

ファイル名構成は、plogYYMMDD_hhmmss.csv です。 YYMMDDは、開始年月日 hhmmssは、開始時間になります。

記録開始すると、一端グラフ表示をクリアします。

7. その他...
その他

グラフ表示設定は、電圧表示範囲と経過時間を設定できます。

電圧表示範囲は、0V~+5V と -5V~+5Vの二つが選べます。

経過時間は、1秒/div,10秒/div,30秒/div,1分/div,10分/div,30分/divの六つから選べます。

「レジストリを削除して終了する。」をチェック入れて、[ OK ]を押すと レジストリ情報を削除してプログラム自身を終了します。 この状態で、アンインストール(プログラムの削除)を行ってください。

そうだ 忘れてた……

1週間の突貫工事でプログラムを作ったのでアイコンは有りません。 プログラムの中でアイコンが一番面倒です。

ログファイル

ログファイルは、csvファイルで下のようになっています。

PIC-logger 記録ファイル 開始日時 2011/04/25 14:10:14
サンプル間隔 : 1秒
"Date","Time","Channel0 (V)","Channel1 (V)","Channel2 (V)","Channel3 (V)"
"2011/04/25","14:10:14",1.35,0.00,0.00,0.00
"2011/04/25","14:10:15",1.35,0.00,0.00,0.00

最初の2行は、開始時間と、サンプル間隔を表示しています。

3行目がヘッダ行です。4行目以降がデータになります。

ヘッダ行,データ行については、文字列は「"」で囲んでいます。数値はそのままカンマで区切っています。

免 責

情報は出来るだけ正確に書くつもりです。ただこの記事を見て作ると思ったときは、 個人の責任において作業を行なってください。 データの喪失や機器の損傷が有っても、一切の責任は取れません。