LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir des articles frais.
Courriel
Prénom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam

Les indicateurs LED à sept segments sont très populaires parmi les dispositifs d'affichage de valeur numérique et sont utilisés dans les panneaux avant des fours à micro-ondes, des machines à laver, des montres numériques, des compteurs, des minuteries, etc. Comparés aux indicateurs LCD, les segments de l'indicateur LED brillent brillamment et sont visibles à une grande distance et avec une large angle de vision. Pour connecter un indicateur 4 bits à sept segments au microcontrôleur, vous avez besoin d'au moins 12 lignes d'entrée / sortie. Par conséquent, il est pratiquement impossible d'utiliser ces indicateurs avec des microcontrôleurs avec un petit nombre de sorties, par exemple une série de l'entreprise. Bien sûr, vous pouvez utiliser différentes méthodes de multiplexage (dont une description peut être trouvée sur le site Web dans la section "Schémas"), mais dans ce cas, il existe certaines limitations pour chaque méthode, et souvent elles utilisent des algorithmes logiciels complexes.

Nous considérerons la méthode de connexion de l'indicateur via l'interface SPI, qui ne nécessitera que 3 lignes d'entrée / sortie du microcontrôleur. Dans le même temps, la gestion de tous les segments de l'indicateur restera.

Pour connecter l'indicateur 4 bits au microcontrôleur via le bus SPI, un microcircuit de pilote spécialisé fabriqué par la société est utilisé. Le microcircuit est capable de contrôler huit indicateurs à sept segments avec une cathode commune et intègre un décodeur BCD, des pilotes de segment, un circuit de multiplexage et une RAM statique pour stocker les valeurs des chiffres.

Le courant traversant les segments indicateurs est réglé à l'aide d'une seule résistance externe. De plus, le microcircuit prend en charge le contrôle de la luminosité des indicateurs (16 niveaux de luminosité) via le PWM intégré.

Le circuit considéré dans l'article est un circuit d'un module d'affichage avec une interface SPI, qui peut être utilisé dans les conceptions de radio amateur. Et nous ne sommes pas plus intéressés par le circuit lui-même, mais par le travail avec le microcircuit via l'interface SPI. L'alimentation du module +5 V est fournie à la broche Vcc, les lignes de signaux MOSI, CLK et CS sont destinées à la communication du dispositif maître (microcontrôleur) avec l'esclave (puce MAX7219).

Le microcircuit est utilisé dans la commutation standard, à partir de composants externes, seule une résistance est nécessaire, qui règle le courant à travers les segments, une diode de protection pour l'alimentation et un condensateur de filtrage pour l'alimentation.

Les données sont transmises à la puce en paquets de 16 bits (deux octets chacun), qui sont placés dans le registre à décalage intégré de 16 bits à chaque front montant du signal CLK. Nous désignerons le paquet 16 bits D0-D15, où les bits D0-D7 contiennent des données, D8-D11 contiennent l'adresse du registre, les bits D12-D15 n'ont pas d'importance. Le bit D15 est le bit le plus significatif et est le premier bit reçu. Bien que la puce soit capable de contrôler huit indicateurs, nous envisagerons de travailler avec seulement quatre. Ils sont contrôlés aux sorties DIG0 - DIG3, situées dans la séquence de droite à gauche, les adresses 4 bits (D8-D11) qui leur correspondent sont 0 × 01, 0 × 02, 0 × 03 et 0 × 04 (format hexadécimal). Le registre de chiffres est implémenté sur la base d'une RAM interne avec une organisation 8 × 8 et est adressé directement, de sorte que chaque chiffre individuel sur l'affichage peut être mis à jour à tout moment. Le tableau suivant montre les chiffres adressables et les registres de contrôle du MAX7219.

S'inscrire

L'adresse

Valeur hexadécimale

Aucune opération

Mode de décodage

Nombre d'indicateurs

Éteint

Test d'indicateur

Registres de contrôle

La puce MAX1792 possède 5 registres de contrôle: mode décodage, indicateur d'intensité, nombre limite de numérisation d'indicateurs connectés, contrôle d'arrêt, mode test d'arrêt, mode test d'affichage.

Allumer et éteindre la puce

Lorsque l'alimentation est appliquée à la puce, tous les registres sont réinitialisés et elle passe en mode d'arrêt (arrêt). Dans ce mode, l'affichage est éteint. Pour entrer en mode de fonctionnement normal, il est nécessaire de régler le bit D0 du registre d'arrêt (adresse 0Сh). À tout moment, ce bit peut être réinitialisé pour mettre le pilote à l'état désactivé, tandis que le contenu de tous les registres reste inchangé. Ce mode peut être utilisé pour économiser de l'énergie ou en mode alarme en faisant clignoter un indicateur (activation et désactivation séquentielles du mode d'arrêt).

La puce est commutée en mode d'arrêt en transmettant l'adresse (0Сh) et les données (00h) séquentiellement, et en transférant 0Ch (adresse) puis 01h (données) reviendra à un fonctionnement normal.

Mode de décodage

En utilisant le registre de sélection du mode de décodage (adresse 09h), vous pouvez utiliser le décodage du code BCD B (les caractères affichés sont 0-9, E, H, L, P, -) ou sans décodage pour chaque chiffre. Chaque bit du registre correspond à un chiffre, le réglage de l'unité logique correspond à l'inclusion du décodeur pour ce bit, le réglage 0 - le décodeur est exclu. Si un décodeur BCD est utilisé, seul le moindre quartet de données dans les registres de chiffres (D3-D0) est pris en compte, les bits D4-D6 sont ignorés, le bit D7 est indépendant du décodeur BCD et est chargé d'activer la virgule décimale sur l'indicateur si D7 \u003d 1. Par exemple, lors de l'envoi successif des octets 02h et 05h, le chiffre 5 sera affiché sur l'indicateur DIG1 (deuxième chiffre à droite). De même, lors de l'envoi de 01h et 89h, le chiffre 9 sera affiché sur l'indicateur DIG0 avec le point décimal activé. Le tableau ci-dessous fournit une liste complète des caractères affichés lors de l'utilisation d'une puce de décodeur BCD.

Symbole

Données dans les registres

Segments inclus \u003d 1

Est vide

*Le point décimal est défini avec le bit D7 \u003d 1

Lorsque le décodeur BCD est exclu du fonctionnement, les bits de données D7-D0 correspondent aux lignes de segment (A-G et DP) de l'indicateur.

Contrôle de luminosité LED

La puce vous permet de contrôler par programme la luminosité des indicateurs via le PWM intégré. La sortie PWM est contrôlée par le quartet le plus bas (D3-D0) du registre d'intensité (adresse 0Ah), ce qui vous permet de définir l'un des 16 niveaux de luminosité. Lorsque vous réglez tous les bits de quartet sur 1, la luminosité maximale de l'indicateur est sélectionnée.

Nombre d'indicateurs connectés

Le registre Scan-Limit (adresse 0Bh) définit le nombre de bits servis par le microcircuit (1 ... 8). Pour notre version à 4 chiffres, la valeur 03h doit être inscrite dans le registre.

Test d'indicateur

Le registre responsable de ce mode est situé à 0Fh. En définissant le bit D0 dans le registre, l'utilisateur active tous les segments indicateurs, tandis que le contenu des registres de contrôle et de données n'est pas modifié. Pour désactiver le mode Test d'affichage, le bit D0 doit être égal à 0.

Interface de microcontrôleur

Le module indicateur peut être connecté à n'importe quel microcontrôleur disposant de trois lignes d'E / S libres. Si le microcontrôleur a un module SPI matériel intégré, le module indicateur peut être connecté en tant qu'appareil esclave sur le bus. Dans ce cas, les lignes de signaux de l'interface SPI SDO (sortie de données série), SCLK (horloge série) et SS (sélection esclave) du microcontrôleur peuvent être directement connectées aux broches MOSI, CLK et CS de la puce (module) MAX7219, le signal CS est actif bas.

Si le microcontrôleur n'a pas de SPI matériel, l'interface peut être organisée par programme. La communication avec la puce MAX7219 commence par la définition et le maintien d'un niveau bas sur la ligne CS, après quoi 16 bits de données (le bit le plus significatif est transmis en premier) sont envoyés séquentiellement sur la ligne MOSI le long du front montant du signal CLK. Une fois la transmission terminée, le niveau CS est de nouveau réglé sur élevé.

Dans la section de téléchargement, les utilisateurs peuvent télécharger le code source du programme de test et le fichier HEX du firmware, qui implémente le compteur 4 bits habituel avec les valeurs affichées sur le module indicateur avec l'interface SPI. Microcontrôleur utilisé -, l'interface est implémentée dans le logiciel, les lignes de signal CS, MOSI et CLK du module indicateur sont respectivement connectées aux ports GP0, GP1 et GP2. Le compilateur mikroC pour microcontrôleurs PIC est utilisé (mikroElektronika

Pour commenter les documents du site et obtenir un accès complet à notre forum, vous avez besoin s'inscrire .

Depuis l'avènement de l'ingénierie radio et de l'électronique, la rétroaction d'un appareil électronique et d'une personne s'est accompagnée de divers voyants, boutons, interrupteurs à bascule et appels (le signal prêt pour les micro-ondes est ching!). Certains appareils électroniques fournissent un minimum d'informations, car plus serait redondant. Par exemple, la LED rougeoyante de votre chargeur de téléphone chinois indique que la charge est branchée et que la tension y pénètre. Mais il y a aussi des paramètres pour lesquels il serait plus commode de donner des informations objectives. Par exemple, la température de l'air extérieur ou l'heure du réveil. Oui, tout cela pourrait aussi se faire avec des ampoules lumineuses ou des LED. Un degré - une diode ou une ampoule allumée. Combien de degrés - autant d'indicateurs brûlants. Compter ces lucioles - c'est peut-être la chose habituelle, mais combien de telles lumières seront-elles encore nécessaires pour montrer la température au dixième de degré près? Quoi qu'il en soit, quelle zone occuperont ces LED et ampoules sur un appareil électronique?

Les dispositifs d'affichage à sept segments pratiques doivent avoir au moins huit bornes de connexion externes; sept d'entre eux donnent accès à des segments photovoltaïques individuels et le huitième offre une connexion commune avec tous les segments. Dans le premier cas, le dispositif est connu comme un affichage à sept segments de l'anode commune; dans ce dernier cas, l'appareil est connu sous le nom d'affichage à sept segments avec une cathode commune.

Pour contrôler un affichage d'anode commun, le pilote doit avoir une sortie active-basse dans laquelle chaque entraînement de segment est généralement élevé mais passe à l'état bas pour activer le segment. Pour contrôler un affichage de cathode commun, le pilote doit avoir une sortie active active.

Et au début du XXe siècle, avec l'avènement des lampes électroniques, les premiers indicateurs de décharge de gaz sont apparus

Grâce à ces indicateurs, il a été possible d'afficher des informations numériques en chiffres arabes. Auparavant, c'était sur ces lampes qu'une indication différente était faite pour les appareils et autres appareils électroniques. À l'heure actuelle, les éléments de décharge de gaz ne sont presque jamais utilisés. Mais le rétro est toujours à la mode, donc de nombreux radio-amateurs collectionnent de belles montres sur des déchargeurs de gaz pour eux et leurs proches.

Une explication complète de cela est un peu plus compliquée, comme suit. Lorsque la tension est nulle, le segment est pratiquement invisible. Cependant, lorsque la tension d'entrée a une valeur positive ou négative significative, le segment devient effectivement visible, mais si la tension de commande est maintenue pendant plus de quelques centaines de millisecondes, le segment peut devenir constamment visible et ne plus avoir de valeur.

Dans ces conditions, le segment est désactivé. Ainsi, le segment est inclus dans ces conditions. Cette forme de variateur est communément connue sous le nom de système «de pilotage en pont» avec doublage de tension. La séquence d'actions du circuit est la suivante. Le système en cascade simple décrit précédemment souffre d'un grave défaut car l'affichage devient flou pendant la période de comptage réelle, devenant stable et lisible uniquement lorsque chaque compteur est terminé et que la porte d'entrée est fermée. Ce type d'affichage «flou et lisible» est très ennuyeux à regarder.

Inconvénients des lampes à décharge - mangez beaucoup. Vous pouvez discuter de la durabilité. Dans notre université, dans les salles de laboratoire, les fréquencemètres sur les déchargeurs de gaz sont toujours exploités.

Avec l'avènement des LED, la situation a radicalement changé. Les LED à elles seules consomment un petit courant. Si vous les mettez dans la bonne position, vous pouvez afficher absolument toutes les informations. Afin de mettre en évidence tous les chiffres arabes, juste assez sept (d'où le nom indicateur à sept segments)   bandes LED lumineuses exposées d'une certaine manière:

La figure 13 montre un circuit de compteur de fréquence avancé qui utilise un verrou d'affichage pour surmonter le défaut susmentionné. Ce schéma fonctionne comme suit. En même temps, la porte d'entrée s'ouvre et les compteurs commencent à additionner les impulsions du signal d'entrée. Ce compteur continue après exactement une seconde, et pendant cette période, les verrous à quatre bits ne permettent pas aux signaux de sortie du compteur d'arriver aux pilotes d'affichage; cependant, l'affichage reste stable pendant cette période.

Après quelques secondes, la séquence se répète, tandis que les compteurs sont réinitialisés, puis les impulsions de la fréquence d'entrée sont comptées pendant une seconde, pendant laquelle l'affichage donne une lecture constante des résultats du comptage précédent, etc.

le huitième segment est ajouté à presque tous ces indicateurs à sept segments - un point, de sorte qu'il est possible d'afficher la valeur entière et fractionnaire de n'importe quel paramètre

Ainsi, le circuit de la figure 13 crée un affichage stable qui est mis à jour une fois par seconde; en pratique, la période de référence réelle de celle-ci et le diagramme de la figure 12 peuvent être réalisés dans n'importe quelle décennie avec un nombre de secondes multiple ou incomplet, à condition que l'affichage de sortie soit mis à l'échelle en conséquence.

Notez qu'un fréquencemètre à trois chiffres peut indiquer des fréquences maximales de 999 Hz lorsque vous utilisez une base d'une seconde, 99 kHz lorsque vous utilisez une base de temps de 100 ms, 9 kHz lorsque vous utilisez une base de temps de 10 ms et 999 kHz lorsque vous utilisez une base de temps de 1 ms.

en théorie, un indicateur à huit segments est obtenu, mais à l'ancienne il est aussi appelé indicateur à sept segments, et il n'y a pas d'erreur.

En bref, un indicateur à sept segments est une LED située dans un certain ordre les uns par rapport aux autres et enfermée dans un boîtier.

Cette méthode peut être comprise à l'aide des figures 14 et 15. Ces commutateurs sont connectés ensemble et fournissent l'action réelle du multiplexeur et doivent être considérés comme des commutateurs électroniques à grande vitesse qui commutent à plusieurs reprises à travers les positions 1, 2, et la séquence de fonctionnement du circuit est la suivante. Supposons d'abord que l'interrupteur est en position.

Quelques instants plus tard, le commutateur passe en position 3, forçant l'affichage 3 à afficher le nombre en quelques minutes, tout le cycle recommence et ainsi de suite, en ajoutant l'infini. En pratique, environ 50 de ces cycles se produisent chaque seconde, de sorte que l'œil ne voit pas que les affichages sont allumés et éteints séparément, mais les perçoivent comme un affichage clairement stable qui affiche 327, ou un autre nombre est dicté par le segment de données.

Si nous considérons le schéma d'un seul indicateur à sept segments, il ressemble à ceci:

Comme nous pouvons le voir, un indicateur à sept segments peut être comme avec anode commune (OA)donc avec cathode commune (OK). En gros, si nous avons un sept segments avec une anode commune (OA), alors dans le circuit, nous devrions accrocher un plus à cette conclusion, et si avec une cathode commune (OK), alors un moins ou une masse. À quelle conclusion appliquerons-nous une tension, une telle LED s'allumera avec nous. Montrons tout cela en pratique.

Dans les multiplexeurs pratiques, le courant de crête de l'écran est assez élevé pour assurer une luminosité d'affichage suffisante. Dans la FIG. 15 montre un exemple d'une méthode de multiplexage améliorée appliquée à un fréquencemètre à trois chiffres. Cette méthode présente deux avantages principaux.

Si ces terminaux sont très actifs, ils auront les caractéristiques suivantes. FIG. 18 et 19. La figure 18 montre la technique d'amortissement d'ondulation utilisée pour supprimer le zéro initial sur un affichage à quatre chiffres qui lit le comptage.

Nous avons ces indicateurs LED disponibles:

Comme nous le voyons, sept segments peuvent être simples et multi-bits, c'est-à-dire deux, trois, quatre sept segments dans un cas. Pour vérifier les sept segments modernes, nous n'avons besoin que d'un multimètre avec fonction de continuité de diode. Nous recherchons une conclusion générale - cela peut être OA ou OK - en tapant puis nous examinons les performances de tous les segments de l'indicateur. Vérifiez les sept chiffres à sept chiffres:

Ainsi, l'affichage s'affiche. En fait, ils sont faciles à utiliser, à alimenter et ils s'allument. Ils peuvent être gênants car ils ont une sorte de polarité, ce qui signifie qu'ils ne fonctionneront que si vous les branchez correctement. Si vous annulez la tension positive et négative, elles ne s'allumeront pas du tout.

Ennuyeux, comme ça, c'est aussi très utile. L'autre fil est la cathode. La cathode est connectée à la terre. En principe, cela arrivera à cela. Pour la cathode commune, vous appliquez du courant aux contacts que vous souhaitez activer. Multiplexage. Pour cela, il existe même des contrôleurs d'affichage si vous ne souhaitez pas vous occuper de la commutation dans votre logiciel.

Dingo, nous avons un segment pris feu, de la même manière que nous vérifions les autres segments.

Parfois, la tension sur le dessin animé n'est pas suffisante pour vérifier les segments de l'indicateur. Par conséquent, nous prenons l'alimentation, la réglons sur 5 volts, nous accrochons une résistance de 1 à 2 kilo ohms à une borne de l'alimentation et commençons à vérifier les sept segments.

Contrôle d'affichage à 7 segments

Par conséquent, lorsque vous avez un segment multiplexé à 4 chiffres, une anode commune. Tout d'abord, nous devons savoir quel type d'affichage nous avons, car il existe deux formes possibles: une cathode commune et une anode commune. Éléments dont vous aurez besoin pour ce didacticiel. Gauche: vue graphique d'un affichage à 7 segments montrant une disposition générale pour le câblage interne et la disposition des broches.

À ce stade, faites attention à la sortie initiale, car vous en aurez besoin plus tard lors du chargement du programme. Si l'affichage était une cathode ordinaire, nous l'annulerions. Au bas de l'article se trouve une photo du circuit fonctionnant sur ma carte prototype. Nous fournissons également une bibliothèque pour gérer plusieurs écrans.

Pourquoi avons-nous besoin d'une résistance? Lorsqu'une tension est appliquée à la LED, elle commence à consommer brusquement du courant lorsqu'elle est allumée. Par conséquent, en ce moment, il peut s'épuiser. Pour limiter le courant, une résistance est connectée en série avec la LED. Vous pouvez en lire plus dans cet article.

Comptage hexadécimal sur un seul affichage à 7 segments

L'inconvénient est qu'ils sont gourmands en ressources. Cet affichage particulier a quatre chiffres et deux affichages deux-points. Cependant, l'appareil offre également un contrôle de la luminosité de l'affichage numérique via un modulateur à large bande interne. Dans de tels cas, la sortie peut être effectuée sur plusieurs écrans à 7 segments.

Cela permet d'économiser des contacts sur le boîtier, puis sur le contrôle. En conséquence, des affichages avec une anode commune ou une cathode commune sont mentionnés. Il est préférable d'extraire la sortie qui correspond au segment ou au point décimal de la feuille de données pour l'affichage. L'écran à 7 segments, conçu pour les 10-20 mA ordinaires, restera allumé, bien qu'il soit faible. Mais cela ne nécessite pas la nomination de contacts. De plus, la distribution de ce segment est basée sur.

De la même manière, nous vérifions les sept chiffres à quatre chiffres de la radio chinoise

Je pense que cela ne devrait pas poser de difficultés particulières. Dans les circuits à sept segments, ils s'accrochent à des résistances sur chaque broche. Cela est également dû au fait que les LED, lorsqu'une tension leur est appliquée, consomment frénétiquement du courant et s'éteignent.

Si un objectif différent est utilisé, cela est possible en principe, mais cela doit être pris en compte lors de la programmation. La conversion de chiffres individuels en un modèle de sortie spécifique peut être effectuée à l'aide de ce qu'on appelle un. Tous les autres segments doivent être sombres. Si cette case est cochée pour tous les chiffres, le tableau suivant est donné.

Dans le programme de test, les chiffres de 0 à 9 sont affichés séquentiellement sur un affichage à 7 segments. Le numéro sortant est stocké dans le compteur de registres et augmente de 1 au cours du cycle. Si le registre atteint une valeur de 10, il est réinitialisé à nouveau à 0. Après l'augmentation, un cycle d'attente se produit, ce qui garantit qu'un certain temps passe dans la prochaine version. Habituellement, vous n'effectuez pas de cycles d'attente aussi longs, mais il ne s'agit pas d'attendre, mais de contrôler un affichage à 7 segments. Utiliser une minuterie pour cela est trop d'effort.

Dans notre monde moderne, sept segments sont déjà remplacés par des indicateurs LCD qui peuvent afficher des informations complètement différentes

mais pour les utiliser, vous avez besoin de certaines compétences dans le circuit de ces appareils. Jusqu'à présent, il est plus simple et moins cher que les indicateurs LED à sept segments.

Le problème réel, et donc la partie intéressante de cet article, se produit cependant immédiatement après le cycle d'étiquette. Veuillez noter que la valeur du compteur doit être doublée. Cela est directement lié au fait que la mémoire flash est de nature verbale et non pas en octets. Le deuxième exemple sur cette page fait différemment. Il montre comment, via une autre entrée de table, la génération d'octets de tampon peut être empêchée par l'assembleur. Il est également intéressant de noter que pour le calcul, il faut un registre contenant la valeur 0.

Par conséquent, cette constante doit d'abord être chargée dans le registre, et ce n'est qu'alors que l'addition peut être effectuée à l'aide de ce registre. Il est intéressant de noter que ce fait se retrouve dans de nombreux programmes et que les constantes dans la grande majorité des cas sont constantes à 0. Par conséquent, de nombreux programmeurs réservent le registre dès le début pour cela et l'appellent registre nul.

Dans cet article, nous parlerons de l'affichage numérique.
  Les indicateurs LED à sept segments sont conçus pour afficher des chiffres arabes de 0 à 9 (Fig.1).

Ces indicateurs sont à un seul chiffre, qui affichent un seul chiffre, mais il peut y avoir plusieurs groupes (à sept chiffres) de groupes à sept segments combinés en un seul corps. Dans ce cas, les nombres sont séparés par un point décimal (Fig.2)

Malheureusement, il y a un problème car huit ports sont nécessaires pour l'affichage - quatre annonces nécessiteront 32 ports. Mais il y a plusieurs façons. Les registres à décalage sont déjà décrits dans un autre tutoriel. Cela simplifierait la création des 32 lignes de sortie requises avec seulement trois broches. Le principe de commande ne diffère pas de la commande d'un affichage à 7 segments, seulement la façon dont les «broches de sortie» approchent leurs valeurs est différente et est déterminée par l'utilisation de registres à décalage. Pour le moment, cependant, une autre option de contrôle devrait être affichée.



Fig.2.

L'indicateur est appelé sept segments car le symbole affiché est construit à partir de sept segments distincts. À l'intérieur du boîtier d'un tel indicateur, il y a des LED, chacune éclairant son propre segment.
  Il est problématique d'afficher des lettres et d'autres symboles sur ces indicateurs, par conséquent, des indicateurs à 16 segments sont utilisés à ces fins.

Ci-dessous, nous examinons à nouveau le multiplexage. Le multiplexage signifie que les quatre écrans ne s'allument pas tous simultanément, mais un seul pendant une courte période. Si le changement entre les affichages est plus rapide que nous, humains, ne pouvons le percevoir, les quatre indicateurs semblent fonctionner en même temps, bien qu'un seul s'allume pendant une courte période de temps. Ainsi, quatre écrans peuvent partager des segments de segment séparés, et tout ce qui est requis est 4 lignes de contrôle supplémentaires pour les 4 écrans avec lesquels l'écran est allumé.

Un aspect de ce type de contrôle est la fréquence de multiplexage, c'est-à-dire le cycle complet de la transition d'un affichage à un autre. Il doit être suffisamment haut pour empêcher l'affichage de scintiller. L'œil humain est lent, dans une salle de cinéma à 24 images par seconde, avec un téléviseur pour être du bon côté, ce qui est aussi des images calmes, chaque segment doit être contrôlé à au moins 100 Hz, donc il se connecte au moins toutes les 10 ms. Dans des cas exceptionnels, cependant, même 100 Hz peuvent encore scintiller, par exemple lorsque l'affichage se déplace rapidement ou lorsque des interférences se produisent avec des sources de lumière artificielle qui fonctionnent avec un courant alternatif.

Les indicateurs LED sont de deux types.
  Dans le premier d'entre eux sont toutes des cathodes, c'est-à-dire les conclusions négatives de toutes les LED sont combinées ensemble et la sortie correspondante sur le boîtier est mise en évidence pour elles.
  Les fils indicateurs restants sont connectés à l'anode de chacune des LED (Fig. 3, a). Un tel circuit est appelé «circuit cathodique commun».
  Il existe également des indicateurs dans lesquels les LED de chacun des segments sont connectées selon le schéma avec une anode commune (Fig. 3, b).



  Fig.3.

Chaque segment est indiqué par une lettre correspondante. La figure 4 montre leur emplacement.

  Fig.4.

À titre d'exemple, considérons la lueur rouge de l'indicateur à sept segments à deux chiffres GND-5622As-21. Soit dit en passant, il existe d'autres couleurs, selon le modèle.
  À l'aide d'une batterie de trois volts, vous pouvez allumer des segments et si vous combinez un groupe de terminaux en un groupe et leur appliquez une alimentation, vous pouvez même afficher des nombres. Mais cette méthode n'est pas pratique, par conséquent, les registres à décalage et les décodeurs sont utilisés pour contrôler les indicateurs à sept segments. De plus, souvent, les fils d'indicateur sont connectés directement aux sorties du microcontrôleur, mais uniquement si des indicateurs à faible consommation de courant sont utilisés. La figure 5 montre un fragment d'un circuit utilisant PIC16F876A.



Fig.5.

Pour contrôler l'indicateur à sept segments, le décodeur K176ID2 est souvent utilisé.
  Cette puce est capable de convertir du code binaire composé de zéros et de uns en chiffres décimaux de 0 à 9.

Pour comprendre comment tout cela fonctionne, vous devez assembler un circuit simple (Fig. 6). Le décodeur K176ID2 est fabriqué dans le boîtier DIP16. Il dispose de 7 broches de sortie (broches 9-15), chacune étant conçue pour un segment spécifique. La gestion des points n'est pas fournie ici. Le microcircuit possède également 4 entrées (broches 2 à 5) pour fournir un code binaire. Sur les 16e et 8e sorties, les puissances positive et négative sont respectivement fournies. Les trois conclusions restantes sont auxiliaires, j'en parlerai un peu plus tard.



  Fig.6.

DD1 - K176ID2
  R1 - R4 (10 - 100 kOhm)
  HG1 - GND-5622As-21

Il y a 4 interrupteurs à bascule dans le circuit (tous les boutons sont possibles), lorsque vous cliquez dessus, l'unité logique de l'alimentation est alimentée aux entrées du décodeur. Soit dit en passant, le microcircuit lui-même est alimenté par une tension de 3 à 15 Volts. Dans cet exemple, l'ensemble du circuit est alimenté par une «couronne» de 9 volts.

Toujours dans le circuit, il y a 4 résistances. Ce sont les résistances dites pull-up. Ils sont nécessaires pour garantir un niveau bas à l'entrée logique, en l'absence de signal. Sans eux, les indications sur l'indicateur risquent de ne pas s'afficher correctement. Il est recommandé d'utiliser le même  résistance de 10 kOhm à 100 kOhm.

Dans le schéma, les broches 2 et 7 de l'indicateur HG1 ne sont pas connectées. Si vous connectez la borne DP à la puissance négative, le point décimal brille. Et si vous appliquez un moins à la sortie de Dig.2, le deuxième groupe de segments s'allumera (il affichera le même symbole).

Les entrées du décodeur sont agencées de manière à ce que pour afficher les chiffres 1, 2, 4 et 8 sur l'indicateur, un seul bouton soit nécessaire (des interrupteurs à bascule sont installés sur la disposition correspondant aux entrées D0, D1, D2 et D3). S'il n'y a pas de signal, le chiffre zéro s'affiche. Lorsqu'un signal est appliqué à l'entrée D0, le numéro 1 s'affiche, etc. Pour afficher d'autres chiffres, il est nécessaire d'appuyer sur la combinaison de commutateurs à bascule. Et ce que vous devez cliquer exactement nous indiquera le tableau 1.


  Tableau 1.

Pour afficher le nombre "3", il est nécessaire d'appliquer une unité logique aux entrées D0 et D1. Si vous appliquez un signal à D0 et D2, le nombre "5" sera affiché.  (fig.6).



  Fig.6.

Voici un tableau étendu dans lequel nous voyons non seulement le chiffre attendu, mais aussi les segments (a - g) qui composent ce chiffre.



  Tableau 2.

Auxiliaire sont les 1re, 6e et 7e conclusions du microcircuit (S, M, K, respectivement).

Dans le diagramme (Fig. 6), la 6ème broche "M" est mise à la terre (à la puissance négative) et il y a une tension positive à la sortie du microcircuit pour fonctionner avec un indicateur avec une cathode commune. Si un indicateur avec une anode commune est utilisé, alors un doit être alimenté à la 6ème sortie.

Si une unité logique est fournie à la 7ème broche "K", alors le signe indicateur est éteint, zéro permet l'indication. Dans le circuit, cette broche est mise à la terre (à moins de puissance).

Une unité logique (plus la puissance) est fournie à la première sortie du décodeur, ce qui permet d'afficher le code converti sur un indicateur. Mais si vous appliquez un zéro logique à cette broche (S), les entrées cesseront de recevoir le signal et le caractère affiché actuel se figera sur l'indicateur.

Il convient de noter une chose intéressante: nous savons que le commutateur à bascule D0 comprend le numéro "1" et le commutateur à bascule D1 comprend le numéro "2". Si vous appuyez sur les deux interrupteurs à bascule, le chiffre 3 s'affiche (1 + 2 \u003d 3). Et dans d'autres cas, l'indicateur affiche la somme des nombres qui composent cette combinaison. Nous concluons que les entrées du décodeur sont judicieusement situées et ont des combinaisons très logiques.

Vous pouvez également regarder une vidéo pour cet article.

À la demande des travailleurs, j'ai décidé de parler d'une chose merveilleuse appelée l'indicateur LED à 7 segments. Pour commencer, c'est quoi. Voici une telle chose. C'est un bit, il y a aussi deux bits, trois et quatre bits. J'en ai vu six de plus. Après chaque chiffre, il y a un point décimal. S'il y a quatre chiffres, le plus souvent après le deuxième chiffre, vous pouvez voir deux points pour indiquer les secondes, lorsque l'heure est affichée. Après avoir traité des glandes, passons à l'étude du circuit. Qu'est-ce qu'une indication dynamique en général et pourquoi est-elle nécessaire? Étant donné que l'indicateur est composé de 7 segments, seuls 7 segments sont utilisés pour afficher les chiffres. Ils sont toujours indiqués en lettres latines. A, B, C, D, E, F, G et DP  Nous regardons l'image.   Sous chaque segment se trouve une LED. Toutes les LED sont connectées à une extrémité. Soit des anodes ou des cathodes, et les extrémités opposées sont mises en évidence. Il est facile de voir que vous devez utiliser 8 broches pour afficher les chiffres. Un commun et sept pour les segments. Si cela s'applique à une catégorie, alors il n'y a rien à penser, nous suspendons tout sur un seul port. Et s'il y a quatre décharges? Huit fois quatre, trente-deux. Oh ... Oui, au-dessus d'un tel indicateur, 32 mégapixels seront à examiner. Donc ça ne marchera pas. Il y a deux solutions. Notre indication dynamique est soit statique. Pour mieux comprendre, voyons le schéma de changement d'indicateur.

Ce schéma implique une indication dynamique. Oui, je suis dynamique et statique. Quelle est la différence? L'indication statique est lorsque nous définissons chaque chiffre dans son propre chiffre et qu'il brûle constamment, et l'indication dynamique est lorsque nous sortons le chiffre dans le premier chiffre, puis l'éteignons et le sortons dans le deuxième chiffre, puis l'éteignons et le sortons dans le troisième chiffre, et ainsi de suite pour l'instant les décharges ne prendront pas fin. Après la dernière décharge, nous reprenons la première et ainsi de suite en cercle. Si vous faites cela lentement, vous pouvez voir une ligne numérique rampante et si vous augmentez la vitesse, par exemple, à 50 Hz, vous ne verrez pas un clin d'œil. C'est ainsi que fonctionne l'affichage dynamique. Analysons maintenant le circuit. À gauche de l'ATmega8 MK, une puce 74ALS373 est accrochée au port D derrière elle. Pourquoi est-il nécessaire? Le fait est que l'indicateur n'est que de 8 LED assemblées dans une certaine matrice. Autrement dit, l'indicateur peut être représenté par une ligne de 8 LED. Et comme vous le savez, les LED consomment par rapport au MK e combien. Bien sûr, la connexion n'est pas interdite directement, mais il est préférable de mettre du relais entre le MK et l'indicateur. Donc, à ces fins, j'ai décidé d'utiliser le tampon de verrouillage 8 bits. Pourquoi exactement lui. Étant donné que j'utilise l'indicateur avec une anode commune, c'est-à-dire que le niveau actif est 0 pour le problème de chiffres, il serait sûr d'utiliser la puce ULN2003A (7 assemblages de transistors selon le circuit de Darlington) et de ne pas se baigner avec le tampon, mais ... Mais cela L'ULN2003A n'a que des transistors NPN à bord et je peux utiliser l'indicateur uniquement avec une anode commune, mais si je dois le mettre avec une cathode commune? C'est là que le tampon sera utile, car ce que j'écris là-bas, il sera sorti. Vous voulez 0, vous voulez 1. Les branches de contrôle sont connectées en mode traducteur. C'est-à-dire que le tampon produit la même chose que l'entrée. Isolement pseudo galvanique Ala. Le tampon est suivi de résistances de limitation de courant. N'oubliez pas que ces LED s'éteindront sans résistances. La valeur des résistances doit être choisie un peu moins que ce qui est permis. Le fait est que l'indication dynamique affiche des symboles avec une certaine fréquence et elle est liée au PWM, c'est-à-dire que plus la fréquence est élevée, plus le contraste est pour ainsi dire élevé. Et au contraste le plus confortable, les chiffres brillent un peu plus. Par conséquent, les résistances doivent être prises à une valeur nominale légèrement inférieure. J'ai utilisé 360 Ohm juste parce que j'en avais un. De plus, après les résistances, notre indicateur. D'un autre côté, où sont les anodes, j'ai connecté les quatre premiers bits du port C. Donc, j'ai en quelque sorte compris le circuit. Voyons maintenant l'algorithme du programme. Afin d'activer les bits indicateurs un par un, nous allons écrire une fonction distincte et nous l'appellerons à l'infini dans le corps principal du programme. Plus précisément, la fonction recevra un nombre de 0 à 9999, la prendra en bits puis affichera chaque bit à sa place. Si le nombre a un nombre de chiffres inférieur à 4, alors nous remplirons le mannequin à gauche avec des zéros. Nous sommes alignés à droite. Nous allons parcourir les décharges de gauche à droite. Pour que toutes les actions soient visibles, nous utiliserons l'interruption du compteur une fois par seconde pour augmenter le nombre affiché d'une unité. La tâche est donc fixée pour la bataille. #define F_CPU 7372800UL // Fréquence de quartz #include #include #include   test int volatile non signé \u003d 9980; // Variable d'affichage sur l'indicateur ISR (TIMER1_COMPA_vect) // Gestionnaire d'interruption en faisant correspondre le minuteur 1 (test ++; // Augmenter le nombre de sortie si (test\u003e 9999) test \u003d 0; // Si vous avez dépassé quatre chiffres, réinitialisez TCNT1H \u003d 0x00; // Réinitialiser le registre TCNT1L \u003d 0x00; // comptes ) void dig_out (int num); // Déclarer la fonction de sortie à l'indicateur int main (vide) (DDRC \u003d 0x0F; // Configurer les ports DDRD \u003d 0xFF; // pour travailler avec l'indicateur Port C pour les chiffres, Port D pour les chiffres TCCR1A \u003d 0x00; // Configurer la minuterie TCCR1B \u003d 0x04; TCNT1H \u003d 0x00; TCNT1L \u003d 0x00; OCR1AH \u200b\u200b\u003d 0x70; OCR1AL \u003d 0x80; TIMSK \u003d 0x10; sei (); // Activer l'interruption while (1) (dig_out (test); // Appelle constamment la fonction de sortie du numéro courant   )) void dig_out (int num) // Fonction d'affichage de 4 chiffres sur l'indicateur (caractère non signé i \u003d 0; // variable de compteur char raz non signé \u003d 1; // numéro de décharge caractère non signé dig_num \u003d (0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10); // Codes numériques pour un indicateur avec une anode commune caractère non signé dig \u003d (0, 0, 0, 0); // Tableau pour la valeur de décharge si (num (dig \u003d 0; dig \u003d 0; dig \u003d 0;) if (num // Pour remplir les chiffres de gauche avec des zéros (dig \u003d 0; dig \u003d 0;) if (num // Pour remplir les chiffres de gauche avec des zéros (dig \u003d 0;) while (num\u003e 999) // Obtenez le nombre de milliers (dig ++; num - \u003d 1000;) while (num\u003e 99) // Obtenez le nombre de centaines (dig ++; num - \u003d 100;) while (num\u003e 9) // Récupère le nombre de dizaines (dig ++; num - \u003d 10;) dig \u003d num; // Récupère le nombre d'unités tandis que (raz // Tourne jusqu'à ce que nous remplissions les 4 chiffres (PORTC \u003d raz; // Sélectionnez le bit PORTD \u003d dig_num]; // Imprimer le numéro raz \u003d raz // Passer au rang suivant i ++; // Augmenter l'index du prochain chiffre _delay_ms (1); // Retard 1 ms } }   C'est tout le code. Je ne le peindrai pas car il comporte des commentaires sur chaque ligne. Ci-dessous vous pouvez télécharger l'archive avec le projet pour AtmelStudio6.2 Si vous avez encore des questions, alors vous êtes les bienvenus sur le forum. Eh bien, pour les vidéos les plus capricieuses ci-dessous, toute cette balalaïka))).

La connexion d'un indicateur à sept segments à l'Arduino est un excellent projet d'entrée de gamme qui vous permet de vous familiariser plus étroitement avec la carte Arduino. Mais tout simplement mis en œuvre. Par conséquent, nous allons compliquer quelque peu la tâche et connecter un indicateur à sept chiffres à quatre chiffres.



Dans ce cas, nous utiliserons un module indicateur LED à quatre chiffres avec une cathode commune.


Chaque segment du module indicateur est multiplexé, c'est-à-dire qu'il partage un point de connexion d'anode avec d'autres segments de sa décharge. Et chacun des quatre bits du module a son propre point de connexion avec une cathode commune. Cela permet à chaque chiffre d'être activé ou désactivé indépendamment. De plus, cette méthode de multiplexage permet au microcontrôleur d'utiliser uniquement onze ou douze broches au lieu de trente-deux.



Les segments LED de l'indicateur nécessitent la connexion de résistances de limitation de courant lorsqu'ils sont alimentés à partir de 5 V sur la sortie logique. La valeur de la résistance est généralement prise entre 330 et 470 ohms. L'utilisation de transistors est également recommandée pour fournir un courant supplémentaire, car chaque broche du microcontrôleur peut produire un maximum de 40 mA. Si vous allumez tous les segments de la décharge (figure 8), la consommation actuelle dépassera cette limite. La figure ci-dessous montre le schéma de connexion d'un indicateur à sept chiffres à quatre chiffres utilisant des transistors de résistances de limitation de courant.



Voici les schémas de connexion de l'indicateur aux broches Arduino. Ici, les transistors bipolaires npn BC547 sont utilisés. Un potentiomètre de 10 kΩ connecté à l'entrée de la carte A0 vous permet de faire passer la valeur affichée sur l'indicateur de 0 à 1023.




Sur la carte Arduino, les sorties numériques D2-D8 dans ce cas sont conçues pour contrôler les segments de "a" à "g", et les sorties numériques D9-D12 sont utilisées pour contrôler les bits de D0 à D3. Il est à noter que dans cet exemple, le point n'est pas utilisé, mais dans le croquis ci-dessous, il est possible de l'utiliser. La broche Arduino D13 est réservée au contrôle de segment de point.



Vous trouverez ci-dessous le code qui vous permet de contrôler un indicateur de segment à quatre chiffres à l'aide de la carte Arduino. Dans ce document, le tableau de nombres définit les codes de nombres de 0 à 9 sous forme binaire. Cette esquisse prend en charge les indicateurs avec une cathode commune (par défaut) et les indicateurs avec une anode commune (pour cela, vous devez décommenter une ligne à la fin de l'esquisse).


// bits représentant les segments A à G (et points) pour les nombres 0-9 const int numeral \u003d (// ABCDEFG / dp B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B00111110, // 6 B11100000, // 7 B11111110, // 8 B11100110, // 9); // conclusions pour un point et chaque segment // DP, G, F, E, D, C, B, A const int segmentPins \u003d (13,8,7,6,5,4,3,2); const int nbrDigits \u003d 4; // le nombre de bits de l'indicateur LED // bits 0 1 2 3 const int digitPins \u003d (9,10,11,12); void setup () (for (int i \u003d 0; i< 8; i++) { pinMode(segmentPins[i], OUTPUT); // устанавливаем выводы для сегментов и точки на выход } for(int i=0; i < nbrDigits; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int value = analogRead(0); showNumber(value); } void showNumber(int number) { if(number == 0) { showDigit(0, nbrDigits-1) ; // отображаем 0 в правом разряде } else { // отображаем значение, соответствующее каждой цифре // крайняя левая цифра 0, правая на единицу меньше, чем число позиций for(int digit = nbrDigits-1; digit >\u003d 0; digit--) (if (number\u003e 0) (showDigit (number% 10, digit); number \u003d number / 10;)))) // Affiche le nombre spécifié sur ce bit de l'indicateur à 7 segments void showDigit (int number, int digit) (digitalWrite (digitPins, HIGH); pour (int segment \u003d 1; segment< 8; segment++) { boolean isBitSet = bitRead(numeral, segment); // isBitSet будет истинным, если данный бит будет 1 // isBitSet = ! isBitSet; // опционально // раскомментируйте опциональную строчку выше для индикатора с общим анодом digitalWrite(segmentPins, isBitSet); } delay(5); digitalWrite(digitPins, LOW); }

LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir des articles frais.
Courriel
Prénom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam