Vous avez écrit dans le programme pour Arduino quelque chose comme:
lcd.print ("Bonjour tout le monde!")
Le conseil d'administration a exécuté la commande avec obéissance et le texte est apparu à l'écran. Mais comment un appareil a-t-il «dit» quelque chose, et le second «entendu» et «compris»? C'est comme demander à l'artiste de faire votre portrait, mais pas de voir comment il y travaille. L'auteur d'Instructsbles sous le surnom indoorgeek a conçu un support qui vous aidera à vous sentir à la place de l '«Arduino vivant» et à diriger le HD44780 à un niveau bas. Dans l'un des concours, ce fait maison a remporté le premier prix.
Il y a quelques détails pour cela: tout module (LCD, VLI ou PMOLED) sur le contrôleur HD44780 ou compatible, huit interrupteurs à bascule de commutation, un bouton sans fixation, un interrupteur à glissière, une résistance variable de 1 kΩ, une carte avec une prise Micro USB et un boîtier.
D'après ce qui n'est pas montré sur la photo, il nous faut: une résistance de 10 kOhm et un condensateur de 100 μF et au moins 6,3 V.
Indoorgeek lui-même a pris un module du type le plus courant: LCD, 16 caractères par ligne, deux lignes. Mais les autres modules ont le même principe de contrôle, seul le brochage peut différer légèrement, alors ne soyez pas trop paresseux pour regarder la fiche technique.
Dans tous les cas, la connexion au fil commun correspond au zéro logique et la connexion au bus d'alimentation +5 volts correspond à l'unité.
Les broches 1 et 2 servent à alimenter le module. Le premier d'entre eux est toujours connecté à un fil commun, et le second est toujours avec un bus d'alimentation.
La broche 3 sert à régler le contraste. Lorsqu'une tension de 0 à 5 volts lui est appliquée par rapport au fil commun, le contraste passe de zéro au maximum.
La broche 4 vous permet de choisir entre un registre de données et un registre d'instructions. Nous donnons un zéro logique - le registre d'instructions (en d'autres termes, les commandes) est sélectionné, l'unité est le registre de données.
Les instructions peuvent être, par exemple, les suivantes: initialiser le contrôleur, effacer l'écran, etc., et les données incluent des signes que vous afficherez sur l'indicateur.
Vous pouvez, au contraire, lire les données d'un registre. Pour ce faire, vous devez appliquer un niveau élevé à la broche 5, et l'écran passera en mode de sortie d'informations sur votre microcontrôleur. Pour recommencer à écrire des données de votre microcontrôleur sur le contrôleur d'affichage, vous devez envoyer le niveau bas 5 à la broche 5. Très souvent, le mode de lecture n'est pas du tout utilisé, comme par exemple dans ce produit fait maison.
Selon les broches 7 à 14, l'écran peut échanger des commandes et des données en codage 8 bits. Le niveau le plus bas correspond à la broche 7, le plus haut - 14.
La broche 6 est nécessaire pour le déclenchement.Vous définissez lentement les données sur les broches 7 à 14, mais bien que la broche 6 soit un zéro logique, le module ne répond pas du tout à cela. Ensuite, sans changer l'état des broches 7 à 14, vous envoyez une impulsion de haut niveau à court terme à la broche 7 - et les données sont transmises.
Conclusions 15 et 16 - nutrition du rétro-éclairage, le cas échéant. 15 - plus, 16 - moins.
Disponible pour indorgeek, le boîtier s'est avéré mesurer 200x150x40 millimètres. Cet étui a été pris d'un autre, démonté fait maison, et il y avait déjà des trous. Le maître les a utilisés au maximum dans la nouvelle conception afin d'en faire le moins possible d'autres.
Il a placé huit interrupteurs à bascule pour changer l'état des lignes de bus de données / commande, un interrupteur pour choisir entre les registres (voir ci-dessus), un bouton pour le déclenchement, une résistance variable pour ajuster en continu le contraste.
La carte de montage vertical avec une prise Micro USB possède des broches pratiques qui facilitent la connexion des câbles. Seuls deux d'entre eux sont nécessaires ici: +5 V et un fil commun. Si vous ne disposez pas d'une telle carte et qu'une prise Micro USB soudée quelque part semble gênante pour le soudage, vous pouvez simplement prendre un cordon avec un connecteur USB. Dans tous les cas, répétons après le master et soudons un tel schéma:
Les contacts des interrupteurs à bascule correspondant à la position supérieure, indorgeek connectés ensemble et déposé un plus sur eux. Il a fait de même avec les contacts des interrupteurs à bascule correspondant à la position inférieure, mais il leur a donné un moins. Il a connecté les contacts mobiles des interrupteurs à bascule non pas entre eux, mais avec les conclusions des commandes de bus de données / module en fonction du «poids» des deux (D0 - broche 7 - ordre bas, D7 - broche 14 - haut). Si les maîtres n'avaient pas mordu les résistances de traction enragées dans l'enfance, il serait en mesure d'utiliser des interrupteurs à bascule plus simples - pas de commutation, mais normalement ouverts.
Mais les mêmes résistances, mais dans les circuits de suppression des rebonds de contact, il n'a jamais été offensé. Ici, ce circuit est nécessaire pour que le contrôleur d'affichage ne prenne pas une pression sur le bouton stroboscopique pendant plusieurs. D'autres contrôles ne nécessitent pas de suppression de cliquetis, car tant que les impulsions stroboscopiques ne sont pas reçues, les données sur les lignes restantes peuvent changer plusieurs fois comme souhaité. L'essentiel est de ne pas toucher les interrupteurs à bascule et l'interrupteur avec le bouton enfoncé. Ainsi, avec une résistance de 10 kOhm, le maître a tiré la broche 6 sur le fil commun et le bouton sur le bus plus. Étant donné que la résistance du bouton est beaucoup plus faible, lorsqu'il est enfoncé, il "traîne". Lorsqu'elle est relâchée, sa résistance devient proche de l'infini et la résistance la «tire» déjà. Un condensateur de 100 uF (non représenté sur le schéma), connecté par un plus au bus plus, et par un moins à la résistance et à la sixième sortie de l'affichage, supprime le bavardage. Il est préférable, bien sûr, de supprimer le bavardage avec un bouton de commutation et un déclencheur RS.
Au niveau de l'interrupteur coulissant, les sorties des contacts fixes sont connectées de la même manière que pour les interrupteurs à bascule, et l'interrupteur mobile est connecté à la sortie du module 6. Ici, le développeur a de nouveau montré une peur des résistances de traction. Ce commutateur est nécessaire pour choisir entre les modes de transmission des commandes (zéro) et des données (unité).
Indoorgeek a connecté la sortie de la résistance variable correspondant au contraste minimum au fil commun, l'opposé du bus plus, et le milieu (moteur) à la troisième sortie du module.
Conclusions 1, 5 et 16 (respectivement, moins puissance, écriture / lecture et moins rétro-éclairage) le maître connecté à un fil commun, de sorte que le mode d'enregistrement est sélectionné en continu. Conclusions 2 et 15 (respectivement, plus la puissance et plus le rétro-éclairage), il a connecté au bus de cinq volts. Une résistance de limitation de courant à travers les LED de rétroéclairage est intégrée dans le module d'affichage.
Si vous avez collecté tout cela, devant vous maintenant - quelque chose comme ça:
Le panneau avant indoorgeek conçu pour que vous puissiez faire de même:
Vous pouvez apprendre les commandes du contrôleur HD44780 et comment les contrôler en fiche technique. Vous pouvez également voir des exemples de script prêts à l'emploi pour simulateur. Pour commencer, nous allons répéter les étapes derrière indoorgeek pour afficher BONJOUR!
Allumez l'appareil. Le rétro-éclairage s'allume. Déplacez le curseur sur la position correspondant au zéro logique, de sorte que l'indicateur passe en mode de réception des commandes. Réglez le nombre binaire 00001111 sur le bus de commande / données avec les interrupteurs à bascule et appuyez brièvement sur le bouton stroboscopique. Cette commande signifie: allumez l'affichage, rendez le curseur visible et clignotant, ce qui se produira. De la même manière, nous émettrons la commande 00110000, ce qui signifie: recevoir des données au format 8 bits, sélectionner la première ligne et la police 5 par 8 pixels. Visuellement, rien ne se passera, mais quelque part à l'intérieur du contrôleur d'affichage, les commutateurs nécessaires se produiront. Vous pouvez transférer des données. Nous traduisons l'interrupteur à glissière à la position correspondant à l'unité logique, maintenant le module indicateur est prêt à les accepter. Réglez le code ASCII de la lettre H, c'est-à-dire 01001000, basculez les interrupteurs à bascule sur le bus et appuyez sur le bouton stroboscopique. La lettre correspondante apparaît à l'écran et le curseur se déplace d'une position vers la droite. De même, nous passerons les lettres E, L, L, O et le point d'exclamation: 01000101, 01001100, 01001100, 01001111, 00100001. Si vous avez fait la même chose, cela n'a pas d'importance sur le stand que vous venez de monter ou dans le simulateur, vous verrez l'inscription HELLO ! Comme ça:
C'est ainsi que vous avez compris combien Arduino fait pour n'afficher que quelques caractères. Et il y a des équipes pour effectuer des actions plus complexes, après avoir maîtrisé lequel, vous pouvez obtenir des effets intéressants, définir des personnages non standard ...
Votre excursion dans la "cuisine" de la bibliothèque Arduino LiquidCrystal ne fait que commencer, et que ce soit amusant!