Making pc mouse with joystick and two buttons

i am trying to make pc mouse with joystick and two buttons, i am using pro micro

iam going to use the joystick button as the left one and a switch as right button

here is my code

#include <Mouse.h>
int horzPin = A0;  // Analog output of horizontal joystick pin
int vertPin = A1;  // Analog output of vertical joystick pin
int selPin = 10;  // select button pin of joystick
int button = 7;   // select button pin of switch

int vertZero, horzZero;  // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;  // Stores current analog output of each axis
const int sensitivity = 200;  // Higher sensitivity value = slower mouse, should be <= about 500
int mouseClickFlag = 0;

//int invertMouse = 1;        //Invert joystick based on orientation
int invertMouse = -1;         //Noninverted joystick based on orientation

void setup()
{
  pinMode(horzPin, INPUT);  // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(selPin, INPUT);  // set button select pin as input
  pinMode(button, INPUT);  // set button of switch select pin as input
  digitalWrite(selPin, HIGH);  // Pull button select pin high
  digitalWrite(button, HIGH);  // Pull button of switch select pin high
  delay(1000);  // short delay to let outputs settle
  vertZero = analogRead(vertPin);  // get the initial values
  horzZero = analogRead(horzPin);  // Joystick should be in neutral position when reading these

  Mouse.begin(); //Init mouse emulation
}

void loop()
{
  vertValue = analogRead(vertPin) - vertZero;  // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;  // read horizontal offset

  if (vertValue != 0)
    Mouse.move(0, (invertMouse * (vertValue / sensitivity)), 0); // move mouse on y axis
  if (horzValue != 0)
    Mouse.move((invertMouse * (horzValue / sensitivity)), 0, 0); // move mouse on x axis

  if ((digitalRead(selPin) == 0) && (!mouseClickFlag))  // if the joystick button is pressed
  {
    mouseClickFlag = 1;
    Mouse.press(MOUSE_LEFT);  // click the left button down
  }
  if ((digitalRead(selPin)) && (mouseClickFlag)) // if the joystick button is not pressed
  {
    mouseClickFlag = 0;
    Mouse.release(MOUSE_LEFT);  // release the left button

  if ((digitalRead(button) == 0) && (!mouseClickFlag))  // if the switch button is pressed
  {
    mouseClickFlag = 1;
    Mouse.press(MOUSE_RIGHT);  // click the right button down
  }
  else if ((digitalRead(button)) && (mouseClickFlag)) // if the joystick button is not pressed
  {
    mouseClickFlag = 0;
    Mouse.release(MOUSE_RIGHT);  // release the right button
  }
  }
}

the joystick button is working ok but the switch button no

Please.... come on Shakespeare! Use engineering ways to talk. Lots of advice are founf here: How to get the best out of this forum - Using Arduino / IDE 1.x - Arduino Forum

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.