Exercice3
Exercice Sujet
Partie I
Ajoutez la librairie Bounce2
Déclarez les variables A, B, C, D, E, F, G pins de l’afficheur.
Déclarez BP1, BP2, BP3 pins des boutons poussoirs
Déclarez la variable valeur = 0
Déclarez les trois boutons de type Bounce
A l’initialisation :
Initialisez les pins des Leds en sortie
Attachez les boutons en INPUT_PULLUP
Ajoutez les intervalles aux boutons
A l’aide des variables A, B, C, D, E, F, G affichez un zéro sur l’afficheur
Partie II
Ajoutez la librairie AfficheurOFA
Déclarez la variable afficheur : AfficheurOFA afficheur(A, B, C, D, E, F, G);
Supprimez les pins des Leds en sortie
Boucle principale :
Au changement bas sur BP3 si la valeur est inférieure à 9, la variable valeur augmente de 1
Au changement bas sur BP2 si la valeur est supérieure à 0, la variable valeur diminue de 1
Au changement bas sur BP1, la variable valeur retourne à 0
Affichez dans la console la variable valeur
Affichez sur l’afficheur la variable valeur : afficheur.nombre(valeur) ;
Résistances entre 220Ω et 330Ω
Définition : Librairie AfficheurOFA
Dans Tinkercad, ajoutez le code au début sans le #include
Dans votre projet vscode, ajoutez le code dans le fichier \.pio\libdeps\uno\AfficheurOFA\src\AfficheurOFA.h
class AfficheurOFA
{
private:
int LED[7];
public:
AfficheurOFA(int, int, int, int, int, int, int);
void nombre(int);
};
AfficheurOFA::AfficheurOFA(int A, int B, int C, int D, int E, int F, int G)
{
this->LED[0] = A;
this->LED[1] = B;
this->LED[2] = C;
this->LED[3] = D;
this->LED[4] = E;
this->LED[5] = F;
this->LED[6] = G;
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
}
void AfficheurOFA::nombre(int nb)
{
int tab[10][7] = {
{1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 0, 0, 0, 0},
{1, 1, 0, 1, 1, 0, 1},
{1, 1, 1, 1, 0, 0, 1},
{0, 1, 1, 0, 0, 1, 1},
{1, 0, 1, 1, 0, 1, 1},
{1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 0, 1, 1}};
for (int i = 0; i < 7; i = i + 1)
{
digitalWrite(this->LED[i], tab[nb][i]);
}
}