// // Déclaration des variables globales : // variables globales : etat (l'état de l'automate) oldEtatBP (état mémorisé du Bouton Poussoir 'BP') constantes : WAIT <- 1 (constante désignant l'état 'wait') START <- 2 (constante désignant l'état 'start') STOP <- 3 (constante désignant l'état 'stop') pinLEDR <- 5 (la broche de la LED Rouge ) pinLEDV <- 6 (la broche de la LED Verte ) pinBP <- 7 (la broche du bouton poussoir) // ARDUINO : les lignes qui suivent sont à // mettre dans la fonction setup configurer : pinBP en entrée, pinLEDR et pinLEDV en sortie // Initialisation des variables globales qui le nécessitent : oldEtatBP <- LOW // Définition de l'état initial : état <- WAIT éteindre LEDR allumer LEDV loop: // pour ARDUINO, la boucle est assurée par la fonction loop // 1 - lecture des périphériques qui fournissent une entrée // correspondant à un événement de l'automate.... // (exploitation du diagramme des états) etatBP <- lecture de l'état du Bouton Poussoir // 2 - Traitement des événements provoquant une transition d'état : // (-> exploitation du Tableau des transitions d'état) // Événement BPA : bouton poussoir appuyé // => front montant sur l'entrée BP si oldEtatBP est LOW ET etatBP est HIGH : | si etat est WAIT : | | etat devient START | sinon si etat est START : | | etat <- STOP | | allumer la LEDR, éteindre la LEDV | sinon si etat est STOP : | | etat <- START | | éteindre la LEDR // 3 - Traiter les actions (permanentes) à faire pour les états possibles : // (Exploitation du Tableau des états) si etat est WAIT : | RAF (Rien A Faire) sinon si etat est START: | faire clignoter la LED V | mettre la LEDV dans l'état opposé à son état actuel | (allumée -> éteinte ou éteinte-> allumée) sinon etat est STOP: | RAF mémoriser etatBP dans oldEtatBP attendre "un peu" fin loop