🛠 Clavier USB : taper du texte avec la bibliothèque Keyboard
Objetivos
Aprovecha la funcionalidad que define a la Leonardo: el ATmega32u4 integra el transceptor USB, por lo que la placa puede hacerse pasar por un teclado HID ante el ordenador anfitrión, sin ningún procesador USB auxiliar. Enviarás una frase cuando se pulse un botón, con las dos precauciones oficiales: una ventana de protección al inicio y una llamada únicamente en el flanco ascendente.
Material
- 1 Arduino Leonardo + cable micro-USB
- 1 botón pulsador entre el pin 2 y GND (pull-up interno)
- Un enfoque de teclado voluntario en un editor de texto para la prueba
Código completo
#include <Keyboard.h>
const uint8_t BUTTON_PIN = 2;
bool wasPressed = false;
void setup {
pinMode(BUTTON_PIN, INPUT_PULLUP);
Keyboard.begin; // énumère la carte en clavier HID standard
delay(3000); // fenêtre de garde : le temps de placer le focus
}
void loop {
bool pressed = (digitalRead(BUTTON_PIN) == LOW);
if (pressed && !wasPressed) { // front montant uniquement
Keyboard.print("Hello, Leonardo!"); // les frappes partent vers l'OS hôte
Keyboard.releaseAll; // aucun key remain held
}
wasPressed = pressed;
}
Verificación esperada
Coloca el cursor en un editor de texto durante los primeros 3 segundos, luego pulsa el botón: la frase « Hello, Leonardo! » se escribe una sola vez en la aplicación enfocada. En el IDE, el monitor serie no mostrará nada aquí: Serial no se utiliza, y el dispositivo USB actual es un teclado.
Errores frecuentes
- HID descontrolado (runaway): llamar a
Keyboard.printen un bucle cerrado inunda el ordenador de pulsaciones y puede hacer que la placa sea muy difícil de reprogramar. Arduino advierte explícitamente: prueba primero conSerial.printy solo activa las llamadas HID detrás de un botón o una condición. - Olvidar
Keyboard.releaseAll: una tecla que se deja pulsada hace que se repita un carácter indefinidamente. - Sin ventana de protección: la placa escribe inmediatamente en la ventana enfocada durante la enumeración, a veces el propio IDE.
- Componente incorrecto seleccionado: los clones « Pro Micro » comparten el chip pero requieren su propia entrada de placa en el IDE.
- Esperar el monitor serie: una vez enumerada como HID, la placa puede dejar de exponer un puerto CDC si el sketch solo declara el teclado.
Otros tutoriales para esta placa
- Faire clignoter la LED intégrée (broche 13)
- Bouton et console série : Serial (USB) vs Serial1 (broches 0/1)
- Lire un capteur analogique : potentiomètre et ADC 10 bits
- Souris USB : déplacer le curseur avec la bibliothèque Mouse
- Asservir un servo moteur avec un potentiomètre (PWM)
- Programmer aux registres : interruption Timer/Counter1
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinoclavier-auto-tape.inoArduinosouris-cercle.inoArduinotelecommande-media.inoArduinobouton-clic-souris.inoArduino