const int Xpin = A0;
const int Ypin = A1;
const int SWpin = 2;
int X;
int Y;
int X_neutral;
int Y_neutral;
const int Red_pin = 3;
const int Yellow_pin = 9;
const int Green_pin = 6;
const int Blue_pin = 5;
const int White_pin = 10;
int Red;
int Yellow;
int Green;
int Blue;
const int deadzone = 10;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
X_neutral = analogRead(Xpin);
Y_neutral = analogRead(Ypin);
pinMode(SWpin, INPUT_PULLUP);
pinMode(White_pin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
X = analogRead(Xpin);
Y = analogRead(Ypin);
if (Y >= Y_neutral + deadzone) {
Blue = 0;
Red = map(Y, Y_neutral, 1023, 0, 255);
}
else if (Y <= Y_neutral - deadzone) {
Red = 0;
Blue = map(Y, Y_neutral, 0, 0, 255);
}
else {
Red = 0;
Blue = 0;
}
if (X >= X_neutral + deadzone) {
Yellow = 0;
Green = map(X, X_neutral, 1023, 0, 255);
}
else if (X <= X_neutral - deadzone) {
Green = 0;
Yellow = map(X, X_neutral, 0, 0, 255);
}
else {
Green = 0;
Yellow = 0;
}
analogWrite(Red_pin, Red);
analogWrite(Yellow_pin, Yellow);
analogWrite(Blue_pin, Blue);
analogWrite(Green_pin, Green);
int state = digitalRead(SWpin);
if (state == LOW) {
digitalWrite(White_pin, HIGH);
} else {
digitalWrite(White_pin, LOW);
}
}
SW RT LF DN UP