Intanto questo è il codice che ho scritto.
Se qualcuno ha voglia di darci un'occhiata.... ![]()
byte x = 8;
byte y = 13;
byte xVal = LOW;
byte yVal = LOW;
boolean xAccesa = false;
boolean appo = false;
unsigned long interval=200000;
unsigned long tempoSpenta;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println("Pronti");
pinMode(x, INPUT);
pinMode(y, OUTPUT);
digitalWrite(y, LOW); // Spengo il led L sulla scheda
}
void loop()
{
xVal = digitalRead(x); // Leggo lo stato del pin x, finchè è off non faccio nulla.
xAccesa=xVal;
// Quando è on blocco l'esecuzione del loop finchè non diventa off
while(xAccesa){
yVal=LOW;
digitalWrite(y, yVal);
xVal = digitalRead(x); // read input value
xAccesa=xVal;
appo=true;
Serial.println("qui");
}
// Uscito dal loop prendo il tempo di uscita
tempoSpenta=millis();
if ( appo ){
// Se è entrato nel while precedente vuol dire che c'è stato un impulso
appo=false;
// Attendo per vedere se c'è un secondo impulso
while(millis()<(tempoSpenta + interval)){
xVal = digitalRead(x); // read input value
xAccesa=xVal;
Serial.println("qui1");
if ( xAccesa ){
yVal=LOW;
break;
}
else{
yVal=HIGH;
}
}
}
digitalWrite(y, yVal);
}