Suite banc d'étude de bas niveau HD44780ayant remporté le premier prix à l'une des compétitions, l'auteur d'Instructables sous le surnom indoorgeek a décidé de faire un autre stand similaire. Cette fois, l'utilisateur qui veut se sentir à la place de "vivre Arduino”, Il est possible de contrôler le registre à décalage - un composant important des écrans LED matriciels et pas seulement.
L'appareil utilise le registre à décalage 74HC595, qui est le plus souvent rencontré dans la pratique de l'arduino, et vous pouvez également utiliser le КР1564ИР52 compatible. En utilisant trois de ces microcircuits, par exemple, vous pouvez transformer cinq sorties d'un microcontrôleur en vingt-quatre! Et la proposition fait maison Il vous montrera clairement quels processus ont lieu.
Indoorgeek a assemblé un tel support en deux versions: sur une planche à pain ordinaire et sur une planche à pain, comme ceci:
Vous pouvez le faire comme vous le souhaitez, ou même appliquer une installation volumétrique ou faire une carte de circuit imprimé. Il est beaucoup plus important de ne pas se tromper lors du montage que de discuter de ses méthodes.
Les composants de la conception sont les suivants: un registre à décalage du type indiqué ci-dessus, une prise pour un microcircuit à 16 broches (vous pouvez vous en passer), huit LED, le même nombre de résistances mono-ohm, trois résistances de dix ohms, trois boutons, ainsi qu'une carte adaptateur avec une micro-prise USB Si vous avez les bras très droits, vous pouvez simplement prendre la prise Micro USB et y souder deux fils. Et si vous n'aimez pas être original, vous pouvez simplement utiliser un cordon avec un connecteur USB standard. Seule la polarité dans tous les cas, ne pas confondre, eh bien, ne pas organiser de court-circuit.
Notre registre à décalage est appelé scientifiquement un registre à décalage à huit bits avec trois états. Le premier signifie qu'il a huit cellules de mémoire d'un bit et le même nombre de sorties, et le second - que chacun des bits binaires peut prendre l'un des trois états: zéro, un et haute impédance. Ce n'est pas une malédiction, mais une imitation d'une falaise, comme si elle n'était pas du tout connectée. Une sortie dans un état aigu, comme on dit, n'interfère pas: vous pouvez la tirer avec une résistance à au moins zéro, voire à l'unité, et il "accepte" consciencieusement. Mais s'il passe dans un état de zéro ou un, il recevra la priorité, car la faible impédance de sortie du microcircuit dominera votre résistance.
Le microcircuit a cinq entrées.Comme le lecteur a probablement déjà deviné qu'avec un si petit nombre d'entrées pour obtenir autant de sorties, vous devez recevoir des informations en série et les produire en parallèle. Vous tapez de la même manière sur le clavier ou écrivez tour à tour sur papier lettre par lettre, puis vous voyez tout le texte à la fois. Si vous connectez plusieurs registres à décalage en série, vous pouvez augmenter le nombre de sorties du nombre correspondant de fois, mais à la même vitesse de transfert de données, la longue chaîne de registres se remplira plus longtemps. Analogie: il faut plus de temps pour écrire plusieurs feuilles de papier que pour en remplir une seule à la même vitesse.
Mais le registre à décalage est différent du papier en ce sens que les données qu'il contient sont automatiquement décalées, d'où le nom. Vous écrivez le bit suivant, et tous les précédents sont déplacés plus loin dans le registre ou leurs chaînes, le même qui était à la fin avant qu'il ne disparaisse. Imaginez un tube rempli de boules, dont certaines sont ordinaires, d'autres sont lumineuses. Mettez la prochaine balle dedans - normale ou lumineuse, et une autre balle sortira du côté opposé.
Découvrons le but des entrées de la puce. Pour une raison quelconque, indoorgeek a décidé de les énumérer dans l'ordre inverse, comme avant de lancer un vaisseau spatial. La 14ème broche est nécessaire pour saisir les données série. C'est comme un plateau sur lequel vous placez une boule régulière ou lumineuse avant de la pousser dans le tube. 13e conclusion - l'inclusion des résultats. Si zéro y est appliqué, les sorties s'allumeront comme si le combiné était devenu transparent. Nous en donnons un - et le tube est devenu opaque, quelles boules et dans quel ordre le tube est rempli, n'est pas visible. C'est-à-dire que toutes les sorties du registre à décalage sont passées dans un état de haute impédance. Dans la construction considérée, cette conclusion est toujours tirée à zéro, ce qui équivaut à toujours un tube transparent. La 12e conclusion est un type d'obturateur de l'appareil photo. Lorsqu'il y a zéro, l'image que le téléspectateur voit à travers le tube ne reflète pas l'état réel des balles qu'il contient, mais celui qui a été observé lors de la dernière visualisation de l'unité sur cette conclusion. S'il y en a un, le mouvement des billes dans le tube peut être observé en temps réel. Pour que tout cela fonctionne comme décrit, dans le microcircuit, en plus du registre à décalage, il existe un registre de stockage. La 11e conclusion est le chronométrage, c'est-à-dire pousser la balle du plateau dans le tube. Nous donnons une unité là au moment où la valeur dont nous avons besoin est sur la 14e sortie, et, sans la retirer de là, nous retirons l'unité de la 11e sortie. La 10e conclusion est une réinitialisation. Si zéro y est appliqué, cela équivaudra à la perte de propriétés lumineuses de toutes les billes du tube. Après avoir alimenté une unité à l'entrée de réinitialisation, vous pouvez recommencer à remplir le tube avec des boules ordinaires et lumineuses dans n'importe quel ordre, comme indiqué ci-dessus. Dans le stand considéré, il y a toujours une unité. La conclusion 15, ainsi que les conclusions 1 à 7, sont les sorties du registre à décalage. L'alimentation est fournie comme dans la plupart des circuits numériques à seize broches: 8 - fil commun, 16 - plus cinq volts. Enfin, la broche 9 est la sortie vers le registre à décalage suivant, qui peut être connecté en série à plusieurs pièces, comme si vous faisiez un long tube à partir de plusieurs courts. En général, nous connectons la broche 9 du registre précédent à la broche 14 du suivant et nous nous réjouissons. Vous pouvez ainsi améliorer le produit maison proposé.
Comme il s'agit du deuxième stand pour indoorgeek, la phobie devant les résistances de pull-up, décrite dans un article précédent, disparaît lentement de lui. Ici, il y en a déjà trois, ce qui nous a permis d'utiliser des boutons normalement ouverts au lieu des boutons à bascule. Des résistances de 10 kilo-ohms ont été utilisées comme tractions et des résistances de 1 kilo-ohm pour les LED. Comme dans la conception précédente, parallèle au bouton d'horloge (11e sortie), il est bon de connecter un condensateur de 100 μF et au moins 6,3 V plus au plus de l'alimentation, et moins au microcircuit et à la résistance. Il s'avérera le suppresseur de rebond de contact le plus simple.
Répéter après indoorgeek:
Vous avez donc également réussi:
Maintenant, comment tout utiliser. Pour mettre une boule lumineuse dans le tube, appuyez sur le bouton connecté à la borne 14, après quoi, tout en la maintenant, appuyez sur le bouton connecté à la borne 11, puis relâchez-la. Ensuite, relâchez le bouton connecté à la broche 14.Pour faire de même avec une boule non lumineuse, avec un bouton connecté à la borne 14, nous ne faisons rien, et appuyons et relâchons le bouton connecté à la borne 11. Vous pouvez donc écrire dans le registre à décalage et quelques bits. Dans les deux cas, lorsque le bouton est relâché, connecté à la borne 12, l'état des LED ne change pas et lorsqu'il est enfoncé, il reflète l'état du registre à décalage en temps réel. Si vous décidez de ne pas maintenir ce bouton enfoncé pendant l'enregistrement, appuyez brièvement dessus maintenant, et le registre de stockage prendra une photo de l'état actuel du registre à décalage.
Étant donné que le tube et les billes sont virtuels et que le microcircuit et les LED sont réels, pour le spectateur, chaque balle tombant du côté opposé du tube disparaît. Il y aurait un autre registre, il s'y installerait. Vous pouvez améliorer cette conception en ajoutant ce registre, et même plusieurs d'entre eux, et huit autres LED avec des résistances pour chacun d'eux. Comme indiqué ci-dessus, la broche 9 de chaque registre précédent doit être connectée à la broche 14 du suivant. Et la puissance et les entrées 10, 11, 12 et 13 de tous les registres sont parallélisées.
Vous avez donc une idée de ce que fait Arduino en contrôlant les registres à décalage.