Logo Mon Club Elec

Tester les segments d’un digit à cathode commune

Les segments d’un digit à cathode commune sont une partie essentielle des systèmes électroniques. Ils sont utilisés pour afficher des informations numériques et analogiques sur des écrans à cristaux liquides, des afficheurs à LED et des afficheurs à cristaux liquides. Il est important de tester ces segments pour s’assurer qu’ils fonctionnent correctement et qu’ils sont prêts à être utilisés. Dans cet article, nous allons examiner les différentes méthodes pour tester les segments d’un digit à cathode commune et discuter des avantages et des inconvénients de chaque méthode.

Tester les segments d’un digit à cathode commune

Tester les segments d’un digit à cathode commune

1.  Présentation

Ce programme teste les segments d’un digit à 7 segments à cathode commune (masse commune). Ce programme montre comment allumer les 7 segments et le point d’un digit standard type tdsr 5160, à cathode commune (masse commune). Un bon début avant d’afficher des chiffres sur un Digit.

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 :

Tester les segments d’un digit à cathode commune

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
Tester les segments d’un digit à cathode commune

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.
Tester les segments d’un digit à cathode commune

3.2  Le matériel suivant pour réaliser le montage associé

  • une plaque d’essai pour montage sans soudures,
Tester les segments d’un digit à cathode commune
  • 8 résistances 1/4w de 270 Ohms,
Tester les segments d’un digit à cathode commune Tester les segments d’un digit à cathode commune Tester les segments d’un digit à cathode commune Tester les segments d’un digit à cathode commune
Tester les segments d’un digit à cathode commune Tester les segments d’un digit à cathode commune Tester les segments d’un digit à cathode commune Tester les segments d’un digit à cathode commune
  • un digit 7 segments à cathode commune,
Tester les segments d’un digit à 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

Tester les segments d’un digit à cathode commune
Le schéma théorique du montage

6.  Le circuit du montage

Tester les segments d’un digit à cathode commune
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.
Tester les segments d’un digit à cathode commune
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 ( ) :

  • On met successivement au niveau HAUT (=allumé) chaque segment en laissant les autres au niveau BAS (=éteint) à l’aide de l’instruction digitalWrite(). Entre chaque l’allumage de chaque segment, on fait une pause avec l’instruction delay.
//— segt a
digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,0);
digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0);
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 segments du digit s’allument successivement.

12.  Le programme complet en langage Arduino :

A copier/coller directement dans l’éditeur Arduino

// — Programme Arduino —
// par X. HINAULT – 01/2010

// — Que fait ce programme ? —
/* Test des segments d’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=500; // 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 —

// test des segments 1 à 1 et du point

//— segt a
digitalWrite(DIGIT_a,1),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,0);
digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0);
delay(vitesse);
// — segt b
digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,1),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,0);
digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0);
delay(vitesse);
// — segt c
digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,0),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);
// — segt d
digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,1);
digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0);
delay(vitesse);
// — segt e
digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,0);
digitalWrite(DIGIT_e,1),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0);
delay(vitesse);
// — segt f
digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,0);
digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,1),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,0);
delay(vitesse);
// — segt g
digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,0);
digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,1),digitalWrite(DIGIT_pt,0);
delay(vitesse);
// — pt
digitalWrite(DIGIT_a,0),digitalWrite(DIGIT_b,0),digitalWrite(DIGIT_c,0),digitalWrite(DIGIT_d,0);
digitalWrite(DIGIT_e,0),digitalWrite(DIGIT_f,0),digitalWrite(DIGIT_g,0),digitalWrite(DIGIT_pt,1);
delay(vitesse);

} // fin de la fonction loop() – le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

// — Fin programme —
 

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.