S'il est possible de commander un écran LCD ou une série de tubes nixie à partir d'un arduino, cela ne devrait pas être trop compliqué de commander un afficheur à 7 segments leds... |
-
La commande d'un écran LCD s'effectue avec le protocole série TTL (il ne faut donc même pas de conversiuon de niveaux). Il ne devrait donc pas être trop difficile de commander un afficheur à 7 segments.
Et pourtant, c'est plus compliqué, car l'afficheur n'a aucune électronique à bord. Il y a simplement autant d'entrées qu'il y a de segments (diodes électroluminescentes) et le module a une anode commune (ou une cathode commune dans certains cas). Par chiffre à afficher il y a donc 7 segments et éventuellement un point décimal.
Commande multiplexéeQuand les afficheurs sont apparus, ils étaient souvent commandés en multiplex. Pour commander 4 chiffres, il fallait 4 transistors PNP pour fournir le courant anodique des diodes. Les segments du chiffre recevaient un courant via 7 transistors NPN car les processeurs de l'époque ne pouvaient fournir qu'un faible courant de quelques milliampère. Après la commande d'un chiffre, le processeur passait au chiffre suivant et ainsi de suite.Pour un afficheur à 4 chiffre comme dans une horloge il fallait 4 + 7 sorties au processeur. Pour un processeur utilisé dans une horloge, cela ne posait aucun problème car le processeur ne devait pas faire grand chose d'autre. Mais dans notre situation (commande à partir d'un arduino) on voudrait utiliser le moins de pattes possibles. Le multiplexage n'est plus utilisé actuellement car il produit des interférences radio. Comme chaque chiffre n'est éclairé qu'un quart du temps, il faut un courant plus important, de l'ordre de 50mA par segment, alors que pour une commande statique un courant de 10 à 20mA suffit amplement.
Décodeur 7 segments CMOS 4543Les décodeurs 7 segments transforment un code BCD (binary coded decimal) en commande d'afficheur 7 segments. Ces décodeurs fonctionnent aussi bien avec les afficheurs à anode commune que cathode commune et peuvent même commander des afficheurs à cristaux liquides si on met une tension alternative sur une des broches. La fonction est disponible sous différents codes: 4054, 4543, 4558,...Ces puces ont un grand avantage, c'est la fonction de mémoire: quand le broche latch est haute, les codes BCD sont continuellement transformés en code 7 segments, quand la broche est basse les codes BCD ne sont plus transformés et la sortie est figée. On peut donc aisément sélectionner un chiffre en mettant la broche latch haute, tandis que les lignes BCD sont communes à tous les chiffres. En plus de l'entrée BCD et de la sortie 7 segments, la puce a encore d'autres entrée: une entrée blanking (1 = afficheur éteint), phase (1 = anode commune) et latch (1 = transfert in to out). C'est déjà une amélioration, avec 4 lignes "adresse" (sélection de la position) et 4 lignes data (données BCD) on peut commander l'afficheur complet. Mais on utilise toujours 8 pattes du processeur, alors qu'il est possible de commander l'afficheur avec moins de broches.
Série vers parallèle CMOS 4094La famille CMOS a beaucoup de membres interessants, comme un transfert sériel vers parallèle. Les 8 bits sériels sont lus lors du flanc ascendant du signal d'horloge et les 8 bits sont disponibles sur la sortie parallèle après une impulsion strobe.Un signal d'horloge et de strobe est nécessaire, la puce n'a pas d'entrée RS-232 ou équivalente. Au lieu d'utiliser une seule sortie de l'arduino, il faut en utiliser 3, mais c'est quand même mieux que les 11 ou 8 broches des montages précédents.
Commande du point décimal
Transmettre le BCD deux fois La puce a encore une entrée supplémentaire, un output enable (si 1) et deux sorties sérielles pour connecter plusieurs modules à la chaine.
Décodeur BCD vers décimal CMOS 4028Il est facile de commander jusqu'à 10 chiffres sans devoir utiliser de ligne de processeur supplémentaire: nous avons en effet un bus d'adresse qui n'a qu'une seule ligne haute à un moment donné. Avec un décodeur BCD vers décimal on peut commander 10 chiffres (et éventuellement le point décimal correspondant). Le code data sans adresse pour figer le chiffre qui vient d'être modifié (flanc descendant de la ligne de sélection) est transmis via un code BCD illégal, par exemple 15. La puce est placée en sortie du 4096 et avant la patte de sélection du 4543. Cette possibilité n'est pas reprise en détail sur le schéma. Attention, certaines versions de la puce ne mettent pas toutes les sorties à zéro quand on entre un code illégal (bcd > 10), il s'agit par exemple d'un CD4028CN. Le 4028 est également utilisé dans la commande d'une horloge avec afficheurs nixie pour la sélection d'une position. L'afficheur peut être éteint via l'entrée blanking du 4543, par l'envoi d'un chiffre illégal (11 à 15) ou en coupant l'alimentation 5V de l'afficheur. L'envoi d'un chiffre illégal permet d'éteindre un chiffre non significatif. Modifier la tension d'alimentation de l'afficheur permet également de modifier l'intensité, mais lde 4543 n'est conçu pour fournir que 5mA.
Le points qui clignotent c'est l'indication de la position qui est modifiée. Il ne s'agit pas d'une indication de l'heure, mais d'un niveau. |
Publicités - Reklame