Afficheurs à LED
Une réalisation électronique requiert souvent quelques LEDs à piloter, et aussi l'affichage de quelques données.
Dans la page précédente, on a vu que les puces utilisées pour piloter les neopixels pouvaient être une solution commode pour les afficheurs LED du genre 7 segments. Mais cette solution n'est pas utilisable pour des matrices de LEDs, celles qui sont les plus intéressantes pour afficher des messages alphanumériques.
Piloter directement une matrice de LEDs est une vraie plaie du côté programmation microcontrôleur, mais mortelle en ce qui concerne les précieuses broches d'entrée/sortie. Des puces d'interface sont apparues pour soulager cette partie, et parfois même directement intégrées avec l'afficheur lui-même.
Je vais tenter de passer en revue ce que l'on peut encore trouver aujourd'hui. Et parfois même des nouveautés.
Nota : je ne considère ici que les matrices de LEDs, en excluant les afficheurs 7 segments, même s'ils sont parfois constitués de plusieurs LEDs en parallèle ou en série.
Les matrices de LED rétro
Commençons par les matrices simples, apparues dans les années 70, avec des LEDs forcément rouge à l'époque. On trouve encore parfois ces pièces à vendre.
C'est certes une bonne idée de réaliser un matriçage car pour allumer une LED, il suffit de sélectionner une ligne et une colonne, et ça limite le nombre de broches.
Mais on ne peut allumer qu'une seule LED à la fois, ça va vite être pénible pour afficher quelque chose, il va falloir réaliser une machine qui tourne suffisamment vite pour tromper l'œil grâce à la persistance rétinienne.
Introduisons la matrice considérée historiquement comme la première qui soit industrielle, la Monsanto MAN-2.
Pour ceux vraiment intéressés par l'histoire de ces afficheurs, allez sur le site d'
Industrial Alchemy / vintage technology.
Inutile de refaire ce qui existe déjà...
Vous y trouverez nombre d'afficheurs devenus introuvables. Je ne retiendrais que ceux qu'on arrive encore à obtenir.
Il existe de nos jours pas mal de matrices 5x7 et 8x8 LEDs, assez grosses en plastique souvent blanc, et ce ne sont pas celles qui m'intéressent.
Je préfère celles où on voit directement la puce LED, sans artifice de diffusion.
Pour vous éviter de chercher chez les fabricants, les produits obsolètes :
- Hewlett-Packard : ça fait des lustres qu'ils ne font plus ça. 5082-7101, HDSP-2000, HDSP-2112, QDSP-2273. La 5082-7107 avait 5 caractères 5x7 pixels. Éventuellement trouvable par hasard. Allez voir Broadcom, j'ai mis les chips intéressants plus loin.
- ams-Osram/Siemens. Inutile de chercher chez eux, ça n'existe plus.
- DLxx416 (DLR2416)
- ISD2xxx (ISD2310, ISD2312, ISD2352)
- PDx43x (PD4436)
- PDSP188x (PDSP1880, PDSP1882)
- PDSP211x (PDSP2110, PDSP2112)
- SCDQ554x (SCDQ5542P)
- SCD5510xA (SCD55100A)
- SCE574x (SCE5740, SCE5742)
- SCE578x (SCE5780, SCE5782)
- SLx2016 (SLR2016, SLO2016)
- HDSPxx...
- Agilent ne sont plus dans ce commerce.
- Everlight : ELMM-457 a fait long feu.
- Soviet Opteron 3LS340A1, une matrice simple 5x7 pixels. On l'aperçoit parfois sur des sites russes.
- RFT VQC10 : 4 caractères 5x7 pixels, avec une électronique inhabituelle, que l'on trouve encore ici et là. À éviter.
Il ne reste aucune offre, à part tomber sur d'anciens stocks.
TIL305 : 5x7 pixels 7.62 mm (0.3")
En 1971, Texas Instruments a sorti la matrice TIL305, composée de 5x7 pixels, avec une hauteur de 7.6 mm, soit 0.3". C'était la plus simple des matrices, et elle l'est restée.
Les équivalents sont tous obsolètes.
- Texas Instruments TIL305
- Monsanto MAN2
- Kingbright TA03-xx (TA03-11SRT / TA03-11ET)
- LiteOn LTP-305xx (LTP-305HR LTP-305R)
- SunLed
XMMx07x (XMMR07A, XMMR07C),
XMUx07x (XMUR07A, XMUR07C) - (USSR) АЛС340А / ALC340A / ALS340A-1 , 3ЛС340A 3LS340A
- LED-Tech LJ35x1-x1
(LJ3511-11/LJ3511-21/LJ3551-11/LJ3551-21/LJ3571-11/LJ3571-21) - Dialco Dialight 745-0005
- IEE (Industrial Electronic Eng.) LRT1704R
- LD713 AH/CH LD713CR
On peut encore en trouver avec plus ou moins de bonheur, parfois à des prix astronomiques.
On peut refaire soi-même ces afficheurs de nos jours grâce aux progrès et réduction de coût des PCB en utilisant des LEDs SMD.
Généralement on associe à ces matrices une puce de pilotage, microcontrôleur ou autre.
Et il n'existe pas d'autres matrices de ce genre.
Les puces de pilotage
Pour piloter ces matrices, des puces spécifiques ont été proposées pour faciliter la tâche du système principal et limiter le nombre d'entrées/sorties, mais on peut aussi le faire avec un microcontrôleur quelconque.
- Introduction to Driving LED Matrices / Avago.
Un peu vieux, mais il y a la base. - More Thoughts on SPI vs I2C Drivers (Bharbour) : certainement les réflexions et essais les plus intéressants si vous voulez faire de l'affichage basé sur des matrices 5x7.
Microcontrôleur
Vous allez être tenté de faire vous-même le pilotage avec votre microcontrôleur préféré, mais vous allez manger toutes vos pattes d'entrée/sortie, et occuper le micro à plein temps car il faudra rafraichir la matrice en permanence.
Alors immanquablement vous vous tournerez vers des registres à décalage, certainement du genre 74HC595 pour sélectionner les lignes (ou les colonnes, à vous de voir), et piloter, éventuellement aussi via un registre à décalage, les colonnes (ou les lignes) à l'aide d'un transistor, ou mieux une source de courant, pour imposer la consommation électrique.
Sinon, vous pouvez jeter votre dévolu sur des puces spécialisées, et il n'y a pas tant d'offres que ça. Vous serez aidé par des réalisations disponibles sur le web, cela facilitera votre tâche. Dieu merci, ces circuits d'interface sont pilotables par une interface série. Ouf.
Maxim MAX7219...
Maxim Integrated, maintenant Analog Devices, propose des puces pilotant des matrices de LEDs, que ce soit des 7 segments ou autres :
- MAX7219 / MAX7221 Serially Interfaced, 8-Digit LED Display Drivers
- MAX6952 4-Wire Interfaced, 2.7V to 5.5V, 4-Digit 5 x 7 Matrix LED Display Driver
- MAX6953 2-Wire Interfaced, 2.7V to 5.5V, 4-Digit 5 x 7 Matrix LED Display Driver
- MAX6960 / MAX6962 4-Wire Serially Interfaced 8 x 8 Matrix Graphic LED Drivers
- Les différences entre le MAX7219 et le MAX6960.
- La carte d'évaluation MAX6952EVKIT utilise deux MAX6952 pour piloter 8 matrices 5x7 pixels.
Vous trouverez sur le web de nombreuses pages où c'est le MAX7219 qui est utilisé, ce qui peut être pratique pour récupérer du code à peu de frais. Mais les alternatives sont aussi à regarder, ça dépend de ce que vous voulez faire, en particulier si vous voulez faire un grand ou un petit panneau, une seule ligne ou un petit tableau...
Cette puce a le très bon goût d'être cascadable.
A la base, ces puces pilotent des matrices 8x8 pixels, ce qui permet d'adresser 8 digits 7 segments. On peut les mettre en série, ce qui est très commode et nettement plus simple que de devoir ajouter des fils d'adresse pour les sélectionner une par une.
On peut évidemment l'utiliser pour des afficheurs 5x7 pixels, mais il faudra une puce par afficheur :
- Mikroe propose MIKROE-2245 Matrix R Click (faites attention au prix si vous voulez l'acheter, c'est variable entre les distributeurs...)
Le défaut principal de la solution Maxim : c'est un peu cher. Pour des puces aussi anciennes, les prix auraient pu baisser. Et elle est un peu grosse, à cause du nombre d'entrées-sorties. Mais bon, on la trouve en DIL, c'est commode.
Lumissil IS31FL3730
Lumissil propose des drivers de LED :
- IS31FL3718 is a general purpose 8×7 LED matrix driver
- IS31FL3738 is a general purpose 6×8 LEDs matrix driver
- Mais c'est l' IS31FL3730 qui peut piloter une ou deux 8×8, 7×9, 6×10, ou 5×11 matrices qui a eu du succès chez les makers :
Si l'IS31FL3730 permet de piloter deux matrices 5x7, il a fallu rajouter un petit microcontrôleur (projet Pixie) pour rendre chainable le système en utilisant le classique couple {horloge, données}, les données étant propagées d'une manière série. Sinon il faudra jouer avec des puces spéciales pour décaler les adresses ou augmenter le nombre de bus I2C.
Notez l'astuce d'utiliser les LEDs tête-bêche pour limiter le nombre de connexions.
Le détail amusant est l'entrée audio de l'IS31FL3730 qui permet de moduler l'intensité avec le son. Lumissil propose un paquet d'autres puces réalisant une fonction similaire.
Autres drivers
Les puces précédentes sont plus connues que celles-ci :
- AMS LED Drivers :
- Holtek :
- HT1632D/HT1632D-2 : 32×8 & 24×16 LED Driver
- Et d'autres puces dans les "LED controller & driver"
- Titan LED panel display driver chip :
- TM1652 : 7×6 ou 8×5
- Et bien d'autres puces...
- Offre ST pas pour des matrices comme on l'entend ici...
À part le :
- STLED524 5x24 dot matrix LED display driver donc qui doit pouvoir piloter 3 TIL305.
- Nuvoton :
- Rohm semiconductor :
- Texas Instruments RGB LED drivers
Toute une tirée, sélectionnez "matrix" pour trier. Même des drivers similaires aux neopixels, mais avec une horloge. Mais toujours très pratiques, sauf si vous voulez faire de grandes matrices. - Toshiba TB62713N/F 7×5 dot display decoder and driver (obsolète, plus rien d'intéressant chez Toshiba)
Port parallèle
Des afficheurs alphanumériques, souvent des matrices 5x7 pixels assemblées en groupe de 4 ou 8 caractères, se voyaient greffées d'une puce de pilotage qui possédait une interface soit parallèle, soit série.
Nous allons voir ici les ports parallèles, pas forcément les plus commodes car requérant pas mal d'entrées/sorties, souvent 8 bit de données et quelques bits d'adresse (pour différencier plusieurs sections d'affichage), avec en plus une palanquée de signaux utilitaires de pilotage.
Si vous avez besoin de plus d'entrées-sorties, jetez un œil à une puce du genre MCP23017. D'un côté une interface I²C (ou SPI), de l'autre 16 GPIOs et 2 broches d'interruption. Je dis ça, je dis rien.
DLx1414 DLx2416
Avec 4 caractères 5x7 pixels de 3.6 mm, cette famille fut vendue par Osram, Infineon, Siemens.
Mais il faut un petit décodeur pour sélectionner chaque digit individuellement.
On en trouve encore sur divers sites avec des stocks parfaitement non crédibles. Sa version militaire MDL2416 est parfaitement ridicule de résistance, un vrai Panzer.
PDxx3x Osram
La famille des PDxx3x présente 4 caractères 5x7 pixels, vendue par Osram, et Siemens.
- PD243x 5.0 mm 0.20" (PD2435, PD2436)
- PD353x 6.9 mm 0.27" (PD3535, PD3536)
- PD443x 11.4 mm 0.45" (PD4435, PD4436)
Le PD443x présente une hauteur de caractère de 11.43 mm, c'est rare. Mais ils sont introuvables.
HDLx-x41x
Remplace la série HPDL.
Toujours 4 caractères de 5x7 pixels, hauteur de 3.6, 4.7 et 6.9 mm, rouge, jaune, orange, vert.
- HDLx-1414 3.7 mm 0.14" (HDLO-1414, HDLS-1414, HDLU-1414)
- HDLx-2416 5.0 mm 0.20" (HDLO-2416, HDLS-2416, HDLU-2416)
- HDLx-3416 6.9 mm 0.27" (HDLO-3416)
HDSP-21xx HDSP-25xx
Une série avec toujours 8 caractères de 5x7 pixels, rouge, jaune, orange, vert, par Broadcom, Osram, Avago, et HP antérieurement.
- HDSP-210x/-211x/-250x Series
- HDSP-210x 5.0 mm 0.20" (HDSP-2112 HDSP-2107)
- HDSP-250x 6.9 mm 0.27" (HDSP-2502 HDSP-2504)
- HDSP-213x 5.0 mm 0.20" (HDSP-2132) (applications militaires)
- HDSP-253x 5.0 mm 0.20" (HDSP-2532, HDSP-2534)
Port série
Les afficheurs intégrant une puce de pilotage à port série sont certainement les plus intéressants et les plus pratiques de mon point de vue, en particulier quand on peut les chainer. Ils utilisent peu d'entrées-sorties, c'est leur principal intérêt. Apparemment, la taille maximale des caractères est de 5 mm.
HCMS-29xx HCMS-39xx
La grande famille HCMS-29xx ou HCMS-39xx présente une interface série. 4, 8 ou 16 caractères de 5x7 pixels, hauteur de 3.6 ou 4.7 mm (mais pas plus grand), rouge, jaune, vert et bleu. Chez Agilent, Avago, Broadcom.
La famille HCMS-39xx est la même que la famille HCMS-29xx, mais peut travailler dès 3.3 volts. Attention aux légères différences de nomenclature.
- HCMS-29xx
- HCMS-290x 3.7 mm 0.14" 4 digits (HCMS-2905 HCMS-2902)
- HCMS-291x 3.7 mm 0.14" 8 digits (HCMS-2915 HCMS-2912)
- HCMS-292x 3.7 mm 0.14" 2x8 digits (HCMS-2925 2922)
- HCMS-296x 5.0 mm 0.20" 4 digits (HCMS-2965 HCMS-2962)
- HCMS-297x 5.0 mm 0.20" 8 digits (HCMS-2975 HCMS-2972)
- HCMS-39xx
- HCMS-390x 3.7 mm 0.14" 4 digits (HCMS-3906 HCMS-3902)
- HCMS-391x 3.7 mm 0.14" 8 digits (HCMS-3916 HCMS-3912)
- HCMS-396x 5.0 mm 0.20" 4 digits (HCMS-3966 HCMS-3962)
- HCMS-397x 5.0 mm 0.20" 8 digits (HCMS-3976 HCMS-3972)
Pour chercher dans l'offre Broadcom :
HCMS-235x HCMS-2333
Un pilotage un peu spécial, les rangées sont adressables en série, mais il faut piloter les colonnes, donc pas vraiment de l'interface série commode. Et puis c'est du militaire, en céramique. Osram en avait toute une série. Toujours en 4 digits.
- HCMS-235x 5.0 mm 0.20" militaire, vert ou jaune
- HCMS-2333 5.0 mm 0.20" militaire, vert-jaune
- ISD201x, 231x, 235x
- ISD201X— 3.81 mm (0.150") (IDS2012, IDS2010)
- ISD231X— 5.08 mm (0.200") (IDS2312, IDS2310)
- ISD235X— 5.08 mm (0.200") (IDS2352)
SCx574x Osram
Deux hauteurs disponibles, 4 caractères. Introuvables (et ne croyez pas les distributeurs qui en annoncent des tonnes).
SCD5510xA Osram
Une configuration inhabituelle avec ses 10 caractères de 5x5 pixels hauteur 3.7 mm.
- SCD5510xA (SCD55104A, SCD55102A)
Interface série, mais pas vraiment cascadable, il faudra sélectionner chaque afficheur. Mais bon, avec 10 caractères, on n'en mettra pas des tonnes.
Et ce ne sont certainement pas les seuls qui ont existé, mais bon, certains peuvent encore être achetés.