#define btn 7 #define led 2 // étapes de grafcet #define DEPART 0 #define ATTENTE 1 #define ALLUME 2 #define AFFICHE_TEMPS 3 #define ATTENTE_RELACHEMENT 4 #define TRICHE 5 #define ATTENTE_APPUIE 6 #define ATTENTE_ALLUME 7 int state ; long randomWait ; long beginTime ; void setup(void) { Serial.begin(9600); pinMode(led,OUTPUT); digitalWrite(led,0); randomSeed(analogRead(4)); // lecture d'une broche en l'air pour aléa } char etape = 0 ; void loop(void) { state = digitalRead(btn); switch(etape){ case DEPART : randomWait = random(2000,5000); beginTime = millis(); Serial.println("Appuyez sur le bouton lorsque la led s'allume"); if ( state == 0 ) { etape = TRICHE ; } else { etape = ATTENTE_ALLUME ; } break ; case ATTENTE_ALLUME : break ; case ALLUME : break ; case ATTENTE_APPUIE : break ; case AFFICHE_TEMPS : break; case ATTENTE_RELACHEMENT : break; case TRICHE : break; default : // oops !!! etape = DEPART ; } }