Différentes façons de commander
des afficheurs sept segments
Pour faire un affichage sur plusieurs afficheurs leds, il existe différentes méthodes avec des avantages et des inconvénients.
Il ne sera question que des méthodes utilisant un µC, picaxe, ou autre.
Page concernant les drivers MAX7919 Page concernant les drivers TM1637 Il y a les deux familles: anodes communes ou cathodes communes certains drivers imposent l'une au l'autre.
Les 7 segments sont désignés unanimenent pas des lettres de a à g :
1- Méthode utilisant uniquement un µC:
Dans cette méthode, le µC fait tout le travail, commutation des segments et multiplexage des afficheurs.
Les 8 segments, point décimal compris, occupent 8 broches du µC, et une broche par afficheur multiplexé
Un morceau de code (non testé) pour afficher les chiffres 3 et 5 sur deux digits, nommés digit1 et digit2
Pour plus d'explication,
voir cette page et les suivantes, éventuellement.
#picaxe 20M2
#no_data
dirsB=%11111111
symbol digit1=C.1
symbol digit2=C.2
do
b0=3
lookup b0,(254,48,109,121,51,91,95,112,255,123),b1
low digit2
pinsB = b1
high digit1
b0=5
lookup b0,(254,48,109,121,51,91,95,112,255,123),b1
low digit1
pinsB = b1
high digit2
loop
Avantages:
Il n'y a pas besoin de driver
La description du caractère est faite segment par segment et codée sur un octet, on peut afficher tous les caractères possibles avec un afficheur 7 segments
Inconvénients:
Méthode gourmande en I/O µC, 8 pour les segments et 1 par digit. Soit 12 pour un affichage de 4 digits.
Comme pour toutes les méthodes où le multiplexage est sur l'alimentation des afficheurs, pour N afficheurs, le temps d'allumage de chaque digits est, au mieux de 1/N. La luminosité de chaque digit est divisée par N. Cette perte de luminosité pourrait être compensée par une augmentation de courant, mais les sorties des µC son limitées (à 20mA max pour un picaxe et 90mA au total).
Les afficheurs ne peuvent être alimentés qu'en 5V
2 - Méthode utiliant un µC avec ampli de courant Pour palier les limitations de la méthode précédente, on peut ajouter un ampli de courant sur les sorties du µC.
L'UDN2981 est adapté au problème, il comporte 8 amplis darlington compatibles TTL (0 à 5V) datasheet
Ce composant se trouve facilement sur eBay à très faible cout.
La résistance de limitation de courant R est à calculer en fonction de la tension (Vcc) d'alimentation de l'afficheur du Vf et du courant nécessaire pour l'allumage des segments, voir la datasheet de l'afficheur concerné.
2 - Méthode utilisant un driver type CD4511
Le driver a une table de conversion BCD - chiffres et une architecture à trois étages.
datasheet La table de caractères ne donne que les chiffres de 0 à 9
Chaque étage à une fonction et une commande:
Latch : c'est le "verrou", une mémoire de l'entrée DCB (DO,D1,D2,D3), rafraichie par une impulsion sur LE
LatchEnable (LE) = H . La fonction mémoire n'est pas utilisée, le code DCB ne fait que traverser.
Decoder: Table de conversion. Avec la commande BL, l'affichage est "Blank", c'est à dire noir, éteint.
Driver: Etage d'alimentation des LEDS, avec la commande LT, LightTest, tous les segments s'allument.
Avantages:
On a gagné une table de conversion des caractères;
On a moins de broches µC utilisées.
Inconvénients:
On ne peut afficher que des chiffres (sauf pour le
74LS47)
Le point décimal doit être géré indépendamment (1 broche µC, ou autre)
Si les entrées sont en TTL 5 V, les sorties le sont aussi, les afficheurs sont en 5V
La commutation se fait encore par l'alimentation, mêmes problèmes que la méthode précédente
3- Méthode utilisant un driver type CD4511 plus un ULN2003
La famille des ULN, ULN2003 ou ULN2803 regroupent 7 ou 8 amplis. Les ULN XX03 sont compatibles TTL:
En particulier, pour un
ULN2803, les 8 entrées sont en 5V et les sorties montent jusqu'à 50V pour un courant max de 500mA.
Plus faciles d'emploi que des transistors, il servent d'interfaces entre µC et CD4511, alimentés en 12V,(18Vmax), les CD4511 peuvent alors piloter de grands afficheurs dont les segments comportent plusieurs leds en série et demande des tensions plus élevées ou des rubans de leds en 12V.
Avantages:
La possibilité de piloter des afficheurs comportant plusieurs leds par segments et demandant des tensions d'alimentation élevées.
Sans être un problème, les uln inversent le signal BCD, il faut en tenir compte dans le programme.
Inconvénients:
Ce sont les mêmes que pour les méthodes précédentes, le multiplexage des alimentations fait perdre d'autant plus de luminosité qu'il y a d'afficheurs.
4- Méthode utilisant le registre latch du CD4511
Le CD4511 possède un registre mémoire, lorsque la broche LE est au niveau bas (0v), les entrées BCD sont prisent en compte et mémorisées pendant le niveau haut mais si cette broche reste au niveau bas, il n'y a pas de fonction mémoire.
En envoyant une brève impulsion 0v au bon moment, les entrées présentes pendant cette impulsion sont mémorisées jusqu'à l'impulsion de raffraichissement suivante.
Une alternative au CD4511 est le
CD4543, qui permet d'utiliser des afficheur cathodes communes ou anodes communes, suivant le niveau de sa broche "phase". Il suffit de remplacer sur l'afficheur, le 0v des cathodes par le +V des anodes.
Avantage:
Grace à la mémorisation de l'affichage, le digit reste allumé tout le temps du cycle de rafraichissement, aucun scintillement possible, la luninosité est constante à 100%, quelquesoit le nombre d'afficheurs et la vitesse de raffraichisement de l'affichage.
Inconvénients:
Il faut un décodeur CD4511 par afficheur (vu le prix de ce composant, c'est pas trop grave). On peut par ex. se fabriquer un petit module à accoler sur afficheur, avec un connecteur à 5 broches. Sur une "carte mère", un connecteur par afficheur, les entrées BCD des afficheurs sont toutes en parallèles, Le multiplexage des alimentations des autres méthodes est remplacé par une impulsion de quelques µs sur l'entré LE du digit à modifier.
5- Méthode utilisant un CD4543 et un uln2003 par digit
Si ce qui précède ne suffit pas, en voici une autre, alimentant des segments de 50V pour un courant de 500mA.
(Voir les limitations en fonction du nombre de canaux utilisées , page 6 datasheet 2803)
Les décodeurs restent en 5V, mais les sorties sont amplifiées en tension et courant par un uln dédié à chaque segments.
Les uln sont des amplificateurs à collecteurs ouverts, ils ne fournissent pas la tension positive. Cette tension vient de l'afficheur, qui doit donc être à Anodes Communes.
Un niveau haut en sortie du décodeur donne un niveau bas en sortie de l'uln et le segment s'allume.
Grace à l'inverseur uln, un CD4511 convient également.
Les segments peuvent aussi être constitués de morceaux de rubans de leds 12V :
Voir cet exemple.