#include <Streaming.h>
#include "AbstractJoystick.h"
class Joystick: public AbstractJoystick {
public:
Joystick(int pinx, int piny, int pinz): AbstractJoystick(pinx, piny, pinz) {
}
void onClick() {
Serial.println("click");
}
void onMoveHorizontal(int xValue) {
Serial << "X = " << xValue << endl;
}
void onMoveVertical(int yValue) {
Serial << "Y = " << yValue << endl;
}
};
Joystick joystick(4, 2, 15);
const int pinX = 4; // P0 (GPIO00 - ADC11)
const int pinY = 2; // P2 (GPIO02 - ADC12)
const int pinSW = 15; // P15 (GPIO15)
int valueX = 0; // Analog
int valueY = 0; // Analog
int valueZ = 0; // Digital
void setup() {
Serial.begin(9600);
joystick.setup();
}
void loop() {
// Simplest raw code for reading joystick input - Joysick class aims to replace it
// Default mode x=2048, y=2048, z=0
// When moved only to: top => y=4095, right => y=0
// When moved only to: left => y=0, right => y=4095
// When clicked z=1
// valueX = analogRead(pinX);
// valueY = analogRead(pinY);
// valueZ = digitalRead(pinSW);
// Serial << "x: " << valueX << ", y: " << valueY << ", z(button): " << valueZ << endl;
joystick.loop();
delay(100);
}