Skyduino:~#
Articles
arduino, programmation, tutoriel

[Arduino] Afficheur 7seg avec contrôleur intégré (TIL311, HP-5280-7300, …)

Bonjour tout le monde !

Aujourd’hui je vous propose un morceau de « code arduino » que j’ai réalisé pour un membre du forum arduino.cc.
Le principe est simple : piloter un afficheur 7 segments avec contrôleur intégré.

Le code a été réalisé pour des afficheurs de type TIL311, mais j’ai fait le test avec un HP-5280-7300 et tout marche sans problème.
Normalement cela devrait fonctionner avec n’importe quel afficheur 7 segments utilisant un interface parallèle 4 bits + latch.

Le matos :

Une carte arduino, un afficheur 7 segment compatible, une breadboard, et quelques fils de câblage.

Niveau câblage c’est pas super compliqué, une petite breadboard et hop !
Suivant l’afficheur utilisé le câblage sera différent.
En général il y aura toujours 4 broches pour le bus de données et une broche pour le « latch ».


Bon je vous passe les détails du câblage, il suffit de lire le datasheet de votre afficheur et modifier les broches déclarées dans le code ci dessous.

Et donc comme promis, le code source :

/*
 * Exemple d'utilisation d'un afficheur 7seg avec contrôleur intégré (type TIL311, HP-8250-7300, etc ...)
 */

/* Lignes de contrôle */
#define LATCH_STROBE 2
#define BLANK_INPUT 3

/* Bus de données */
#define LATCH_DATA_A 4
#define LATCH_DATA_B 5
#define LATCH_DATA_C 6
#define LATCH_DATA_D 7

/* Macro d'usages (TIL311) */
#define afficheurOn() digitalWrite(BLANK_INPUT, LOW)
#define afficheurOff() digitalWrite(BLANK_INPUT, HIGH)

/* Fonction qui affiche une valeur sur le 7seg */
void affichage(uint8_t valeur) {
  valeur &= 0x0F; // Sécurité : 0 < valeur < 15
  
  /* Envoi des données sur le latch */
  digitalWrite(LATCH_DATA_A, bitRead(valeur, 0));
  digitalWrite(LATCH_DATA_B, bitRead(valeur, 1));
  digitalWrite(LATCH_DATA_C, bitRead(valeur, 2));
  digitalWrite(LATCH_DATA_D, bitRead(valeur, 3));
  
  /* Affichage des données */
  delayMicroseconds(100);
  digitalWrite(LATCH_STROBE, LOW);
  delayMicroseconds(100);
  digitalWrite(LATCH_STROBE, HIGH);
}

/* setup() */
void setup() {
  /* Mise en sortie des broches de controle */
  pinMode(LATCH_STROBE, OUTPUT);
  pinMode(BLANK_INPUT, OUTPUT);
  
  /* Mise en sortie des broches de données */
  pinMode(LATCH_DATA_A, OUTPUT);
  pinMode(LATCH_DATA_B, OUTPUT);
  pinMode(LATCH_DATA_C, OUTPUT);
  pinMode(LATCH_DATA_D, OUTPUT);
  
  afficheurOff();
}

/* loop() */
void loop() {
  static byte i = 0;
 
  /* Affichage de i */ 
  affichage(i++);
  
  /* Si i == 10 alors i = 0 */
  if(i == 10) i = 0;
  
  /* Delay d'une seconde */
  delay(1000);
}

Et le résultat IRL :




(Ne me demandez pas pourquoi je suis tombé que sur des multiple de 3 …)

Et « just for fun » la version GIF animé !

GIF powaa !

(J’ai coupé le gif au digit 4, faut pas pousser quand même ;))

Voila voila, Enjoy ! 🙂

Publicités

Discussion

3 réflexions sur “[Arduino] Afficheur 7seg avec contrôleur intégré (TIL311, HP-5280-7300, …)

  1. Hello !
    J’ai moi-même eu l’occasion de bricoler avec ces afficheurs et c’est vrai que c’est un plaisir comparé à un combo « 7 segments + décodeur BCD + paquets de résistances » 😀
    Je suis en ce moment à la recherche d’un fournisseur de TIL311. Pourrais-tu m’indiquer ou tu as trouvé les tient ? (car les grands fournisseurs du genre de RadioSpares ne les vendent plus 😦 et même en écumant le web je suis incapable de trouver une référence équivalente de ce composant magique)

    Merci d’avance !

    Publié par Simon | 17 août 2012, 22 h 24 min
    • >> Pourrais-tu m’indiquer ou tu as trouvé les tient ?

      C’est de la récup fait sur un vieux fréquencemètre HS.
      Je sait même pas si ce genre d’afficheurs 7 segments avec driver intégré sont encore fabriqué …

      Publié par skywodd | 18 août 2012, 15 h 02 min
      • Idem c’est de la récup’… J’ai l’impression aussi que la fabrication est terminé… dommage !

        Publié par Simon | 29 août 2012, 15 h 49 min

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Skyduino devient Carnet du Maker

Le site Carnet du Maker remplace désormais le blog Skyduino pour tout ce qui touche à l'Arduino, l'informatique et au DIY.