Faire varier un barregraphe à l’aide d’un potentiomètre (structure if) avec un Arduino Uno

Niveau APPRENTISSAGE :   Intermédiaire

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino
  • 9 x Résistances 220 ohms
  • 9 x Leds
  • 1 x Potentiomètre 10 KΩ
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

 

 

Schéma de câblage :

 

Code :

// Déclaration variable valeurPotentiometre qui va servir à stocker une valeur au format int.
int valeurPotentiometre = 0;
// La broche numérique 2 est reliée à la led verte 1. On lui donne le nom ledverte1.
int ledverte1 = 2;
// Etc ...
int ledverte2 = 3;
int ledverte3 = 4;
int ledorange4 = 5;
int ledorange5 = 6;
int ledorange6 = 7;
int ledrouge7 = 8;
int ledrouge8 = 9;
int ledrouge9 = 10;

void setup () {
  // Ouvre le port série à 9600 bps.
  Serial.begin(9600);
  // Définit ledverte1 soit la broche numérique 2 comme sortie.
  pinMode (ledverte1, OUTPUT);
  // Etc ...
  pinMode (ledverte2, OUTPUT);
  pinMode (ledverte3, OUTPUT);
  pinMode (ledorange4, OUTPUT);
  pinMode (ledorange5, OUTPUT);
  pinMode (ledorange6, OUTPUT);
  pinMode (ledrouge7, OUTPUT);
  pinMode (ledrouge8, OUTPUT);
  pinMode (ledrouge9, OUTPUT);
}

void loop () {
  // Lit la valeur de la broche analogique A0 et stock ça valeur dans valeurPotentiometre.
  valeurPotentiometre = analogRead(A0);
  // Imprime un message dans le moniteur série
  Serial.print("Valeur lue : ");
  // Imprime "valeurPotentiometre" dans le moniteur série
  // puis ajoute le retour à la ligne avec "println"
  Serial.println(valeurPotentiometre);
  // Si valeurPotentiometre <= 102.3 on exécute les actions entre {}
  if (valeurPotentiometre <= 102.3) {
    // Met la broche numérique stockée dans ledverte1 sur OFF
    digitalWrite (ledverte1, LOW);
    //ETC ...
    digitalWrite (ledverte2, LOW);
    digitalWrite (ledverte3, LOW);
    digitalWrite (ledorange4, LOW);
    digitalWrite (ledorange5, LOW);
    digitalWrite (ledorange6, LOW);
    digitalWrite (ledrouge7, LOW);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  // Sinon si valeurPotentiometre > 102.3 et valeurPotentiometre <= 204.6 on exécute les actions entre {}
  else if (valeurPotentiometre > 102.3 && valeurPotentiometre <= 204.6) {
    // Met la broche numérique stockée dans ledverte1 sur ON
    digitalWrite (ledverte1, HIGH);
    // Met la broche numérique stockée dans ledverte2 sur OFF
    digitalWrite (ledverte2, LOW);
    //ETC ...
    digitalWrite (ledverte3, LOW);
    digitalWrite (ledorange4, LOW);
    digitalWrite (ledorange5, LOW);
    digitalWrite (ledorange6, LOW);
    digitalWrite (ledrouge7, LOW);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  // Etc ...
  else if (valeurPotentiometre > 204.6 && valeurPotentiometre <= 306.9) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, LOW);
    digitalWrite (ledorange4, LOW);
    digitalWrite (ledorange5, LOW);
    digitalWrite (ledorange6, LOW);
    digitalWrite (ledrouge7, LOW);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  else if (valeurPotentiometre > 306.9 && valeurPotentiometre <= 409.2) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, HIGH);
    digitalWrite (ledorange4, LOW);
    digitalWrite (ledorange5, LOW);
    digitalWrite (ledorange6, LOW);
    digitalWrite (ledrouge7, LOW);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  else if (valeurPotentiometre > 409.2 && valeurPotentiometre <= 511.5) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, HIGH);
    digitalWrite (ledorange4, HIGH);
    digitalWrite (ledorange5, LOW);
    digitalWrite (ledorange6, LOW);
    digitalWrite (ledrouge7, LOW);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  else if (valeurPotentiometre > 511.5 && valeurPotentiometre <= 613.8) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, HIGH);
    digitalWrite (ledorange4, HIGH);
    digitalWrite (ledorange5, HIGH);
    digitalWrite (ledorange6, LOW);
    digitalWrite (ledrouge7, LOW);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  else if (valeurPotentiometre > 613.8 && valeurPotentiometre <= 716.1) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, HIGH);
    digitalWrite (ledorange4, HIGH);
    digitalWrite (ledorange5, HIGH);
    digitalWrite (ledorange6, HIGH);
    digitalWrite (ledrouge7, LOW);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  else if (valeurPotentiometre > 716.1 && valeurPotentiometre <= 818.4) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, HIGH);
    digitalWrite (ledorange4, HIGH);
    digitalWrite (ledorange5, HIGH);
    digitalWrite (ledorange6, HIGH);
    digitalWrite (ledrouge7, HIGH);
    digitalWrite (ledrouge8, LOW);
    digitalWrite (ledrouge9, LOW);
  }
  else if (valeurPotentiometre > 818.4 && valeurPotentiometre <= 920.7) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, HIGH);
    digitalWrite (ledorange4, HIGH);
    digitalWrite (ledorange5, HIGH);
    digitalWrite (ledorange6, HIGH);
    digitalWrite (ledrouge7, HIGH);
    digitalWrite (ledrouge8, HIGH);
    digitalWrite (ledrouge9, LOW);
  }
  else if (valeurPotentiometre > 920.7) {
    digitalWrite (ledverte1, HIGH);
    digitalWrite (ledverte2, HIGH);
    digitalWrite (ledverte3, HIGH);
    digitalWrite (ledorange4, HIGH);
    digitalWrite (ledorange5, HIGH);
    digitalWrite (ledorange6, HIGH);
    digitalWrite (ledrouge7, HIGH);
    digitalWrite (ledrouge8, HIGH);
    digitalWrite (ledrouge9, HIGH);
  }
}

 

Simulation TINKERCAD :

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire