#define r 5
#define g 6
#define b 7
unsigned long t1;
int stato = 0;
int button = 22;
void setup() {
Serial.begin(9600);
Serial3.begin(9600);
}
void loop() {
Serial.print("stato: ");
Serial.println(stato);
switch(stato) {
case 0 :
chk_button(1);
leggiSeriale();
rgb(200,0,0);
int r1 = 200;
int g1 = 0;
/*for (i=0, i<200, i++){
rgb(r1,g1,0);
r1 -=1;
g1 +=1;
delay(15);
}*/
break;
case 1 :
rgb(0,200,0);
chk_button(2);
break;
case 2 :
rgb(0,0,200);
chk_button(3);
break;
case 3 :
rgb(200,150,50);
chk_button(0);
break;
}
}
void leggiSeriale() {
if (Serial.available() || Serial3.available()) {
char val = Serial.available() ? Serial.read() : Serial3.read();
switch (val) {
case '1':
stato = 1;
break;
case '2':
stato = 2;
break;
case '3':
stato = 3;
break;
case '4':
stato = 4;
break;
case '5':
stato = 5;
break;
case '6':
stato = 6;
break;
case '7':
stato = 7;
break;
case '8':
stato = 8;
break;
case '9':
stato = 9;
break;
}
}
}
void rgb(int valr,int valg,int valb) {
analogWrite(r, valr);
analogWrite(g, valg);
analogWrite(b, valb);
}
void chk_button(int go){
if (digitalRead(button) == HIGH){
unsigned long dt = millis() - t1;
if (dt > 600){
stato = go;
t1 = millis();
}
}
}