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

Arduino Leonardo — Ficha de placa · 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

Objetivos

Llevar más lejos el USB nativo de la Leonardo utilizándola como ratón HID: un potenciómetro en A0 controla el desplazamiento horizontal del cursor del ordenador, y un botón envía un clic izquierdo. Comprenderás el principio de los informes HID periódicos (Mouse.move = desplazamiento relativo) y la trampa del pin A6 compartido con el pin digital 4.

Material

Código completo

#include <Mouse.h>

const uint8_t POT_PIN   = A0;  // A0-A5 : entrees 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
}

Verificación esperada

Tras los 3 s de espera, gira el potenciómetro: el cursor del ordenador se desplaza más rápido cuanto más nos alejamos del punto muerto (valor medio ~512). El botón envía un clic izquierdo mantenido/soltado. Mantén la vista en la zona del punto muerto para no perseguir el cursor sin fin.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales