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);
     
    }
  }
}

Exibições: 479

Responder esta

Respostas a este tópico

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.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço