「GROVE対応シリーズで始めるUnity電子工作入門」の正誤表です。
「GROVE対応シリーズで始めるUnity電子工作入門」の正誤表です。
P19 赤色の下線部分が誤りです。
(誤) デジタル出力(Digital OUTPUT=0)かデジタル入力(Digital INPUT=1)
(正) デジタル入出力(Digital OUTPUTまたはDigital INPUT=0)
※第一パラメータ(PinF)の値は0(Digital OUTPUTおよびINPUT)または2(Analog INPUT)を指定します
本書では誌面の都合で割愛しましたが、デジタル入力値取得メソッド(Mcp2221_GetGpioValues)を使用する場合は下記のようなコードを作成して下さい。(例では実行時にGP2およびGP3のデジタル入力値を取得してConsoleに出力します)
(略)
[DllImport("mcp2221_dll_um_x64")]
static extern int Mcp2221_GetGpioValues(IntPtr handle, byte[] inputValues); //デジタル入力メソッドを定義
[DllImport("mcp2221_dll_um_x64")]
static extern int Mcp2221_Close(IntPtr handle);
uint vid = 0x04D8;
uint pid = 0x00DD;
IntPtr handle;
uint noOfDevs;
// Start is called before the first frame update
void Start()
{
Mcp2221_GetConnectedDevices(vid, pid, ref noOfDevs);
if(noOfDevs > 0)
handle = Mcp2221_OpenByIndex(vid, pid, 0);
//GP0=(Digital Outout), GP1=(Digital Output), GP2=(Digital Input), GP3=(Digital Input)
byte[] PinF = new byte[4] {0, 0, 0, 0};
byte[] PinD = new byte[4] {0, 0, 1, 1};
byte[] PinV = new byte[4] {0, 0, 0, 0};
Mcp2221_SetGpioSettings(handle, 1, PinF, PinD, PinV);
Mcp2221_GetGpioValues(handle,PinV); //GP0~3のデジタル入力値を取得(デジタル入力設定のピンのみ有効値が入る)
Debug.Log("GP2="+PinV[2]);
Debug.Log("GP3="+PinV[3]);
}