4チャンネル10bitアナログコンバータ "豆AD"

Topics PICC Pro lite mode PICC Lite Actual use AD convert Software USART PIC12F675

LCD機能を追加し、チャンネル拡張したバージョンを公開しました

概要

もう、これでもかというほど簡単なアナログ入力の値をRS232Cにコンバートする装置です。実験なのでボリウムをつけていますが、0〜5ボルトの入力で10ビットデータが4系統使えます。アナログ測定において、センサーの近くでこの回路を構成して、即時にデジタル信号に変換後伝送することは、精度や伝送コストにおいて大きなメリットがあります。

PIC12F675の機能の一つであるADコンバータを使いました。HITECH-Cのサンプルライブラリにあるソフトウエアのserial.cを改造して実現しています。このソースは、12F629や16F84Aなどの、ハードウェアSCIの搭載されていないPICマイコンでもHi-tech PIC C言語で簡単にシリアル通信を実現することが可能です。通信スピードの上限は、内蔵4MHzで19.2kbpsまでです。



以前作成した超ローコストRS232Cにも表示する事ができます。チャンネル0をテスターでも計ってみました。LCDでは1.520と表示され、テスターでは1.52Vを表示しています。(テスターのマイナス表示はテスタープローブを逆につけた為です)
製作はブレッドボードを使いました。


そのままターミナルソフトにも使用できます。(改行などは、ソフトを変更して使用してください)

データロガーとしての応用例(別のページに移動しました)

ソフトウェアのダウンロード

Date Download MPLAB
Ver.
PICC
対応Ver.
Folder Comment
2008/11/11 ターミナルソフト用4チャンネルADコンバータ変換

ver2.01
8.10以降 PICC Pro lite mode
9.60PL4b2729
以降
C:\picsrc\piccpro\adc_uart2 PICC Pro liteモード対応版。

通信フォーマット 19200bps 8bit パリティなし ストップビット1
このサンプルは、RS232Cより受信したキャラクターにより、表示方法を指定できます。
a : 全てのADコンバータの値を表示
0〜3:各チャンネルの値を表示
c :コンソールのクリア
l :全てのADコンバータの値を永久表示(一度実行すると電源断まで止まらない)
2005/2/5 232エクセルロガー用豆ADCソフト一式 6.xx以降 PICC Lite v8.05以降 C:\picsrc\bean_ad3 ターミナルソフト用に区切り文字の変更と送信電文の変更を行ったものです。
232エクセルロガーのスプリクトファイルとしてこれ(txt)もメモ帳などでコピーして、エクセルのファイルと同一の名前.txtとして同じフォルダに保存してください。
2004/6/29 ターミナルソフト用ソフト一式(ZIP圧縮) 6.xx以降 PICC Lite v8.05以降 C:\picsrc\bean_ad 通信フォーマット 19200bps 8bit パリティなし ストップビット1
このサンプルは、RS232Cより受信したキャラクターにより、表示方法を指定できます。
a : 全てのADコンバータの値を表示
0〜3:各チャンネルの値を表示
c :コンソールのクリア
l :全てのADコンバータの値を永久表示(一度実行すると電源断まで止まらない)
2004/6/29 超ローコストRS232Cモニター用ソフト一式(ZIP圧縮) 6.xx以降 PICC Lite v8.05以降 C:\picsrc\bean_ad2 通信フォーマット 19200bps 8bit パリティなし ストップビット1
スケール表示を電圧表示に対応。受信は使っていませんので、伝送を3本にする事もできます。
この組み合わせであれば、LCD側の74HC14を省く事もできます。その場合は12F675側のソフトのserial.cのpolarityを1にして、且つお互いのPICを同じ電位で動かす必要があります。
2004/6/29 ソフトウエアシリアル通信ソース
(2004/6/29)
6.xx以降 PICC Lite v8.05以降 - 12F629,675,16F84,16F627Aに使用できます。16F627A等はSCIをハードウエアで持っていますが、外付けのRS232Cドライバーを省きたい時や簡単な通信に威力を発揮します。使用方法は、ソースの中をご覧ください。このソースは、上記2つの圧縮ファイルへ既に入れてあります。

※Folderで指定されているフォルダにmain.c等の全てを解凍すれば、プロジェクトがそのまま使用可能です。

これらをビルドする時は、コンパイラオプション Enable assembler optimizationsにチェックが必要です。

※このソフトは、内部クロックを使用しており、そのクロックを使用して通信タイミングを生成している為、OSCCALデータが大変重要になります。OSCCALデータ値は(BGも含む)チップより予め読み出しておいて、PICの裏あたりにマジックなどで数字を控えておいた方が良いと思います。万が一OSCCALを消して不明になってしまった場合は、このソースをコンパイルしたこれを書き込んで調整してください。PICKit2などで、OSC伽リブレーションなどの処理を行い、適正な校正値にしてください。

回路図


※ボリウム(VR1〜VR4)は10KΩ(B)を使います

部品代と入手先
抵抗は1本1〜5円の世界です。半固定抵抗 50円位x4=200円程度(実験用ですので、実際には使用したいアナログの装置を繋げる事になります)、PIC12F675 150円(秋月),DSUB9メスコネクター 200円(秋月)、ダイオード 1S1588相当品 30円、電解コンデンサ30円、セラコン0.1μファラッド 10円、その他部材(基板、配線材、ICソケットなど)で300円程度。1000円でお釣りが来ると思います。

通信の電気レベルについてはRS232Cのレベルではありませんが、パソコンとのやり取り程度の実験としては十分な性能が出ます。
入力は100KΩで十分電流を抑え、電圧はローサイドはPICの保護ダイオード、ハイサイドは外付けダイオードにてクランプされます。出力は、パソコン側のレシーブが2Vくらいを境に判断しているものが多いのでこれで実用になります。
真のMAX232Cなどのレベルコンバータを使用して通信する場合は、serial.cのdefine文にシリアルの極性をすぐに変えられるようにpolarityを設けてあります。

電流はボリウムを省いた場合の実測値で約0.87ミリアンペア@5Vでした。(PICのスペックシートの通り)
ボリウム4つを繋げると2.69mAまで上昇します。
回路図中のダイオードは、MCLRの部分のポートである為、これがないとRS232Cの信号によって9V以上の電圧が掛かる場合があり、そのときにプログラムモードになるなどの誤動作を避ける為にいれてあります。外付けダイオードは、Vfが0.6V程度の一般的なシリコン小信号用ダイオードで十分です。

AD変換の精度をあげる場合は、電源を精度の良い電源にしたり、Vref端子に高精密の比較電源回路を入れるなどをすれば可能です。もっとも、サーボ等のボリウムの角度の位置検出を目的に使用する場合は、その電源の電圧比が変わりませんので、電源の精度もそんなに気にする必要も無いでしょう。

応用として、ストロベリーリナックスのUSBシリアルを組み合わせれば、USBでデータが取れるし電源も取れるので大変便利です。

ビルドの方法

ダウンロードしてきたファイルを適当なフォルダーに解凍します。
MPLABを起動し、プロジェクトウイザードを選択します。
プロジェクトウイザードのオープニングメッセージが表示されます。次へ進みます。
ステップ1 選択するデバイスはPIC12F675を選択します。
選択したら、次へ進みます。
ステップ2 以下の通りになっていれば、次に進みます。アクティブツールサイトがHI-TECH-PICC Toolsuite以外であれば、プルダウンメニューより選択しなおします。(この部分は統合の部分で説明してありますので、設定などがされていない場合は、こちらを参照ください。
ステップ3 プロジェクト名とそのフォルダー(ディレクトリ)を決めます。
ステップ4 使用するファイルを選択します。左のファイルをクリックして選択してAddを押せば右へファイル名が入ります。
チェックボックスは同じフォルダーでの選択なので、特にしなくても問題はありません。このチェックボックスは、別のフォルダからファイルを持ってくるときに、このプロジェクトフォルダに同一物をコピーしたい時にチェックします。
サマリー プロジェクトパラメータを確認します。問題が無ければ完了を押します。
以下の様になれば無事に取り込めたことになります。
このプログラムは、通信のタイミングをソフトウェアで実現しています。このままビルドして使用すると、ソフトウェアタイマの誤差が大きく、通信は不可能です。解決方法は、アセンブラ時のオプテマイズ(最適化)を行う事で回避することができます。そこで、以下の設定を行います。
ビルドオプションアイコンをクリックします。
PICC Compilerのタブをクリックし、Global optimize level =1以上とし、
Enable assembler optimizationのチェックボックスにチェックを入れ、OKを押します。
ソースを覗いてみましょう。プロジェクトウインドウの部分の該当ファイルをダブルクリックすることで表示され、編集可能となります。

ビルドを行って、書き込み可能な形式にします。Build Allボタンをクリックします。
エラーが無ければ成功した事を示すメッセージが表示されます。
エクスプローラ等でフォルダ内を開き、書き込み用のデータ(HEX)が出来上がっていることを確認します。これをPICライタで読み込んでPIC12F675へ書き込めば動作するようになります。



2008/11/6 Hitech PICC Pro Lite mode に対応したバージョンを公開
2005/2/5 232エクセルロガー対応版ソフト公開
2004/6/29 serial.cのバージョンアップの為、説明文を修正
2004/6/13 超ローコストRS232Cモニターにも使えるようにしました。
2004/6/3 ファイルのビルド方法を追加
2004/6/2 初版

(C)2004,2008 air variable All Rights Reserved..

ホーム