Arduino > Résistance de rappel («pull-up» ou «pull-down»)

1.  Description

Une résistance de rappel permet de fixer une entrée numérique à un état HIGH ou LOW stable. Elle permet aussi de réduire le bruit, d'éliminer les broches flottantes et surtout, d'établir deux états électriques clairs et distincts:

De façon générale, une résistance de rappel a comme valeur 10K ohm.

Il existe deux types de résistance de rappel, un type pour chaque état:

Démonstration de l'utilisation d'une résistance de rappel avec un interrupteur:

2.  Exemple «pull-up» externe

Lorsqu'on appui sur le bouton (broche 12), la DEL «L» (broche 13) de la carte s'illumine.

/*
Lorsqu'on appui sur le bouton (broche 12), la DEL «L» (broche 13) de la carte s'illumine.
*/

int etatInterrupteur;

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

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

void loop() {

        // Lire l'etat de la broche 12.
        etatInterrupteur = digitalRead(12);

        // Changer l'etat de la broche 13 selon
        // l'etat de l'interrupteur
        if ( etatInterrupteur == LOW ) {
                digitalWrite(13,HIGH);
        } else if ( etatInterrupteur == HIGH ) {
                digitalWrite(13,LOW);
        }

}

3.  Exemple «pull-up» interne

Lorsqu'on appui sur le bouton (broche 12), la DEL «L» (broche 13) de la carte s'illumine.


/*
Lorsqu'on appui sur le bouton (broche 12), la DEL «L» (broche 13) de la carte s'illumine.
*/

int etatInterrupteur;

void setup() {
        // Configuration de la broche 12 en tant qu'entree numerique.
        pinMode(12,INPUT);
        // Activation du "internal pull-up" de la broche 12.
        digitalWrite(12,HIGH);

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

void loop() {

        // Lire l'etat de la broche 12.
        etatInterrupteur = digitalRead(12);

        // Changer l'etat de la broche 13 selon
        // l'etat de l'interrupteur
        if ( etatInterrupteur == LOW ) {
                digitalWrite(13,HIGH);
        } else if ( etatInterrupteur == HIGH ) {
                digitalWrite(13,LOW);
        }

}