Esta página também está disponível em outros 2 idiomas.

Keyboard.write()

Descrição

Envia uma tecla pressionada para um computador conectado. Isso é similar a pressionar e soltar uma tecla do seu teclado. Você pode enviar alguns caracteres ASCII ou as teclas modificadoras e especiais adicionais.

Apenas caracteres ASCII que estão no teclado são suportados. Por exemplo, o caractere ASCII 8 (backspace) funciona, mas o caractere ASCII 25 (Substituição) não. Ao enviar letras maiúsculas, Keyboard.write() envia o comando shift mais o caractere desejado, da mesma forma que quando se digita em um teclado comum. Se um tipo numérico é enviado, este é interpretado como o caractere ASCII correspondente (ex. Keyboard.write(97) irá enviar 'a').

Para uma lista completa de caracteres ASCII, veja asciitable.com.

Sintaxe

Keyboard.write(character)

Parâmetros

character : um char ou int a ser enviado ao computador. Pode ser enviado em qualquer notação que é aceitável para um char. Por exemplo, todas as formas abaixo são aceitáveis e enviadas como o mesmo valor, 65 ou ASCII A:

Keyboard.write(65);         // envia o valor ASCII 65, ou A
Keyboard.write('A');        // mesma coisa, mas como um caractere entre aspas simples
Keyboard.write(0x41);       // mesma coisa, porém em notação hexadecimal
Keyboard.write(0b01000001); // mesmo valor, mas em binário (escolha estranha, mas funciona)

Retorna

size_t : o número de bytes enviados.

Código de Exemplo

#include <Keyboard.h>

void setup() {
  // Configura o pino 2 como entrada e ativa
  // o resistor pull-up tal que o pino seja HIGH
  // a menos que conectado ao ground:
  pinMode(2, INPUT_PULLUP);
  // Inicia a emulação de um teclado USB
  Keyboard.begin();
}

void loop() {
  // se o botão for pressionado
  if (digitalRead(2) == LOW) {
    // envia o caratere ASCII 'A',
    Keyboard.write(65);
  }
}

Notas e Advertências

Quando você usa a função Keyboard.write(), o Arduino toma o controle do computador! Tenha certeza que você tem controle de quando as mensagens vão ser enviadas antes de usar essa função. Pode ser difícil gravar um novo código no Arduino se ele estiver digitando algo o tempo todo. Um botão para ativar/desativar o controle do teclado é bastante efetivo.