TP Afficheur 7 Segments
TP Afficheur 7 Segments
TP Afficheur 7 Segments
TP Afficheur 7-Segments
1. Étude de la diode
Q1.(2 pt)Donner le schéma d’une diode en précisant où se trouve l’anode, la cathode. Vous
préciserez le sens de parcours du courant pour que la diode s’allume.
2. Afficheur 7 segments
Q4.Les 7-segments que nous avons à l’école sont à cathode commune. Proposer sur Tinkercad
un schéma de câblage du 7 segments sur les ports sorties de l’Arduino.
740216099.docx – 1
3. Fonctions élémentaires
Pour la suite du TP, on utilise le montage (7-segments à cathode commune) avec une
résistance de 220 Ohms et le fragment de code suivant
void setup()
{
for (int pin = 2; pin < 9; pin++)
pinMode(pin, OUTPUT);
pinMode(ALIM_AFFICHEUR, OUTPUT);
}
void loop()
{
digitalWrite(ALIM_AFFICHEUR, …); //Completer par HIGH ou LOW
740216099.docx – 2
Q7.(1)Modifier ce code pour allumer et éteindre successivement tous les segments de A à G.
Q8.(3)Mettre en œuvre un programme constitué des fonctions zero(), un(), deux() … neuf()
permet d'afficher successivement les chiffres en base 10.
4. Expérimental
Refaire le même montage avec une breadboard, une carte Arduino, un afficheur 7 segments et
une résistance 220 ohms.
void loop() {
for (int i = 0 ; i< 10 ; i++) {
afficher(i);
delay(500);
}
}
5. 3 afficheurs
Pour pallier cette difficulté, on choisit de cadencer très rapidement les alimentations d’une
suite d’afficheur 7 segments pour permettre l’affichage de chiffres différents sur chacun des
afficheurs, en utilisant le phénomène de persistance rétinienne.
Q11. (2)Donner le nombre maximum d’afficheurs qu’il serait possible d’utiliser grâce à cette
technique avec un Arduino Uno? Expliquer votre démarche.
740216099.docx – 3
On réalise le branchement suivant pour l’affichage de nombres entiers de 0 à 999 :
De sorte que la procédure suivante affiche le chiffre 7 sur l’afficheur des unités.
allumer_afficheur_unites() ;
afficher(7) ;
delay(20);
void allumer_afficheur_centaines() {}
Q13. (2)Créer la fonction suivante permettant d’afficher un nombre à 3 chiffres sur les
afficheurs :
740216099.docx – 4
Q14. (2)Réaliser un compteur permettant l’affichage successif de tous les nombres de 000 à
999.
Q15. (2)Simplifier votre programme de façon qu’il comporte uniquement les fonctions
annexes suivantes :
Le bout de code suivant permet de récupérer et d’afficher un nombre entier rentré dans le
moniteur série.
long number = 0;
void setup() {
Serial.begin(9600);
Serial.println("Entrer un nombre");
}
void loop() {
if(Serial.available() > 0) {
number = Serial.parseInt();
Serial.print("Vous avez saisi le nombre : ");
Serial.println(number);
Serial.println("Entrer un nouveau nombre");
}
}
Q16. (3)Utiliser ce fragment de code pour afficher sur les afficheurs 7-segments un entier
entre 0 et 999 saisi au clavier.
740216099.docx – 5
7. Pour aller plus loin
Q17. (2)Modifier votre programme en remplaçant toutes les fonctions zero(), un() … neuf()
par une unique fonction afficher(int chiffre) en complétant les pointillés (…) dans le
fragment de code suivant :
int tableau[10][7]=
{{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW},
{LOW, HIGH, HIGH, LOW, LOW, LOW, LOW},
{HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH},
{HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH},
{…},
{…},
{…},
{…},
{…},
{HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH}};
void loop() {
if(Serial.available() > 0) {
long last_number = number;
number = Serial.parseInt();
if (number == 0) number = last_number;
}
}
740216099.docx – 6