• Post category:Intermédiaire
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :mai 25, 2022
  • Temps de lecture :7 min de lecture

Brancher plusieurs boutons poussoir sur une entrée analogique et piloter différentes Leds avec Arduino

Niveau APPRENTISSAGE :   Intermédiaire

 

    Prérequis :

Matériel :

Version IDE :

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

Code :

// La broche numérique 6 est reliée à la led verte. On lui donne le nom LedVerte.
int LedVerte = 6;
// Etc...
int LedRouge = 5;
int LedJaune = 4;
int LedBlanche = 3;

// La valeur Analogique du Bouton 1 appuyé est égale à 0.
int ValeurAnaBT1 = 0;
int ValeurAnaBT2 = 67;
int ValeurAnaBT3 = 181;
int ValeurAnaBT4 = 306;

// Déclaration variable Tolérance qui va servir à stocker une valeur au format int.
//On servira à définir une tolérance de 10 pour les valeurs analogiques des boutons.
int Tolerance = 10;

// Déclaration variable DetctBTe qui va servir à stocker une valeur au format boolean soit 0 ou 1.
boolean DetctBT;

void setup()
{
// Initialiser la communication série à 9600 bits par seconde
Serial.begin(9600);
// Définit LedVerte comme sortie.
pinMode(LedVerte, OUTPUT);
// Etc...
pinMode(LedRouge, OUTPUT);
pinMode(LedJaune, OUTPUT);
pinMode(LedBlanche, OUTPUT);
}
void loop()
{
// Lit la broche analogique A0 et stock ça valeur dans ValeurA0 au format int.
int ValeurA0 = analogRead(A0);
// Imprime la valeur de "ValeurA0" dans le moniteur série.
Serial.println(ValeurA0);

// Si ValeurA0 est plus petit ou égal à ValeurAnaBT1 + la Tolerance
// Et que la variable DetctBT est à 0
if (ValeurA0 <= ValeurAnaBT1 + Tolerance && DetctBT == 0) {
//Alors on allume la LedVerte
digitalWrite(LedVerte, HIGH);
//Et on modifie la valeur de DetctBT à 1
DetctBT = 1;
}
// Sinon si ValeurA0 est plus petit ou égal à ValeurAnaBT2 + la Tolerance
// Et que la variable DetctBT est à 0
else if (ValeurA0 <= ValeurAnaBT2 + Tolerance && DetctBT == 0) {
digitalWrite(LedRouge, HIGH);
DetctBT = 1;
}
else if (ValeurA0 <= ValeurAnaBT3 + Tolerance && DetctBT == 0) {
digitalWrite(LedJaune, HIGH);
DetctBT = 1;
}
else if (ValeurA0 <= ValeurAnaBT4 + Tolerance && DetctBT == 0) {
digitalWrite(LedBlanche, HIGH);
DetctBT = 1;
}
// Sinon si ValeurA0 est plus grande que la ValeurAnaBT4 + la Tolerance
// Et que la variable DetctBT est à 1
//(Signifie que tous les boutons sont revenus au repos après un appuie.)
else if (ValeurA0 > ValeurAnaBT4 + Tolerance && DetctBT == 1) {
//Alors on éteint toutes les sorties
digitalWrite(LedVerte, LOW);
digitalWrite(LedRouge, LOW);
digitalWrite(LedJaune, LOW);
digitalWrite(LedBlanche, LOW);
//Et on modifie la valeur de DetctBT à 0
DetctBT = 0;
//On attend 40 ms pour éviter les anti-rebonds.
delay(40);
}
}

 

Simulation TINKERCAD :

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire