• Post category:Fort
  • Post comments:0 commentaire
  • Post last modified:mars 13, 2022
  • Temps de lecture :9 min de lecture

Faire varier un barregraphe à l’aide de 2 boutons avec un Arduino

Niveau APPRENTISSAGE :   Fort

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino
  • 9 x Résistances 220 ohms
  • 9 x Leds
  • 2 x Boutons
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

Code :

// La broche numérique 11 est reliée au bouton1. On lui donne le nom bouton1.
int bouton1 = 11;
// La broche numérique 12 est reliée au bouton2. On lui donne le nom bouton2.
int bouton2 = 12;
// Déclaration variable nombreled qui va servir à stocker une valeur au format int.
// Elle prend la valeur de 9 équivalant au nombre de LED
int nombreled = 9;
// Déclaration variable NbLedON qui va servir à stocker une valeur au format int.
int NbLedON;
// Déclaration d'un tableau de variable ledPins qui va servir à stocker des valeurs au format int.
// On remplit le tableau avec les numéros des broches numériques utilisées pour les LEDS
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

void setup() {
  // Initialiser la communication série à 9600 bits par seconde
  Serial.begin(9600);
  // Faire de la broche du Bouton1 une entrée avec activation de la résistance de rappel interne de l'ARDUINO .
  pinMode(bouton1, INPUT_PULLUP);
  // Faire de la broche du Bouton2 une entrée avec activation de la résistance de rappel interne de l'ARDUINO .
  pinMode(bouton2, INPUT_PULLUP);

  // On utilise une boucle for pour déclarer les sorties

  // On initialise une variable int Led pour qu’elle débute de 0
  // Tant que la condition est Vrai Led < nombreled on répète les actions entre {} de la boucle for
  // Et on incrémente Led++.
  for (int Led = 0; Led < nombreled; Led++) {
    // Définit ledPins[Led] comme sortie.
    pinMode(ledPins[Led], OUTPUT);
  }
}

void loop() {
  // Lit la broche d'entrée du bouton1 et stock ça valeur dans etatDuBouton1 au format bool
  bool etatDuBouton1 = digitalRead(bouton1);
  // Si EtatBouton1 == LOW on exécute les actions entre {}
  if (etatDuBouton1 == LOW) {
    // Si NbLedOn < 9 on exécute les actions entre {}
    if (NbLedON < 9) {
      // On incrémente NbLedON++.
      NbLedON++;
    }
    // Tant que etatDuBouton1 == LOW on répète les actions entre {}
    while (etatDuBouton1 == LOW) {
      // Lit la broche d'entrée du bouton1 et stock ça valeur dans etatDuBouton1 au format bool
      etatDuBouton1 = digitalRead(bouton1);
    }
  }
  // Lit la broche d'entrée du bouton2 et stock ça valeur dans etatDuBouton2 au format bool
  bool etatDuBouton2 = digitalRead(bouton2);
  // Si EtatBouton2 == LOW on exécute les actions entre {}
  if (etatDuBouton2 == LOW) {
    // Si NbLedON > 0 on exécute les actions entre {}
    if (NbLedON > 0) {
      // On décrémente NbLedON--.
      NbLedON--;
    }
    // Tant que etatDuBouton2 == LOW on répète les actions entre {}
    while (etatDuBouton2 == LOW) {
      // Lit la broche d'entrée du bouton2 et stock ça valeur dans etatDuBouton2 au format bool
      etatDuBouton2 = digitalRead(bouton2);
    }
  }

  // Imprime des infos sur le nombre de Led à allumer
  Serial.print("Nb de Led a allumer : ");
  Serial.println(NbLedON);

  // On utilise une boucle for pour gérer allumage des Led

  // On initialise une variable int Led pour qu’elle débute de 0
  // Tant que la condition est Vrai Led < nombreled on répète les actions entre {} de la boucle for
  // Et on incrémente Led++.
  for (int Led = 0; Led < nombreled; Led++) {
    // Si NbLedON > Led on exécute les actions entre {}
    if (NbLedON > Led) {
      // Met la broche numérique stockée ledPins[Led] sur ON
      digitalWrite(ledPins[Led], HIGH);
    }
    // Sinon on exécute les actions entre {}
    else {
      // Met la broche numérique stockée ledPins[Led] sur OFF
      digitalWrite(ledPins[Led], LOW);
    }
  }
}

 

Simulation TINKERCAD :

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire