const int P_LED = 3;
const int P_TASTO = 2;
int stato = 0;
void setup() {
pinMode(P_LED, OUTPUT);
pinMode(P_TASTO, INPUT_PULLUP);
}
void loop() {
switch (stato) {
case 0:
digitalWrite(P_LED, LOW);
if (!digitalRead(P_TASTO)) {
delay(300);
stato = 1;
}
break;
case 1:
fadeLed();
if (!digitalRead(P_TASTO)) {
delay(300);
stato = 2;
}
break;
case 2:
blinkLed();
if (!digitalRead(P_TASTO)) {
delay(300);
stato = 0;
}
break;
}
}
void fadeLed() {
const int POT = analogRead(A0);
int convert = map(POT, 0, 1023, 0, 255);
analogWrite(P_LED, convert);
}
void blinkLed() {
int POT = analogRead(A0);
int flash = map(POT, 0, 1023, 0, 500);
digitalWrite(P_LED, !digitalRead(P_LED));
delay(flash);
}