Exercice3

Exercice

Exercice Sujet

Exercice

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éfinitionLibrairie 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

1
#include <Arduino.h>
2
3
class AfficheurOFA
4
{
5
private:
6
    int LED[7];
7
8
public:
9
    AfficheurOFA(int, int, int, int, int, int, int);
10
    void nombre(int);
11
};
12
13
AfficheurOFA::AfficheurOFA(int A, int B, int C, int D, int E, int F, int G)
14
{
15
    this->LED[0] = A;
16
    this->LED[1] = B;
17
    this->LED[2] = C;
18
    this->LED[3] = D;
19
    this->LED[4] = E;
20
    this->LED[5] = F;
21
    this->LED[6] = G;
22
    pinMode(A, OUTPUT);
23
    pinMode(B, OUTPUT);
24
    pinMode(C, OUTPUT);
25
    pinMode(D, OUTPUT);
26
    pinMode(E, OUTPUT);
27
    pinMode(F, OUTPUT);
28
    pinMode(G, OUTPUT);
29
}
30
31
void AfficheurOFA::nombre(int nb)
32
{
33
    int tab[10][7] = {
34
        {1, 1, 1, 1, 1, 1, 0},
35
        {0, 1, 1, 0, 0, 0, 0},
36
        {1, 1, 0, 1, 1, 0, 1},
37
        {1, 1, 1, 1, 0, 0, 1},
38
        {0, 1, 1, 0, 0, 1, 1},
39
        {1, 0, 1, 1, 0, 1, 1},
40
        {1, 0, 1, 1, 1, 1, 1},
41
        {1, 1, 1, 0, 0, 0, 0},
42
        {1, 1, 1, 1, 1, 1, 1},
43
        {1, 1, 1, 1, 0, 1, 1}};
44
45
    for (int i = 0; i < 7; i = i + 1)
46
    {
47
        digitalWrite(this->LED[i], tab[nb][i]);
48
    }
49
}