Código para emular el click del mouse derecho

Lo que yo no encuentro ni vivo ni muerto es algún código para emular el click del mouse derecho. He probado por mi cuenta metiendo en el código mouse_right y mouse_middle y el resultado es que se ha vuelto medio loco el puntero, pero no lo consigo. Buscando por ahí encuentro muchos proyectos para conseguir un joystick funcional que he replicado con facilidad, pero el click derecho es importante para mi por el tipo de programa que quiero manejar con el joystick.

*/

#include "Mouse.h"

// configura los números de pin para el pulsador, los ejes del joystick y el LED:
const int switchPin = 2;      // activa y desactiva el control del ratón
const int mouseButton1 = 3;    // pin de entrada para el pulsador izquierdo del ratón
const int mouseButton2 = 6;    // pin de entrada para el pulsador derecho del ratón
const int mouseButton3 = 7;    // pin de entrada para el pulsador central del ratón
const int xAxis = A0;         // eje X del joystick
const int yAxis = A1;         //  eje Y  del joystick
const int ledPin = 5;         // LED de control del ratón

// parámetros para la lectura del joystick:
int range = 12;               // rango de salida del movimiento X o Y 
int responseDelay = 5;        // response delay of the mouse, in ms
int threshold = range / 4;    // umbral de reposo
int center = range / 2;       // valor de posición de reposo

boolean mouseIsActive = false;    // si o no para controlar el ratón
int lastSwitchState = LOW;        // estado anterior del pulsador

void setup() {
  pinMode(switchPin, INPUT);       // pin del pulsador
  pinMode(ledPin, OUTPUT);         // pin del LED 
  // toma el control del ratón:
  Mouse.begin();
}

void loop() {
  // lee los pulsadores:
  int switchState = digitalRead(switchPin);
  //si ha cambiado y es HIGH, cambiar el estado del ratón:
  if (switchState != lastSwitchState) {
    if (switchState == HIGH) {
      mouseIsActive = !mouseIsActive;
      // enciende el LED para indicar el estado del ratón:
      digitalWrite(ledPin, mouseIsActive);
    }
  }
  // almacena el estado del pulsador para la próxima comparación:
  lastSwitchState = switchState;

  // lee y escala los dos ejes:
  int xReading = readAxis(A0);
  int yReading = readAxis(A1);

  // if the mouse control state is active, move the mouse:
  if (mouseIsActive) {
    Mouse.move(xReading, yReading, 0);
  }

  // lee el botón izquierdo del ratón y clic o no:
  //si el pulsador está activado:
  if (digitalRead(mouseButton1) == HIGH) {
    //si no está activado, pulsarlo:
    if (!Mouse.isPressed(MOUSE_LEFT)) {
      Mouse.press(MOUSE_LEFT);
    }
  }
  // de lo contrario el botón izquierdo del ratón no está presionado:
  else {
    // si el pulsador está activado, soltarlo:
    if (Mouse.isPressed(MOUSE_LEFT)) {
      Mouse.release(MOUSE_LEFT);
    }
  }
  // lee el botón derecho del ratón y clic o no:
  //si el pulsador está activado:
  if (digitalRead(mouseButton2) == HIGH) {
    //si no está activado, pulsarlo:
    if (!Mouse.isPressed(MOUSE_RIGHT)) {
      Mouse.press(MOUSE_RIGHT);
    }
  }
  // de lo contrario el botón derecho del ratón no está presionado:
  else {
    // si el pulsador está activado, soltarlo:
    if (Mouse.isPressed(MOUSE_RIGHT)) {
      Mouse.release(MOUSE_RIGHT);
    }
  }  // lee el botón central del ratón y clic o no:
  //si el pulsador está activado:
  if (digitalRead(mouseButton3) == HIGH) {
    //si no está activado, pulsarlo:
    if (!Mouse.isPressed(MOUSE_MIDDLE)) {
      Mouse.press(MOUSE_MIDDLE);
    }
  }
  // de lo contrario el botón central del ratón no está presionado:
  else {
    // si el pulsador está activado, soltarlo:
    if (Mouse.isPressed(MOUSE_MIDDLE)) {
      Mouse.release(MOUSE_MIDDLE);
    }
  }
  delay(responseDelay);
}

/*
  lee un eje (0 o 1 para x o y) y escala el
 rango de la entrada analógica a un rango de 0 s <range>
 */

int readAxis(int thisAxis) {
  // lee la entrada analógica:
  int reading = analogRead(thisAxis);

  // mapea la lectura de la gama de entrada analógica al rango de salida:
  reading = map(reading, 0, 1023, 0, range);

  // si la lectura está fuera de
  // umbral de la posición de reposo, utilizar esto:
  int distance = reading - center;

  if (abs(distance) < threshold) {
    distance = 0;
  }

  // devuelve la distancia de este eje:
  return distance;
}

Moderador: Post movido de un hilo que tenia mas de 120 dias sin movimiento. Título ahora refleja la naturaleza de la consulta.

Mis disculpas por el error. Muchas gracias.

De donde sacaste esa librería Mouse.h

Cuando respondas hazlo usando etiqueta y si no sabes (porque veo que eres nuevo) lee las normas del foro.

Bueno, ya resolví el problema. Por si alguien busca más adelante en el foro para resolver la misma cuestión, el proyecto completo, códigos incluidos, lo he colgado aquí: Joysticks - mouse USB Arduino Leonardo 7/3 buttons

Efectivamente, soy nuevo en esto. Muchas gracias por la colaboración.

Moderador: Enlace editado

Gracias, porque te pedí usar etiquetas pero no hubo caso!!