Leonardo como keyboard.

Saludos a todos , hace poco compre una placa leonardo con la idea de usarlo como keyboard. habra alguna lista completa de todas las teclas que pueda controlar leonardo o solo las que aparecen como referencia .

Key		Hexadecimal value		Decimal value	
KEY_LEFT_CTRL 	0x80 	128
KEY_LEFT_SHIFT 	0x81 	129
KEY_LEFT_ALT 	0x82 	130
KEY_LEFT_GUI 	0x83 	131
KEY_RIGHT_CTRL 	0x84 	132
KEY_RIGHT_SHIFT 	0x85 	133
KEY_RIGHT_ALT 	0x86 	134
KEY_RIGHT_GUI 	0x87 	135
KEY_UP_ARROW 	0xDA 	218
KEY_DOWN_ARROW 	0xD9 	217
KEY_LEFT_ARROW 	0xD8 	216
KEY_RIGHT_ARROW 	0xD7 	215
KEY_BACKSPACE 	0xB2 	178
KEY_TAB 	0xB3 	179
KEY_RETURN 	0xB0 	176
KEY_ESC 	0xB1 	177
KEY_INSERT 	0xD1 	209
KEY_DELETE 	0xD4 	212
KEY_PAGE_UP 	0xD3 	211
KEY_PAGE_DOWN 	0xD6 	214
KEY_HOME 	0xD2 	210
KEY_END 	0xD5 	213
KEY_CAPS_LOCK 	0xC1 	193
KEY_F1 	0xC2 	194
KEY_F2 	0xC3 	195
KEY_F3 	0xC4 	196
KEY_F4 	0xC5 	197
KEY_F5 	0xC6 	198
KEY_F6 	0xC7 	199
KEY_F7 	0xC8 	200
KEY_F8 	0xC9 	201
KEY_F9 	0xCA 	202
KEY_F10 	0xCB 	203
KEY_F11 	0xCC 	204
KEY_F12 	0xCD 	205

Oh como puedo pasar una tecla a algun codigo ascII , ejemplo

a=?
b=?

por el momento es buscado en google pero nada que me pueda ayudar o pueda entender.

gracias por su ayuda o referencia que me puedan brindar.

1 Like

En la parte de "reference" de esta misma web lo explica todo, aunque en inglés.

http://arduino.cc/en/Reference/MouseKeyboard

Casi abajo del todo pone esto:

Note: Not every possible ASCII character, particularly the non-printing ones, can be sent with the Keyboard library. The library supports the use of modifier keys. Modifier keys change the behavior of another key when pressed simultaneously. See here for additional information on supported keys and their use.

Si le damos al link:

http://arduino.cc/en/Reference/KeyboardModifiers

Aparece la lista que has puesto tu, pero en esa misma página, nos explica que:

For more on ASCII values and the characters or functions they represent, see asciitable.com

Y tenemos un link a esa tabla ascii:

Así pues, para darle a la tecla a, podemos hacer este código:

void setup() {
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}
void loop() {
  while (digitalRead(2) == HIGH) {
    delay(500);
  }
  delay(1000);
  Keyboard.press(97);
  delay(100);
  Keyboard.releaseAll();
  delay(1000);
}

Pulsa la a, poniendo el pin 2 a masa. Este código, es una modificación que he hecho del código de ejemplo.

Fíjate que en el Keyboard.press, he puesto el código ascii 97, que es el de la a, si queremos una A mayúscula, podemos pulsar shift y a:

void setup() {
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}
void loop() {
  while (digitalRead(2) == HIGH) {
    delay(500);
  }
  delay(1000);
  Keyboard.press(129);
  Keyboard.press(97);
  delay(100);
  Keyboard.releaseAll();
  delay(1000);
}

He pulsado el código 129 (left shift) y después 97 (a), con lo que me da una A mayúscula.

Como curiosidad, también podemos poner una A mayúscula, pulsando el código 65

void setup() {
  pinMode(2, INPUT_PULLUP);
  Keyboard.begin();
}
void loop() {
  while (digitalRead(2) == HIGH) {
    delay(500);
  }
  delay(1000);
  Keyboard.press(65);
  delay(100);
  Keyboard.releaseAll();
  delay(1000);
}