I/Oモード
I/OモードでI/Oを制御するために下記の3つのコマンドがあります。
SETPINS |
0x63 |
デジタル出力をH、または、Lにします |
GETPINS |
0x64 |
全ての入出力端子の状態を読み出します |
GETAD |
0x65 |
アナログ入力値を読み出します |
SETPINS
SETPINSコマンドは、出力端子として設定された端子だけで動作します。デジタルまたはアナログ入力ピン、またはI2Cまたはシリアルのために使用する端子は影響を受けません。コマンドは次のとおりです。
端子状態バイト内のビットで、各端子の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バイトを送信します。
返信は、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が返信されます。