Bom dia,
Estou utilizando um teclado PS2 conectado a um Arduino UNO e tudo funciona a contento.
Entretanto, no meu caso, preciso das teclas de Funções F1 a F12 e para estas teclas ele não me retorna nada ...
Alguém saberia como implementar as teclas de função ?
Abaixo, o código que utilizo. Grato
#include <PS2Keyboard.h>
const int PinDatos = 3; // Verde
const int PinReloj = 2; // Blanco
PS2Keyboard teclado; //Declaramos un objeto de tipo PS2Keyboard
void setup() {
delay(1000);
teclado.begin(PinDatos, PinReloj);
Serial.begin(9600);
Serial.println("Teclado Ok.");
}
void loop()
{
// Si el teclado está disponible
if (teclado.available()) {
// Lee la tecla presionada
char c = teclado.read();
// Revisa algunas teclas especiales
if (c == PS2_ENTER) {
Serial.print("enter");
} else if (c == PS2_TAB) {
Serial.print("[Tab]");
} else if (c == PS2_ESC) {
Serial.print("[ESC]");
} else if (c == PS2_PAGEDOWN) {
Serial.print("[PgDn]");
} else if (c == PS2_PAGEUP) {
Serial.print("[PgUp]");
} else if (c == PS2_LEFTARROW) {
Serial.print("[Left]");
} else if (c == PS2_RIGHTARROW) {
Serial.print("[Right]");
} else if (c == PS2_UPARROW) {
Serial.print("[Up]");
} else if (c == PS2_DOWNARROW) {
Serial.print("[Down]");
} else if (c == PS2_DELETE) {
Serial.print("[Del]");
} else if (c == PS2_F1) {
Serial.print("[F10]");
} else {
// Si no, imprime los caracteres normales
Serial.print(c);
}
}
}
Tags:
Cesar, bom dia!
Se você olhar o código do arquivo PS2Keyboard.h, verá que o desenvolvedor não definiu as constantes para essas teclas. Ele deve ter tido suas razões para isso.
Pesquisando na Internet, obtemos os códigos abaixo. Você pode tentar.
Outra forma é exibir na serial o código das teclas pressionadas e ir anotando os valores das teclas de função.
http://www.thecodingforums.com/threads/ascii-code-for-functions-key...
F1: 112
F2: 113
F3: 114
F4: 115
F5: 116
F6: 117
F7: 118
F8: 119
F9: 120
F10: 121
F11: 122
F12: 123
O problema é que essas teclas não me retornam código algum. Ao pressionar, o monitor serial nada indica. É como se não tivessem sido pressionadas,
A biblioteca não dá suporte para essas teclas.
Existe uma extensão dessa biblioteca que suporta mais teclas, mas as funções não estão incluídas.
http://playground.arduino.cc/Main/PS2KeyboardExt
Tente essa versão também. Parece que suporta mais teclas, se você olhar o arquivo ps2keycodes.txt:
https://github.com/nick125/arduinoide/tree/master/resources/arduino...
Existe alguma forma de eu ter o que foi digitado que aparece no Serial Monitor em uma das portas de saída do arduino sem ser apenas True/False , 0 ou 1 ? Ou seja , literalmente eu ter saindo em uma das portas o caracter em si ? Alguém sabe me dizer ? grato.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por