TwiKeypadライブラリユーザーマニュアルTwiKeypadライブラリユーザーマニュアル(4)このページをスマートフォンなどでご覧になる場合は、画面を横長にする方が読みやすくなる事があります。複数のキーパッドを使用する方法TwiKeypadライブラリが対応するキーパッドは、I2Cアドレスが重ならない様に設定すれば、複数のキーパッドをArduinoに接続する事ができます。ここでは、その方法について説明します。複数のキーパッドを配線する場合、図20の配線図に従って、配線してください。図20、Arduinoに複数のキーパッドを接続する時の配線図Arduinoの側の電源端子を3.3Vにつなぐか5Vにつなぐかは、使用するArduinoのI/O電圧に合わせて決めてください。図20の様な配線をすると、各信号線を、キーパッドの数だけ分配する必要があります。写真4の様に、ブレッドボードで分配したり、信号を分配するための専用線を自作するなど、工夫してください。写真4、配線をブレッドボードで配線を分配した例なおGroveを使える場合は、写真5の様に簡単に配線を分配する事ができます。広告8-2.スケッチの作り方I2Cアドレスがそれぞれ08Hと09Hの2つのキーパッドを接続し、両方のキーパッドのキーを読み取って、押されたキーをシリアルモニタ上に表示するスケッチを、リスト8に示します。IDEでファイル→スケッチ例→TwiKeypad→MultiKeypadメニューを選んでも開けます。loopキーパッドが1つの場合は、TwiKeypad型のオブジェクト変数を1つだけ作ったのですが、2つのキーパッドを使う場合は、keypad1とkeypad2という2つの変数を作ります。objectsそして、keypad1と、keypad2を別々のI2Cアドレスで初期化します。keypad2.この例では、keypad1をアドレスTwiAdr1(別の行で8と宣言されている定数)で、keypad2をアドレスTwiAdr2(別の行で9と宣言されている定数)で、初期化しています。これにより、アドレス08Hのキーパッドはkeypad1というオブジェクト変数で、アドレス09Hのキーパッドはkeypad2というオブジェクト変数で、それぞれ扱えるようになります。押されたキーを読み取るには、GetKey関数かGetChar関数を使います。リスト8の例では、GetKey関数を使っています。WaitForKey関数とWaitForChar関数はキーが押されるまで関数から帰ってこないので、複数のキーパッドを使う時は、使用できません。1つのキーパッドの状態をWaitForKey関数やWaitForChar関数で読み取ると、そのキーパッドで何かキーが押されるまで、別のキーパッドの状態を読みに行けないからです。if上の処理で、アドレスが08HのキーパッドのキーをGetKey関数で読み取り、処理しています。キーが押されていれば、"Keypad1-"と押されたスイッチ番号を表示し、キーが押されていなければ、何も表示せずに次の処理に移ります。if上の処理で、アドレスが09HのキーパッドのキーをGetKey関数で読み取り、処理しています。キーが押されていれば、"Keypad2-"と押されたスイッチ番号を表示し、キーが押されていなければ、何も表示せずに次の処理に移ります。参考までに、アドレス08Hのキーパッド(Keypad1)のSW6とSW11を順に押し、次にアドレス09Hのキーパッド(Keypad2)のSW2とSW14を順に押した場合のシリアルモニタの表示を、図21に示します。電子工作ISBN:978-4-7775-1941-5→工学社の書籍の内容の紹介ページ本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。このサイトの中の人が書いた本です。本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。