🛠 Transformer le Micro en clavier USB (HID) avec bouton de sécurité
Objetivos
Aprovechar la especificidad del Micro: el ATmega32U4 es en sí mismo el dispositivo USB (sin coprocesador). La placa puede por tanto escribir en el teclado mediante la clase Keyboard, siempre que se mantenga un botón de seguridad físico para no secuestrar nunca el teclado del host.
Material
- 1 Arduino Micro + cable micro-USB
- 1 botón pulsador entre el pin 2 y GND
- Un ordenador con un editor de texto abierto y con el foco
Código completo
// Micro clavier USB : tape un message quand le bouton (broche 2) est presse.
// Pattern officiel KeyboardMessage : la frappe ne part que sur appui deliberé.
#include <Keyboard.h>
const uint8_t BTN = 2; // bouton vers GND, pull-up interne
void setup {
pinMode(BTN, INPUT_PULLUP);
Keyboard.begin; // demarre l'interface HID clavier
}
void loop {
if (digitalRead(BTN) == LOW) { // actif-low
delay(50); // anti-rebond
if (digitalRead(BTN) == LOW) {
Keyboard.print("Bonjour depuis mon Arduino Micro !");
while (digitalRead(BTN) == LOW) {} // un seul envoi par appui
}
}
}
Verificación esperada
Al cargar el programa, el Micro desaparece y vuelve a aparecer como dispositivo de teclado. Una pulsación del botón introduce el mensaje en el editor de texto que tiene el foco. Desconectar el Micro devuelve inmediatamente el control al teclado real.
Errores frecuentes
- Enviar pulsaciones en setup sin botón de seguridad: la placa secuestra el teclado del host desde el arranque; desconecte y vuelva a programar.
- Olvidar que el teclado HID está activo desde Keyboard.begin: el sketch debe seguir siendo reactivo al botón.
- Seleccionar la placa Leonardo en lugar de Micro: la carga puede funcionar, pero los pines (LED, RX_LED) son diferentes.
- Esperar texto en el Monitor serie: aquí no se usa Serial; la identidad USB es teclado (+ CDC según el núcleo).
Otros tutoriales para esta placa
- Faire clignoter la LED embarquée (et comprendre les LED TX/RX)
- Lire un bouton avec une résistance de pull-up interne
- Lire un capteur analogique sur le convertisseur 10 bits
- Pont Serial vers Serial1 : passerelle USB vers TTL
- Piloter un servo moteur avec le PWM et un potentiomètre
- Sortir des sentiers : registres AVR et interruption externe
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinoclavier-auto-tape.inoArduinosouris-cercle.inoArduinotelecommande-media.inoArduinobouton-clic-souris.inoArduino