ゲームに使う専用のコントローラーを作りたい
computer_mouse_cord

前回作ったやつ

  1. #include "Keyboard.h"
  2. const int inputPin1 = 2;
  3. const int inputPin2 = 4;
  4. bool currentState1 = HIGH;
  5. bool beforeState1 = HIGH;
  6. bool currentState2 = HIGH;
  7. bool beforeState2 = HIGH;
  8. void setup() {
  9.   pinMode(inputPin1, INPUT);
  10.   pinMode(inputPin2, INPUT);
  11.   Serial.begin(9600);
  12.   Keyboard.begin();
  13. }
  14. void loop() {
  15.   currentState1 = digitalRead(inputPin1);
  16.   currentState2 = digitalRead(inputPin2);
  17.   if ( currentState1 != beforeState1 ) {
  18.     if ( currentState1 == LOW) {
  19.       Keyboard.press('A');
  20.       delay(20);
  21.     } else {
  22.       Keyboard.release('A');
  23.       delay(20);
  24.     }
  25.     beforeState1 = currentState1;
  26.   }
  27.   if ( currentState2 != beforeState2 ) {
  28.     if ( currentState2 == LOW) {
  29.       Keyboard.press('B');
  30.       delay(20);
  31.     } else {
  32.       Keyboard.release('B');
  33.       delay(20);
  34.     }
  35.     beforeState2 = currentState2;
  36.   }
  37. }

再び他人の力を借りる(配列を使う)

http://eucalyn.hatenadiary.jp/entry/original-keyboard-06



  1. #include "Keyboard.h"
  2. const int keyNum = 2;
  3. const int inputPin[keyNum] = { 2, 4 };
  4. const byte keyMap[keyNum] = { 0x41,0x42 };
  5. bool currentState[keyNum];
  6. bool beforeState[keyNum];
  7. int i;
  8. void setup() {
  9.   for ( i = 0; i < keyNum; i++) {
  10.     pinMode(inputPin[i], INPUT);
  11.     currentState[i] = HIGH;
  12.     beforeState[i] = HIGH;
  13.   }
  14.   Serial.begin(9600);
  15.   Keyboard.begin();
  16. }
  17. void loop() {
  18.   for ( i = 0; i < keyNum; i++) {
  19.     currentState[i] = digitalRead(inputPin[i]);
  20.     
  21.     if ( currentState[i] != beforeState[i] ) {
  22.       if ( currentState[i] == LOW) {
  23.         Keyboard.press( keyMap[i] );
  24.         delay(20);
  25.       } else {
  26.         Keyboard.release( keyMap[i] );
  27.         delay(20);
  28.       }
  29.       beforeState[i] = currentState[i];
  30.     }
  31.   }
  32. }


no-img2″>
 <figcaption  class=
管理人

今はボタンが2個だけですので、もともとのスケッチがそんなに長くないです。
スッキリした感じはあまりないですが、ボタンが増えていくとこの形のほうが圧倒的にスッキリするかと思います。

no-img2″>
 <figcaption  class=
マイ

自作キーボードでボタン数が少ない場合はここで完成となるかと思います。
しかし、マウスの左クリックもほしいので、次の回でその操作も追加したいと思います。