Arduino PS2 клавиатура отжатие клавиши
- Войдите на сайт для отправки комментариев
Ср, 11/07/2018 - 08:46
как на ардуино определить момент отжатия клавиши на клавиатуре ps2
у меня чето нихера не работает вот код
#include <PS2Keyboard.h> int i; unsigned long TimePresKey[256]; const int DataPin = 2; const int IRQpin = 3; PS2Keyboard keyboard; void setup() { delay(1000); for (i=0;i<257;i=i+1){ TimePresKey[i]=0; } keyboard.begin(DataPin, IRQpin); Serial.begin(9600); Serial.println("Keyboard Test:"); } void loop() { for (i=0;i<257;i=i+1){ if (TimePresKey[i]!=0){ if (((millis()-TimePresKey[i])>100)) { TimePresKey[i]=0; Serial.print("up "); Serial.println(i, HEX); } } } if (keyboard.available()) { // read the next key byte c = keyboard.read(); // check for some of the special keys TimePresKey[c]=millis(); // otherwise, just print all normal characters Serial.println("down "); Serial.println(c,HEX); } }
Циклы до 255 максимального значения должны быть, да и логика странная, не проще запоминать скан код предыдущий и если он изменился, значит клавиша отжата.
да я совсем забыл что если массив размером 256 его последний индекс 255.
Все получилось, я отказался от предыдущего кода, теперь показывает нажатие и отпуск клавиши
только у меня отличаются скан коды от того что здесь: https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%B0%D0%BD-%D0%BA%D0%BE%D0%B4