Les chiffres 0 à 9 sont des symboles numériques qui sont utilisés pour représenter des nombres. Ils sont communément affichés sur des écrans numériques, des cadrans et des afficheurs à cristaux liquides. Une autre façon d’afficher ces chiffres est d’utiliser un digit à cathode commune. Un digit à cathode commune est un dispositif électronique qui peut afficher des chiffres et des lettres en utilisant des segments de lumière. Dans cet article, nous allons examiner comment afficher les chiffres 0 à 9 sur un digit à cathode commune.
Afficher les chiffres 0 à 9 sur un digit à cathode commune

1. Présentation
Ce programme montre comment afficher les chiffres 0 à 9 sur un digit standard à cathode commune (masse commune), type tdsr 5160.
Voir également : Datasheet d’un digit 7 segments à cathode commune type 5160
2. Principe des digits 7 segments à cathode commune
Ce qu’il faut bien comprendre, c’est qu’un digit, c’est ni plus ni moins 8 LEDs dans un boitier plastique : 7 LEDs pour chaque segment et 1 pour le point. Chaque LED-segment porte un nom., comme le montre ce schéma :

Brochage d’un Digit type 5160
Les digits 7 segments peuvent-être :
- à cathode commune (masse ou 0V commun à toutes les LEDs): le segment s’allumera sur un niveau HAUT
- ou à anode commune (+ commun à toutes les LEDs) : le segment s’allumera sur un niveau BAS

Schéma électrique interne équivalent d’un digit à cathode commune. Toutes les LEDs sont connectées ensembles à la broche du 0V.
Voir également : Datasheet d’un digit 7 segments à cathode commune type 5160
3. Matériel Nécessaire
3.1 L’espace de développement Arduino
- … pour éditer, compiler le programme et programmer la carte Arduino.

3.2 Le matériel suivant pour réaliser le montage associé
- une plaque d’essai pour montage sans soudures,

- 8 résistances 1/4w de 270 Ohms,








- un digit 7 segments à cathode commune,

4. Instructions de montage
- Connecter sur la broche 2 (configurée en sortie) la broche du segment e du digit via une résistance en série
- Connecter sur la broche 3 (configurée en sortie) la broche du segment d du digit via une résistance en série
- Connecter sur la broche 4 (configurée en sortie) la broche du segment c du digit via une résistance en série
- Connecter sur la broche 5 (configurée en sortie) la broche du segment pt du digit via une résistance en série
- Connecter sur la broche 6 (configurée en sortie) la broche du segment f du digit via une résistance en série
- Connecter sur la broche 7 (configurée en sortie) la broche du segment f du digit via une résistance en série
- Connecter sur la broche 8 (configurée en sortie) la broche du segment a du digit via une résistance en série
- Connecter sur la broche 9 (configurée en sortie) la broche du segment b du digit via une résistance en série
5. Le schéma théorique du montage

Le schéma théorique du montage
6. Le circuit du montage

Le schéma du montage à réaliser
7. Explication du programme
7.1 Structure globale du programme
Ce programme simple comprend :
- une entête déclarative
- une partie « configuration » qui ne sera exécutée qu’une fois (fonction setup( ) )
- une partie constituée d’une boucle sans fin que le programme répètera à l’infini ( fonction loop( ) ) : c’est le coeur du programme.
7.2 Déroulement du programme
Le programme se déroule de la façon suivante :
- Après avoir pris en compte les instructions de la partie déclarative,
- puis après avoir exécuté la partie configuration ( fonction setup( ) ),
- le programme bouclera sans fin ( fonction loop ( ) ), exécutant de façon répétée le code compris dans la boucle sans fin.

Le déroulement du programme
8. Au niveau de la partie déclarative :
Déclaration des constantes de broches
- Déclaration des constantes pour les broches utilisées dans le programme :
const int DIGIT_e=2; //declaration constante de broche const int DIGIT_d=3; //declaration constante de broche const int DIGIT_c=4; //declaration constante de broche const int DIGIT_pt=5; //declaration constante de broche const int DIGIT_g=6; //declaration constante de broche const int DIGIT_f=7; //declaration constante de broche const int DIGIT_a=8; //declaration constante de broche const int DIGIT_b=9; //declaration constante de broche
Déclaration des variables globales
- Déclaration des variables globales du programmes : on déclare une variable pour fixer la vitesse d’exécution du programme (cette variable est utilisée avec une instruction delay dans la suite du programme).
int vitesse=500; // variable de vitesse
9. Au niveau de la fonction d’initialisation setup( ) :
configuration des broches utilisées :
- Configuration des broches en sortie : on configure en sortie toutes les broches utilisées avec les segments du digit.
pinMode(DIGIT_e, OUTPUT); //met la broche en sortie pinMode(DIGIT_d, OUTPUT); //met la broche en sortie pinMode(DIGIT_c, OUTPUT); //met la broche en sortie pinMode(DIGIT_pt, OUTPUT); //met la broche en sortie pinMode(DIGIT_g, OUTPUT); //met la broche en sortie pinMode(DIGIT_f, OUTPUT); //met la broche en sortie pinMode(DIGIT_a, OUTPUT); //met la broche en sortie pinMode(DIGIT_b, OUTPUT); //met la broche en sortie
10. Au niveau de la boucle principale, la fonction loop ( ) :
- Pour l’affichage de chaque chiffre, on met au niveau HAUT (=allumé) les segments voulus en laissant les autres au niveau BAS (=éteint) à l’aide de l’instruction digitalWrite(). Entre chaque l’allumage de chaque chiffre, on fait une pause avec l’instruction delay. Voici par exemple le code pour le chiffre 0 :
// --- 0 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,1),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,1); delay(vitesse);
- Le programme recommence en boucle les instructions de la fonction loop( ).
Se reporter aux commentaires présents dans le programme pour plus de détails.
11. Mise en oeuvre du programme
11.1 Préparation du montage et programmation de la carte Arduino :
- Commencer par réaliser le montage indiqué sur plaque d’expérimentation
- Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle
11.2 Fonctionnement
- Les chiffres 0 à 9 s’affichent successivement sur le digit.
12. Le programme complet en langage Arduino :
A copier/coller directement dans l’éditeur Arduino
// --- Programme Arduino --- // par X. et P.E. HINAULT - 01/2010 // --- Que fait ce programme ? --- /* Affiche les chiffres 0 à 9 sur un digit à cathode commune (masse commune)*/ // --- Fonctionnalités utilisées --- // --- Circuit à réaliser --- // Connecter Segment e du digit CC sur la broche 2 (configurée en sortie) // Connecter Segment d du digit CC sur la broche 3 (configurée en sortie) // Connecter Segment c du digit CC sur la broche 4 (configurée en sortie) // Connecter Point du digit CC sur la broche 5 (configurée en sortie) // Connecter Segment g du digit CC sur la broche 6 (configurée en sortie) // Connecter Segment f du digit CC sur la broche 7 (configurée en sortie) // Connecter Segment a du digit CC sur la broche 8 (configurée en sortie) // Connecter Segment b du digit CC sur la broche 9 (configurée en sortie) //**************** Entête déclarative ******* // A ce niveau sont déclarées les librairies, les constantes, les variables... // --- Inclusion des librairies utilisées --- // --- Déclaration des constantes --- // --- constantes des broches --- const int DIGIT_e=2; //declaration constante de broche const int DIGIT_d=3; //declaration constante de broche const int DIGIT_c=4; //declaration constante de broche const int DIGIT_pt=5; //declaration constante de broche const int DIGIT_g=6; //declaration constante de broche const int DIGIT_f=7; //declaration constante de broche const int DIGIT_a=8; //declaration constante de broche const int DIGIT_b=9; //declaration constante de broche // --- Déclaration des variables globales --- int vitesse=1000; // variable de vitesse // --- Initialisation des fonctionnalités utilisées --- //**************** FONCTION SETUP = Code d'initialisation ***** // La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme void setup() { // debut de la fonction setup() // --- ici instructions à exécuter au démarrage --- pinMode(DIGIT_e, OUTPUT); //met la broche en sortie pinMode(DIGIT_d, OUTPUT); //met la broche en sortie pinMode(DIGIT_c, OUTPUT); //met la broche en sortie pinMode(DIGIT_pt, OUTPUT); //met la broche en sortie pinMode(DIGIT_g, OUTPUT); //met la broche en sortie pinMode(DIGIT_f, OUTPUT); //met la broche en sortie pinMode(DIGIT_a, OUTPUT); //met la broche en sortie pinMode(DIGIT_b, OUTPUT); //met la broche en sortie } // fin de la fonction setup() // ******************************************************************************** //*************** FONCTION LOOP = Boucle sans fin = coeur du programme ************* // la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension void loop(){ // debut de la fonction loop() // --- ici instructions à exécuter par le programme principal --- // affichage successif des chiffres sur le digit // --- 0 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,1),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0); delay(vitesse); //--- 1 digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,0); digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0); delay(vitesse); //--- 2 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,1),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0); delay(vitesse); // --- digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0); delay(vitesse); // --- 4 digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,0); digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0); delay(vitesse); // --- 5 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0); delay(vitesse); // --- 6 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,1),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0); delay(vitesse); // --- 7 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,0); digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0); delay(vitesse); // --- 8 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,1),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0); delay(vitesse); // --- 9 digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,1),digitalWrite(DIGIT_d,1); digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0); delay(vitesse); } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin // ******************************************************************************** // --- Fin programme ---
Articles similaires:
- Tester les segments d’un digit à cathode commune
- Les feux de circulation (6 Leds)
- Contrôle du sens de rotation d’un moteur CC (courant continu) à l’aide d’un bouton poussoir
- Contrôle du sens et de la vitesse de rotation d’un moteur CC (courant continu) à l’aide d’un bouton poussoir et d’une résistance variable
- Test simple de la rotation d’un moteur pas à pas bipolaire
Articles Liés
- SD Card : Afficher le contenu de la carte mémoire micro SD
Les cartes mémoire micro SD sont des supports de stockage très pratiques et très populaires.…
- Afficher du texte sur un afficheur LCD alphanumérique
L'afficheur LCD alphanumérique est un outil très pratique pour afficher des informations sur un écran.…
- Ethernet en mode serveur : Afficher la requête reçue du navigateur
L'Ethernet en mode serveur est un protocole de communication réseau qui permet aux ordinateurs de…