• Post category:Intermédiaire
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :mars 15, 2022
  • Temps de lecture :9 min de lecture

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