🛠 Transformer le Micro en clavier USB (HID) avec bouton de sécurité
Objectifs
Exploiter la spécificité du Micro : l'ATmega32U4 est lui-même le périphérique USB (pas de coprocesseur). Le tableau peut donc taper au clavier via la classe Keyboard, à condition de garder un bouton de sécurité physique pour ne jamais détourner le clavier de l'hôte.
Matériel
- 1 Arduino Micro + câble micro-USB
- 1 bouton poussoir entre la broche 2 et GND
- Un ordinateur avec un éditeur de texte ouvert et le focus
Code complet
// 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; // démarre 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
}
}
}
Vérification attendue
Au téléversement, le Micro disparaît puis réapparaît comme périphérique clavier. Un appui sur le bouton saisit le message dans l'éditeur de texte ayant le focus. Débrancher le Micro rend immédiatement la main au vrai clavier.
Erreurs fréquentes
- Envoyer des frappes dans setup sans bouton de sécurité : le tableau détourne le clavier de l'hôte dès le démarrage ; débranchez puis reprogramme.
- Oublier que le clavier HID est actif dès Keyboard.begin : le sketch doit rester réactif au bouton.
- Sélectionner la carte Leonardo au lieu de Micro : l'upload peut fonctionner mais les broches (LED, RX_LED) diffèrent.
- Attendre du texte dans le Moniteur série : ici Serial n'est pas utilisé ; l'identité USB est clavier (+ CDC selon le noyau).
Autres tutoriels pour cette carte
- 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
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinoclavier-auto-tape.inoArduinosouris-cercle.inoArduinotelecommande-media.inoArduinobouton-clic-souris.inoArduino