🛠 Souris USB : déplacer le curseur avec la bibliothèque Mouse

Arduino Leonardo — Fiche carte · intermediaire · Schéma : IMG-leonardo-intermediaire-5-leonardo-hid-souris.svg — Leonardo émulant une souris USB : potentiomètre sur A0 pour l'axe X, bouton de clic sur la broche 4, curseur bougeant à l'écran

Objectifs

Pousser plus loin le USB natif de la Leonardo en l'utilisant comme souris HID : un potentiomètre sur A0 pilote le déplacement horizontal du curseur de l'ordinateur, un bouton envoie un clic gauche. Vous comprendrez le principe des rapports HID périodiques (Mouse.move = déplacement relatif par rapport) et le piège du brochage A6 partagé avec la broche numérique 4.

Matériel

Code complet

#include <Mouse.h>

const uint8_t POT_PIN   = A0;  // A0-A5 : entrées analogiques classiques
const uint8_t CLICK_PIN = 4;   // attention : A6 est aussi sur la broche 4

void setup {
  pinMode(CLICK_PIN, INPUT_PULLUP);
  Mouse.begin;
  delay(3000); // fenetre de garde : reprendre la main sur la souris hote
}

void loop {
  int pot = analogRead(POT_PIN);         // 10 bits : 0..1023
  int dx  = map(pot, 0, 1023, -10, 10);  // vitesse par rapport HID
  if (dx != 0) {
    Mouse.move(dx, 0, 0);                // deplacement X (Y, molette = 0)
  }
  if (digitalRead(CLICK_PIN) == LOW) {
    if (!Mouse.isPressed(MOUSE_LEFT)) Mouse.press(MOUSE_LEFT);
  } else {
    if (Mouse.isPressed(MOUSE_LEFT)) Mouse.release(MOUSE_LEFT);
  }
  delay(20); // cadence ~50 Hz, largement suffisante
}

Vérification attendue

Après les 3 s de garde, tournez le potentiomètre : le curseur de l'ordinateur se déplace d'autant plus vite qu'on s'éloigne du point mort (valeur médiane ~512). Le bouton envoie un clic gauche maintenu/relâché. Gardez un œil sur la zone de point mort pour ne pas poursuivre le curseur sans fin.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels