ADIF のページ(暫定版) Last update 11/17 '03

動作確認はこちらのアプリケーション(ADIF.exe for Windows)でできます。
C++(VC6/MFC)用サンプルプログラムはこちらから。



このページには、以下のバージョンのインタフェースに関して記述してあります。
    ソフトウエア(PIC) ADIF Ver.1.00/基板 Ver.1.03


銅箔の茶色っぽい基板の場合は、こちら→ADIF PIC Ver.1.00/基板 Ver.1.02
(違いは特にありませんが…)



●ADIF仕様:
入力:16チャンネル8ビットAD入力
   0V〜5Vの電圧を0〜255までの数値として計測できます。
   センサが16個まで同時につけられます。
出力:16チャンネル1ビットTTL出力
   電気を入れる、切るという操作ができます。
   つながる装置は同時に16個まで。
   たくさん電気が流れるものは、個別の回路が必要になります。
   (10mA程度まで。LED 程度なら直接接続可能)
   #もしかすると30mA程度いけるかも?
PCとの接続:RS−232C(シリアル)
   ケーブルは、メス−メスタイプの9ピンD−SUBケーブルを使用します。
   シリアル接続は一般的な接続方法なので、Houdini の他、Director、
   C言語、MAX などの言語やスクリプトで制御できます。
   シリアルコネクタの形状変換を使用すれば、マックでの使用も可能。
   (ただし、モデムポートやプリンタポートといったシリアルポートを使
   用するので、シリアルポートを持つマックでないと不可)


●入出力端子
i-cube と似た形式
正面向かって左から
    「アナログ入力 0, 1, 2, ..., 14(E), 15(F) チャンネル」、続いて
    「デジタル出力 0, 1, 2, ..., 14(E), 15(F) チャンネル」。
部品面を上として、上から、+5V、信号入力・出力、GNDの順。

    【コネクタ正面からの図】
    アナログ入力                   |デジタル出力
    0 1 2 3 4 5 6 7 8 9 A B C D E F|0 1 2 3 4 5 6 7 8 9 A B C D E F :チャンネル番号
    ---------------------------------------------------------------
    o o o o o o o o o o o o o o o o|o o o o o o o o o o o o o o o o :+5V
    o o o o o o o o o o o o o o o o|o o o o o o o o o o o o o o o o :Signal(IN/OUT)
    o o o o o o o o o o o o o o o o|o o o o o o o o o o o o o o o o :GND
    ↑
    縦一列(3つの端子)一組がひとつのチャンネルに対応。
    一番左がアナログ入力0チャンネル。一番右がデジタル出力16(F)チャンネル。
    ※等幅フォントにすると表が揃います


●接続条件
38400bps, non parity, data bit 8bit, stop bit 1bit

●コマンド一覧
    コマンド    結果      内容
    "Dxxxx":    "D*"      全チャンネルへのデジタル出力
                    出力設定ビット列の MSB が 15ch、LSB が 0ch に対応
                    出力設定ビットが 0 で 0V, 1 で 5V が出力される
    "Hx":      "H*"      x チャンネルへのデジタル出力(5V)
    "Lx":      "L*"      x チェンネルへのデジタル出力(0V)
    "I":      "Ixx...xx*"("xx"が16組)
                    全チャンネルからの A/D 入力(8bitx16ch)
                    先頭が 0ch、末尾が 15ch に対応
    "Ax":      "Axx*"     x チャンネルからの A/D 入力(8bit)
    "*":              送信したコマンドの実行

   コマンド中の "x" は一文字の十六進数文字(0-9,ABCDEF)で、1ニブル(4ビット)に対応。
   コマンドは、最後の "*" を含めて、同時に32文字まで送信可能。
   送信されたコマンドは、"*" を受け取った時点で頭から順に一つずつ実行されます。
   送信されたコマンドに無効な文字が含まれていた場合は、"!" が返され、
   それ以降の文字は無視されます。
   ※すべて ASCII 文字であり、数字は十六進数文字の ASCII CODE を送る。
    コマンドに改行文字は不要(エラーになります)

●コマンド使用例
− 入力チャンネルすべてのアナログ値を取得する
    送信:I*
    結果:Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*
            先頭から xx を二組ずつに区切ったものが、16個。
            先頭から順に0、1、2、、チャンネルに対応。
− 入力チャンネル13番のアナログ値を取得する
    送信:AC*    C は 13 を示す十六進数
    結果:Axx*   xx は結果を示す2桁の十六進数(00 - FF)
− 出力チャンネルすべての出力を 0V にする
    送信:D0000*
    結果:D*
− 出力チャンネル0番の出力を 5V、その他全てを 0V にする
    送信:D0001*  LSB が0チャンネルに対応
    結果:D*
− 出力チャンネル5番の値を 5V にする
    送信:H5*
    結果:H*
− 出力チャンネル5番の値を 0V にする
    送信:L5*
    結果:L*



★接続実験のためのPCとの接続
接続するPCでハイパーターミナルを起動し、COM1を「38400ビット/秒、デー
タビット8ビット、パリティなし、ストップビット1、フロー制御なし」に設定してくだ
さい。シリアルケーブルをPCのCOM1に取り付け、もう一方をインタフェースに取り
付けてください。接続できたら、キーボードから大文字で「V*」と入力してください(こ
の先もすべて改行は不要です)。バージョン情報が表示されれば接続成功です。


★動作確認
作ったセンサ(可変抵抗器:VR)とアクチュエータ(発光ダイオード:LED)を使っ
て動作確認します。32列のコネクタは、左半分の16列がアナログ入力用で、右半分の
16列がデジタルの出力になっています。一列は3段で、上から+5V、真ん中が入力/
出力、一番下がGND(0V)です。

まず、LEDを使いデジタル出力を確かめます。一番右の16チャンネルにLEDを接続
して、キーボードから「HF*」と入力します。これでLEDが点灯するはずです。さら
に、「LF*」(大文字L、F、アスタリスク)と入力します。これでLEDが消灯しま
す。これを順に左へ、1チャンネルまで試し、正しく動作することを確認してください
(真ん中の文字を、EDCBA987654321と替えていきます)。

次に、VRを使いアナログ入力を確かめます。ここで作ったVRは絶対にデジタル出力端
子につなげないように注意してください。最悪ICやVRが発熱して壊れます。一番左の
1チャンネルにVRを接続します。キーボードから「A0*」(大文字A、ゼロ、アスタ
リスク)と入力します。VRを回転させて同様に入力してみてください。一番左にまわし
きったときに「A00*」、一番右にまわしきったときに「AFF*」と画面に出力され
るはずです(左右が反対の場合もあります)。この00やFFというのがVRからの電圧
を示しており、二桁の16進数になっています。VRの中間では、80に近い値になりま
す。これを順に16チャンネルまですべて試し、正しく動作することを確認してください。

後は複数のVRやLEDをつなげてみて、正しく動作するかどうかも確認しておいてくだ
さい。


◆Q&A
Q1 動作しない。シリアルケーブルを外すと LED が点灯するがケーブルをつなぐと消える。
A1 古い基板(Ver.1.02)に不具合が見つかっていますので確認してください。→不具合のページ

Q2 センサーがつながっていない入力の値が安定しない
A2 このインタフェースは入力感度がよいために、入力がつながっていない場合には、隣の
入力の影響を受けてしまいます。センサがつながっている入力の値は正しいので、気にす
る必要はありません。どうしても接続しない入力の値を安定させたい場合には、抵抗でも
ジャンパでもいいので、1MΩ以下で各チャンネルの入力を GND に接続してください。

Q3 具体的な使い方は?
A3 、、、