Grazie mille per la risposta!!
Spero di aver capito quello che intendevi dire e quindi ho apportato delle modifiche allo sketch:
const byte LED1[]={ 9, 10, 11, 12 };
const int P1=2; //Pulsante cambio di stato
const int debaunceDelay=500;
const int PW=8; //Relè
const int THRS = 100; //valore termoresistore posizione Standby
const int THRL = 170; //valore termoresistore posizione Low
const int THRM = 180; //valore termoresistore posizione Medium
const int THRH = 190; //valore termoresistore posizione High
byte stato=1;
void setup() {
Serial.begin(9600);
pinMode(LED1[0], OUTPUT); //led standby
pinMode(LED1[1], OUTPUT); //led LOW
pinMode(LED1[2], OUTPUT); //led MIDIUM
pinMode(LED1[3], OUTPUT); //led HIGH
pinMode(P1, INPUT); //Pulsante
pinMode(PW, OUTPUT); //Relè
}
void loop() {
int v = analogRead(A0);
Serial.println(v);
if(digitalRead(P1))
{
if(stato<4) stato=stato+1;
else stato=1;
}
switch(stato)
{ case 1:
digitalWrite(LED1[0],HIGH);
digitalWrite(LED1[1],LOW);
digitalWrite(LED1[2],LOW);
digitalWrite(LED1[3],LOW);
{
if (v > THRS) digitalWrite(PW, HIGH);
else digitalWrite(PW, LOW);
}
break;
case 2:
digitalWrite(LED1[0],LOW);
digitalWrite(LED1[1],HIGH);
digitalWrite(LED1[2],LOW);
digitalWrite(LED1[3],LOW);
{
if (v > THRL) digitalWrite(PW, HIGH);
else digitalWrite(PW, LOW);
}
break;
case 3:
digitalWrite(LED1[0],LOW);
digitalWrite(LED1[1],LOW);
digitalWrite(LED1[2],HIGH);
digitalWrite(LED1[3],LOW);
{
if (v > THRM) digitalWrite(PW, HIGH);
else digitalWrite(PW, LOW);
}
break;
case 4:
digitalWrite(LED1[0],LOW);
digitalWrite(LED1[1],LOW);
digitalWrite(LED1[2],LOW);
digitalWrite(LED1[3],HIGH);
{
if (v > THRH) digitalWrite(PW, HIGH);
else digitalWrite(PW, LOW);
}
break;
}
while (digitalRead(P1) == LOW)
{
delay(10);
}
delay(debaunceDelay);
}
Quello che adesso mi manda in bestia e che sto facendo un sacco di confusione con i delay e non riesco a dare una continuità cadenzata alla lettura della termoresistenza. Se apro il monitor seriale la lettura viene effettuata solo alla pressione del pulsante ed a una frequenza dettata dal delay.
Grazie