int x_pin = A1;
int y_pin = A0;
int b = 52;
int y_val, x_val, b_val;
int button_state, button_old_state;
int counter = 0;
int bot_r = 35, bot_g = 37, bot_b = 39;
int top_r = 28, top_g = 30, top_b = 32;
int left_r = 23, left_g = 25, left_b = 27;
int right_r = 47, right_g = 49, right_b = 51;
int top_r_r = 34, top_r_g = 36, top_r_b = 38;
int top_l_r = 22, top_l_g = 24, top_l_b = 26;
int bot_r_r = 41, bot_r_g = 43, bot_r_b = 45;
int bot_l_r = 29, bot_l_g = 31, bot_l_b = 33;
int pins []= {
22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,41,43,45,47,49,51
};
void setup() {
for(int i = 0; i<25;i++){
pinMode(pins[i], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
x_val = analogRead(x_pin);
y_val = analogRead(y_pin);
Color_Picker(counter);
readButton();
Clear();
}
void Turn(int red, int green, int blue)
{
if(y_val == 1023 && x_val == 0){
analogWrite(top_r_r, red);
analogWrite(top_r_g, green);
analogWrite(top_r_b, blue);
}
else if(y_val == 1023 && x_val == 1023){
analogWrite(top_l_r, red);
analogWrite(top_l_g, green);
analogWrite(top_l_b, blue);
}
else if(y_val == 0 && x_val == 0){
analogWrite(bot_r_r, red);
analogWrite(bot_r_g, green);
analogWrite(bot_r_b, blue);
}
else if(y_val == 0 && x_val == 1023){
analogWrite(bot_l_r, red);
analogWrite(bot_l_g, green);
analogWrite(bot_l_b, blue);
}
else if(y_val == 512 && x_val == 512){
analogWrite(top_r_r, red);
analogWrite(top_r_g, green);
analogWrite(top_r_b, blue);
analogWrite(top_l_r, red);
analogWrite(top_l_g, green);
analogWrite(top_l_b, blue);
analogWrite(bot_r_r, red);
analogWrite(bot_r_g, green);
analogWrite(bot_r_b, blue);
analogWrite(bot_l_r, red);
analogWrite(bot_l_g, green);
analogWrite(bot_l_b, blue);
analogWrite(top_r_r, red);
analogWrite(top_r_g, green);
analogWrite(top_r_b, blue);
analogWrite(right_r, red);
analogWrite(right_g, green);
analogWrite(right_b, blue);
analogWrite(left_r, red);
analogWrite(left_g, green);
analogWrite(left_b, blue);
analogWrite(bot_r, red);
analogWrite(bot_g, green);
analogWrite(bot_b, blue);
analogWrite(top_r, red);
analogWrite(top_g, green);
analogWrite(top_b, blue);
}
else{
switch(x_val){
case 0:
analogWrite(right_r, red);
analogWrite(right_g, green);
analogWrite(right_b, blue);
break;
case 1023:
analogWrite(left_r, red);
analogWrite(left_g, green);
analogWrite(left_b, blue);
break;
}
switch(y_val){
case 0:
analogWrite(bot_r, red);
analogWrite(bot_g, green);
analogWrite(bot_b, blue);
break;
case 1023:
analogWrite(top_r, red);
analogWrite(top_g, green);
analogWrite(top_b, blue);
break;
}
}
}
void Color_Picker(int number){
switch(number){
case 1:
Turn(255,0,0); //red
break;
case 2:
Turn(0,255,0); //green
break;
case 3:
Turn(0,0,255); //blue
break;
case 4:
Turn(235, 52, 207); //pink
break;
case 5:
Turn(235, 217, 52); //yellow
break;
case 6:
Turn(135, 245, 255); //light blue
break;
case 7:
Turn(242, 151, 39); //brown
break;
default:
Turn(255,0,0); //red
break;
}
}
void Clear(){
for(int i = 0; i<25; i++){
analogWrite(pins[i], 0);
}
}
void readButton() {
// button part ------------------------------------
button_state = !digitalRead(b);
// we make some tasks
if(button_state == 1 && button_old_state == 0) {
if(counter<7){
counter++;
}
else{
counter=1;
}
}
else
{
delay(50);
}
button_old_state = button_state;
// -----------------------------------------------
Serial.println(counter);
}