#include <SoftwareSerial.h>
#define joyXPin A5
#define joyYPin A4
#define joySWPin 4
#define joyDeadzone 200
SoftwareSerial SoftSerial(2, 3); // RX, TX
// bit encoding [0, 0, 0, joySW, joyY-, joyY+, joyX-, joyX+]
byte send_byte;
int joyX, joyY;
bool joySW;
void setup(){
SoftSerial.begin(9600);
Serial.begin(9600);
pinMode(joySWPin, INPUT);
}
void loop(){
joyX = analogRead(joyXPin) - 1024 / 2;
joyY = analogRead(joyYPin) - 1024 / 2;
joySW = digitalRead(joySWPin);
send_byte = B00000000;
if (joyX > joyDeadzone) send_byte |= B00000001;
if (joyX < -joyDeadzone) send_byte |= B00000010;
if (joyY > joyDeadzone) send_byte |= B00000100;
if (joyY < -joyDeadzone) send_byte |= B00001000;
if (!joySW) send_byte |= B00010000;
if (send_byte) {
SoftSerial.print((char)send_byte);
Serial.println(String(send_byte, BIN));
}
delay(40);
}