Народ привет.
Есть задача эмулировать клавиатуру на ардуино, возникла проблема, при передачи кода клавиши эмулируется не те клавиши.
процедура которую я использую для передачи keyCode:
void pressKey(int dig) // Функция ввода
{
buf[2] = dig;
Serial.write(buf, 8); // Нажать клавишу
buf[0] = 0;
buf[2] = 0;
delay(20);
Serial.write(buf, 8); // Отпустить клавишу
delay(200);
}
в dig передаю 37(стрелка влево) и 39(вправо) а передаются символы "0" и "8"
a b c d e f g h i j k l m n o p q r s t u v w x y z
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
почему то такое соответствие передаваемых кодов
DimiDr0lik: в первом же топике есть: int keys[10] = { 39, 30, 31, 32, 33,
34, 35, 36, 37, 38 }; // Массив с ASCII кодами цифер от 0 до 9 соответственно
Судя по всему , вы нашли таблицу скан-кодов клавиатуры, но не в ASCII, а в hex
Для подобных действий проще использовать плату, специально разработанную для этих целей, а именно Arduino Leonardo, и подобные проблемы отпадут.
Пример реализации подобного + управление через Ethernet Shield - проект usb2kbd (usb2kbd.ru).