hote-clavier-usb.ino
Un teclado USB real enchufado al USB-A: la clase boot HID la decodifica la librería y cada tecla aparece en el monitor serie. La Mega ADK se vuelve enrutador de entradas USB para hardware antiguo.
Hardware necesario
Un Arduino Mega ADK Rev3 (ATmega2560 + chip de host USB MAX3421E con puerto USB-A; el pin digital 7 queda reservado para el reset del MAX3421E). 1 teclado USB (cableado simple, sin hub).
Cableado
Teclado directo al puerto USB-A; D7 intacta.
Funcionamiento
Usb.Task gestiona la enumeración; el parser HID boot llama a OnKeyDown en cada trama de tecla recibida en low-speed. Placa « Arduino Mega ADK » en el IDE. Para host USB/ADK, instale la biblioteca USB Host Shield 2.0; no use D7. El puerto USB-A alimenta el accesorio a 5 V.
Para ir más lejos
Reenvíe las teclas a un segundo Arduino (UART) para registrar un puesto, o dispare macros.
hote-clavier-usb.ino
// La Mega ADK lit un clavier USB (HID boot) via USB Host Shield 2.0.
#include <Max3421e.h>
#include <Usb.h>
#include <hidboot.h>
#include <usbhub.h>
USB Usb;
HIDBoot<USB_HID_PROTOCOL_KEYBOARD> HidKeyboard(&Usb);
class MonClavier : public KeyboardReportParser {
void OnKeyDown(uint8_t mod, uint8_t key) override {
Serial.print(F("Touche 0x")); Serial.println(key, HEX);
}
};
MonClavier klavier;
void setup() {
Serial.begin(115200);
if (Usb.Init() == -1) { Serial.println(F("MAX3421E KO")); while (1); }
klavier.SetReportParser(0, &klavier);
HidKeyboard.SetReportParser(0, &klavier);
Serial.println(F("Branchez un clavier sur le port USB-A"));
}
void loop() { Usb.Task(); }