#define LED_R 9
#define LED_G 10
#define LED_B 11
#define PIEZO 5
#define JOY_SEL A0
#define JOY_H A1
#define JOY_V A2
#define POT A3
void setup() {
pinMode(JOY_H, INPUT);
pinMode(JOY_V, INPUT);
pinMode(JOY_SEL, INPUT_PULLUP);
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(PIEZO, OUTPUT);
Serial.begin(9600);
}
void loop() {
int joyH = analogRead(JOY_H);
int joyV = analogRead(JOY_V);
int joySel = analogRead(JOY_SEL);
int pot = analogRead(POT);
int intensity = map(pot, 0, 1023, 0, 255);
int valH = map(joyH, 0, 1023, -1, 1);
int valV = map(joyV, 0, 1023, -1, 1);
analogWrite(LED_R, max(valH, 0) * intensity);
analogWrite(LED_G, max(-valH, 0) * intensity);
analogWrite(LED_B, max(valV, 0) * intensity);
if (joySel == 0) {
int frequency = map(pot, 0, 1023, 100, 8000);
tone(PIEZO, frequency);
} else {
noTone(PIEZO);
}
}