Arduino > Exemple d'un interrupteur qui allume une DEL pour un certain temps

/*

Each time the button is pressed the DEL turns on for 5 seconds.

Often, you don't need to know the state of a digital input all the time,
but you just need to know when the input changes from one state to another.
For example, you want to know when a button goes from OFF to ON.  This is called
state change detection, or edge detection.


Circuit
=============
Pin 7: switch with external pull-up
Pin 3: LED

*/

int etatInterrupteurPrecedent;
unsigned long timeStamp;

void setup() {
        // Configuration de la broche 7 en tant qu'entree numerique
        pinMode(7,INPUT);

        // Configuration de la broche 3 en tant que sortie numerique
        pinMode(3,OUTPUT);

}


void loop() {

        // Lire l'etat de la broche 7
        int etatInterrupteur = digitalRead(7);


        // Detecter un changement d'etat de l'interrupteur
        if ( etatInterrupteurPrecedent != etatInterrupteur ) {
                etatInterrupteurPrecedent = etatInterrupteur;
                // Est-ce que l'interrupteur est appuye (etat LOW)
                if ( etatInterrupteur == LOW ) {
                        timeStamp = millis();
                }
        }

        // Est-ce qu'il s'est ecoule moins de 5 secondes depuis le dernier timeStamp?
        if ( millis() - timeStamp < 5000 ) {
                // Allumer la DEL
                digitalWrite(3,HIGH);
        } else {
                // Eteindre la DEL
                digitalWrite(3,LOW);
        }

}