Écrans que nous aimons pirater : la famille HD44780

Il existe trop de types d’affichage différents – certains d’entre eux, vous les connaissez déjà. J’aimerais vous aider à naviguer dans le monde de l’affichage accessible aux amateurs : faisons un voyage ensemble, technologie par technologie, obtenons un aperçu de haut niveau de tout ce que vous pourriez vouloir savoir à ce sujet et apprenons tous les détails que vous n’aviez jamais connus. il fallait savoir. En fin de compte, j’aimerais que vous puissiez trouver les meilleurs présentoirs pour n’importe quel projet que vous pourriez avoir en tête, quel qu’il soit.

Aujourd’hui, jetons un coup d’œil à une technologie LCD bien connue : les écrans HD44780, un type d’écran avec lequel nous, les amateurs, travaillons depuis les années 1980. Son nom vient de la puce de pilote HD44780 – un circuit intégré de pilote d’affichage de caractères qui se connecte à un panneau d’affichage brut et fournit une interface simple. Les écrans HD44780 ne sont pas réputés pour leur efficacité énergétique, leur technologie de pointe, leur flexibilité ultime ou leur petite taille, d’ailleurs. Cependant, ils ont fait leurs preuves, sont faciles à piloter, nécessitent peu ou pas de puissance de calcul sur votre MCU et vous pourrez les acheter dans un avenir prévisible. Ils ne sont pas sur le point d’être retirés du marché et méritent également une certaine place dans nos boîtes de pièces détachées.

Il y a un IC clone HD44780 sous cette goutte époxy ! CC0 1.0

Si vous travaillez avec des écrans HD44780 pour un projet ou deux, vous pourriez acquérir un nouveau super pouvoir inutile : remarquer combien d’écrans HD44780 sont encore utilisés dans toutes sortes d’appareils destinés aux utilisateurs, publics ou privés. En sortant et en déplacement dans votre vie de tous les jours, vous pouvez rencontrer une grille familière de 16 x 2 de caractères dans les caisses enregistreuses, les distributeurs automatiques de billets de transports publics, les panneaux de sécurité domestique, les équipements industriels et d’usine, les machines à café publiques et autres microcontrôleurs. lieux aidés en tout genre !

Facilité d’utilisation

Vous ne pouvez vraiment pas vous tromper avec un écran HD44780 si tout ce que vous voulez est une sortie de texte de base. Nous les utilisons comme écrans pour toutes sortes de projets, écrans d’interface utilisateur d’imprimante 3D, indicateurs d’état de serveur domestique, diagnostics de robots et autres gadgets, horloges, analyseurs de spectre. Autrefois, n’importe quelle carte de développement MCU que vous pouviez acheter avait un écran HD44780, ou au moins un en-tête pour celui-ci !

L’envoi de données à un écran HD44780 est exceptionnellement simple : à la base, vous l’envoyez en ASCII, et il affiche consciencieusement l’ASCII que vous l’avez envoyé. Il n’y a pas de framebuffer à restituer, pas de polices à stocker et à gérer, juste ASCII, chaque caractère occupant une partie de 5 x 8 de l’écran. De plus, six GPIO suffisent pour piloter un tel écran – ou deux, si vous utilisez un registre à décalage comme le 74HC595 ou une très simple puce d’extension GPIO I2C. Oh, et vous pouvez les trouver à 1 $ pièce en ligne – 0,40 $ de plus si vous voulez qu’une carte adaptateur I2C l’accompagne !

Un écran 8×2 avec des polices personnalisées. Par [MikroLogika]CC BY-SA 3.0

Comme vous pouvez le deviner, le circuit intégré HD44780 est câblé pour afficher des caractères : vous ne pouvez pas changer de pixels arbitraires sur un écran HD44780, tout ce que vous pouvez faire est ASCII, oh, et jusqu’à huit caractères personnalisés que vous pouvez télécharger. Les tailles d’affichage sont également standardisées – 16 × 2 est le principal (également consultable sous le nom 1602), mais vous pouvez également obtenir des écrans 20 × 2, 16 × 4 et 20 × 4, ainsi que 8 × 1 et 8 × 2 ( 2002, 1602, 2004, 0801 et 0802 respectivement). Ce sont des caractères, bien sûr, pas des pixels – de toute façon, vous ne pouvez pas contrôler les pixels individuellement. Parfois, vous pouvez trouver des écrans encore plus farfelus, comme 40×2, 40×4 ou même plus grands – ceux-ci peuvent utiliser des puces de contrôleur légèrement modifiées, ou même plusieurs HD44780 sur la même carte fonctionnant ensemble et câblés au même connecteur à broches.

Connexions

En parlant d’en-têtes à broches, la grande majorité de ces écrans ont un brochage standardisé sur une ligne d’en-têtes de 0,1 po/2,54 mm, faciles à monter sur une maquette ou à connecter à une carte de développement – ​​seulement 14 broches, ou 16 si votre panneau HD44780 est doté d’un rétroéclairage. Après tout, ce sont toujours des écrans LCD et vous souhaiterez qu’ils soient rétroéclairés. Adafruit a également vendu des écrans HD44780 rétroéclairés RVB dans le passé, vous savez, au cas où vous concevriez des périphériques de jeu.

Parfois, les connecteurs à broches sont différents : les écrans 8 x 1 et 8 x 2 utilisent le même brochage mais sont transférés sur un connecteur à 2 x 8 broches. Vous souhaitez utiliser l’une de ces cartes I2C avec un écran 8 x 1 ou 8 x 2 ? Voici un PCB adaptateur. Et, si vous disposez d’un écran HD44780 ultra large, il utilisera probablement plusieurs puces de contrôleur et, par conséquent, il s’agira probablement d’un connecteur à broches à double rangée avec un brochage plus spécial comportant plusieurs broches E, une pour chaque HD44780. -contrôleur compatible qu’il aurait à bord

Pour toutes ces broches, un écran HD44780 typique n’a besoin que de six GPIO – ne vous laissez pas tromper par les huit broches de données ! En effet, les écrans HD44780 disposent de deux modes que vous pouvez utiliser pour envoyer des données, le mode 4 bits et le mode 8 bits. Personne n’utilise le mode 8 bits. Pour être exact, il n’y a aucun avantage à utiliser le mode 8 bits à moins que vous souhaitiez mettre à jour votre affichage très très rapidement, ou garantir absolument un fonctionnement sans erreur ! En mode 4 bits, il vous suffit d’utiliser les broches D4-D7, n’hésitez pas à laisser D0-D3 flottantes ou à les abaisser vers GND. Les deux autres GPIO vont aux entrées E et RS – il y a aussi R/W, que vous réglez généralement bas, mais vous pouvez également régler haut pour lire les données de l’écran ! Personne n’utilise la fonction de lecture. Eh bien, encore une fois, vous pouvez l’utiliser pour garantir des mises à jour rapides et un fonctionnement sans erreur en vérifiant que l’écran a terminé votre commande avant d’envoyer la suivante, mais personne ne le fait et les écrans fonctionnent très bien !

Contraste

Kit de développement MCU avec un écran HD44780. Par [Sumanch]CC BY-SA 3.0

Un module d’affichage HD44780 typique a tendance à avoir une bizarrerie : il possède une seule entrée analogique que vous devez utiliser. Il s’agit de l’entrée Vo, une broche pour la tension de contraste pour le panneau LCD lui-même, et elle diffère d’un écran LCD à l’autre – rappelez-vous, même si tout ce que nous faisons en ASCII, le HD44780 est suffisamment ancien pour que vous puissiez voir le métal nu briller ici. et là. Heureusement, il est exceptionnellement facile d’ajuster Vo à une valeur appropriée : connectez VCC et GND à votre écran, puis connectez un potentiomètre 10K entre VCC et GND avec l’essuie-glace sur Vo, et tournez-le jusqu’à ce que vous puissiez voir la première ligne (et peut-être d’autres lignes). ) remplissez de cartons. Arrêtez-vous lorsque les cases semblent raisonnables – c’est votre contraste qui est réglé. Il se peut que votre tension de contraste atteigne 1,2 V, ou 0,5 V, ou proche de 0 V. Si vous travaillez avec un écran que vous connaissez déjà, il peut être correct de câbler la valeur avec un diviseur de résistance, mais garder le potentiomètre au cas où est une bonne idée.

Oh, VCC, c’est vrai. Ces écrans ont tendance à fonctionner à 5 V comme tension principale – encore une fois, le HD44780 a été conçu dans les années 1980, vous devez donc généralement disposer d’une source de 5 V dans votre projet si vous souhaitez en utiliser une. Mais les GPIO 3,3 V, c’est bien ! Il existe des écrans qui fonctionnent avec du 3,3 V VCC, mais ils sont rares. Le principal problème n’est pas le HD44780, cependant – c’est le Vo, il est référencé à VCC au lieu de GND, donc si vous devez régler Vo sur 1 V lorsque vous utilisez 5 V VCC, vous devrez l’avoir à -0,7 V pour 3,3 V VCC. Heureusement, il existe une solution, et vous avez peut-être déjà remarqué que certains écrans HD44780 ont une empreinte SO8 à l’arrière ! Ils ne sont jamais remplis, mais vous pouvez les remplir avec une puce ICL7660 ou similaire pour créer un Vo négatif et faire fonctionner votre écran HD44780 à 3,3 V VCC ! Certains écrans auront besoin de Vo négatif même sans 5 V. J’ai déjà démonté un téléphone public qui utilisait un écran HD44780 personnalisé, et si je me souviens bien, il utilisait -2 V pour Vo par défaut ! C’est logique : la Vo varie en fonction de la température et ces téléphones publics ont été construits pour résister aux intempéries.

Support logiciel abondant

L’un des points forts des écrans HD44780 est la quantité de support logiciel : l’interfaçage avec un écran HD44780 est quelque chose auquel vous n’avez vraiment pas besoin de beaucoup réfléchir, dans l’état actuel des choses. Il n’existe pratiquement aucune plate-forme qui ne dispose pas déjà d’une bibliothèque HD44780 que quelqu’un a écrite pour elle ; Quelle que soit la langue dans laquelle vous codez, il y a de fortes chances qu’il existe un extrait de code qui implémente le jeu de commandes HD44780 et n’attend que que vous le téléchargiez.

Même sous Linux, le logiciel LCDProc fonctionne avec une grande variété de façons de connecter un écran HD44780 à votre système, et avec une bonne quantité d’interfaces utilisateur que vous pouvez utiliser pour surveiller l’état de votre système. Nous utilisons des écrans HD44780 depuis près de quatre décennies maintenant, et pour de bonnes raisons.

Le HD44780 n’est pas la meilleure option dans de nombreux cas. Par exemple, vous ne verrez pratiquement pas de carte de développement moderne prenant en charge le HD44780 de nos jours – ils sont un peu encombrants, c’est pourquoi les fabricants choisissent d’utiliser des écrans SPI et OLED légers et petits qui ne sont guère moins chers. Cela dit, les HD44780 ont une place bien méritée dans nos boîtes à outils, et la prochaine fois que vous souhaiterez simplement afficher quelques lignes de texte clairement lisible sans trop réfléchir à l’interface utilisateur et aux polices, vous devrez absolument opter pour un affichage de caractères éprouvé, branchez un sac à dos I2C sur son dos et économisez les efforts et les broches de tout ce qui est de plus haute fidélité. La prochaine fois, cependant, nous examinerons d’autres options que nous pouvons choisir dans le cas où le HD44780 dépasse littéralement son utilité.

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.