http://www.kbdmania.net/xe/tipandtech/8794285

제가 본 글입니다.

malheur 님의 매트릭스 이용 키보드 만들기입니다.


글에 이런 코드가 나와있습니다.



void loop() {

  char* keys[5][14] {

    {"96", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "45", "61", "KEY_BACKSPACE"},

    {"KEY_TAB", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "91", "93", "92"},

    {"KEY_CAPSLOCK", "A", "S", "D", "F", "G", "H", "J", "K", "L", "59", "39", "KEY_RETURN", "0"},

    {"KEY_LEFT_SHIFT", "Z", "X", "C", "V", "B", "N", "M", "44", "46", "47", "KEY_RIGHT_SHIFT", "0", "0"},

    {"KEY_LEFT_CTRL", "KEY_LEFT_ALT", "KEY_LEFT_GUI", "32", "KEY_RIGHT_GUI", "KEY_RIGHT_ALT", "KEY_RIGHT_CTRL", "0", "0", "0", "0", "0", "0", "0"}

  }

  for (i=0, i<=4, i++) {

    for (j=0, j<=13, j++ {

      digitalWrite(j, LOW);

      if (digitalRead(i)) Keyboard.release(keys[i][j]);

      else Keyboard.press(keys[i][j]);

      digitalWrite(j, HIGH);

    }

  }

}



음 그러니까, 제가 제대로 이해한것인지 모르겠는데,
디지털핀을 LOW 로 설정하고, 키를 감지해서 감지가 되면 release,
감지가 안되면 press 를 하는건데,

이걸 꼭 이렇게 해야하는건가요?

HIGH 를 넣고 감지되면 press, 감지 안되면 release 로 해도 똑같이 작동하는게 맞겠죠?







그리고 디지털핀을 너무 여러개 쓰면 오류가 나는 경우가 있나요?

제가 저 글 참고해서 키보드를 만들고있는데

오류가 나는데 코드가 대체 뭐가 문제인지를 모르겠어서...