Niente da fare,ho modificato lo sketch come segue,secondo le tue indicazioni,
il risultato della seriale e' come prima! =(
if((ascii_data[0] == '5')&&(ascii_data[1] == '0'))
{
// Se la simcard è riconosciuta,accendi il led
digitalWrite(2, HIGH); // LED CHE INDICA IL RICONOSCIMENTO DI UNA SIM CARD VALIDA
Serial.println("SIMCARD VALIDA");
Serial.println();
PreviousDurata=millis();
VAL_CTRL1=digitalRead(CTRL1);
VAL_CTRL2=digitalRead(CTRL2);
// Verifica se ci sono malfunzionamenti nel compattatore:
if ((VAL_CTRL1==HIGH) || (VAL_CTRL2==HIGH)) { // simulazione errori tramite i pulsanti
Serial.println("Attenzione!Errore compattatore!");
}
else {
Serial.println ("Effettua la scelta del materiale da conferire entro 10 secondi..");
// Parte il conto alla rovescia per la scelta del materiale da conferire:
//PreviousDurata=millis();
int stato =0;
while (stato <1)
{
if ((CurrentDurata - PreviousDurata) > Timeout)
{
stato = 1;
// Manda l'impulso solo se non l'ha già mandato prima
if (impulso_mandato == false)
{
Serial.println("BLOCCATO");
impulso_mandato = true;
}
}
else
{
CurrentDurata=millis();
if (pulsantePremuto(PET) == true && giaPremuto == false)
{
stato = 1;
giaPremuto = true;
Serial.println("Scelta effettuata : PET");
apriportelloPET();
Contatore=0;
contaPET();
}
}
}
}
}
// CHIUSURA PARENTESI if ascii
else
{
//Se la simcard non e' riconosciuta,spegni il led
digitalWrite(2, LOW);
Serial.println("Simcard non valida!");
Serial.println();
}
Serial.print("Estrarre la SIMCARD,Grazie...");
Serial.println();
smartcard.PowerOffSC();
//wait smartcard extraction
while(smartcard.IsCardPresent(1)){
delay(500);
}
chiudiportelloPET(); // Chiude portello PET quando si estrae la scheda.
Serial.println("Operazione conclusa");
Serial.println();
} // Fine LOOP