エレファイン

I/Oモード



I/OモードでI/Oを制御するために下記の3つのコマンドがあります。
SETPINS 0x63 デジタル出力をH、または、Lにします
GETPINS 0x64 全ての入出力端子の状態を読み出します
GETAD 0x65 アナログ入力値を読み出します

SETPINS
SETPINSコマンドは、出力端子として設定された端子だけで動作します。デジタルまたはアナログ入力ピン、またはI2Cまたはシリアルのために使用する端子は影響を受けません。コマンドは次のとおりです。

SETPINS コマンド (0x63) 端子状態

端子状態バイト内のビットで、各端子のH、または、Lを設定します。
7 6 5 4 3 2 1 0
x x x x I/O4 I/O3 I/O2 I/O1

返信は1バイトで、成功した場合は、ACK(0xFF)で、失敗した場合は、NACK(0x00)です。

GETPINS
これは、全てのデジタルI/O端子の現在の状態を取得します。単に1バイトを送信します。
GETPINS command (0x64)

返信は、1バイトで上記の端子状態バイトと同様です。


GETAD
アナログ入力値を読み出します。これは、2バイトのコマンドです。
GETAD コマンド (0x65) チャネル (1〜4)

GETADコマンドで要求されたチャネル(I/O端子番号)をA/D変換し、2バイトの結果を返します。返信は、上位バイトと下位バイトの16ビットです。

結果上位バイト 結果下位バイト
A/D変換は、0Vから電源電圧までの範囲を10ビットの分解能で行われます。よって、値は、0〜1023です。
たとえば、変換値が678の場合、16進数では、0x02A6です。よって、上位バイトは0x02で下位バイトが0xA6になります。
また、結果が0x00、0x3Dであれば、16進数で0x003D、10進数で61です。
もし、アナログ入力として設定されてないチャネル、または、1〜4以外の番号を指定した場合は、0x0000が返信されます。