#include <Mouse.h>
int horzPin = A0;
int vertPin = A1;
int selPin = 9;
char vertZero, horzZero;
char vertValue, horzValue;
const char sensitivity = 200;
char mouseClickFlag = 0;
void setup()
{
Serial.begin(9600);
pinMode(horzPin, INPUT);
pinMode(vertPin, INPUT);
pinMode(selPin, INPUT_PULLUP);
Mouse.begin();
delay(1000);
vertZero = analogRead(vertPin);
horzZero = analogRead(horzPin);
}
void loop()
{
vertValue = analogRead(vertPin) - vertZero;
horzValue = analogRead(horzPin) - horzZero;
// Uncomment the following lines to debug joystick values
// Serial.print("x ");
// Serial.println(horzValue);
// Serial.print("y ");
// Serial.println(vertValue);
if (vertValue != 0)
Mouse.move(0, vertValue / sensitivity, 0);
if (horzValue != 0)
Mouse.move((horzValue / sensitivity) * -1, 0, 0);
if ((digitalRead(selPin) == LOW) && (!mouseClickFlag))
{
mouseClickFlag = 1;
Mouse.press(MOUSE_LEFT);
}
else if ((digitalRead(selPin) == HIGH) && (mouseClickFlag))
{
mouseClickFlag = 0;
Mouse.release(MOUSE_LEFT);
}
}