dans ce tutoriel, je vais vous expliquer comment configurer un LCD sur un Arduino et vous montrer toutes les différentes façons de le programmer. Je vais vous montrer comment imprimer du texte, faire défiler le texte, créer des caractères personnalisés, clignoter le texte et positionner le texte. Ils sont parfaits pour tout projet qui génère des données, et ils peuvent rendre votre projet beaucoup plus intéressant et interactif.
L’écran que j’utilise est un 16×2 écran LCD que j’ai acheté pour environ $5. Vous vous demandez peut-être pourquoi on l’appelle un écran LCD 16×2., La partie 16×2 signifie que L’écran LCD a 2 lignes et peut afficher 16 caractères par ligne. Par conséquent, un écran LCD 16×2 peut afficher jusqu’à 32 caractères à la fois. Il est possible d’afficher plus de 32 caractères avec défilement.
le code de cet article est écrit pour les écrans LCD qui utilisent le pilote Hitachi HD44780 standard. Si votre écran LCD a 16 broches, il a probablement le pilote Hitachi HD44780. Ces écrans peuvent être câblés en 4 bits ou 8 bits mode. Le câblage de l’écran LCD en mode 4 bits est généralement préféré car il utilise quatre fils de moins que le mode 8 bits., En pratique, il n’y a pas de différence notable dans les performances entre les deux modes. Dans ce tutoriel, je vais connecter L’écran LCD en mode 4 bits.
connexion de L’écran LCD à L’Arduino
Voici un schéma des broches de l’écran LCD que j’utilise. Les connexions de chaque broche à L’Arduino seront les mêmes, mais vos broches peuvent être disposées différemment sur L’écran LCD., Assurez-vous de vérifier la fiche technique ou de rechercher des étiquettes sur votre écran LCD particulier:
de plus, vous devrez peut-être souder un en-tête 16 broches à votre écran LCD avant de le connecter à une platine de prototypage. Suivez le schéma ci-dessous pour fil de l’écran LCD de votre Arduino:
La résistance dans le diagramme ci-dessus définit la luminosité du rétroéclairage. Une valeur typique est de 220 Ohms, mais d’autres valeurs fonctionneront aussi., Des résistances plus petites rendront le rétroéclairage plus lumineux.
Le potentiomètre est utilisé pour régler le contraste de l’écran. J’utilise généralement un potentiomètre 10K Ohm, mais d’autres valeurs fonctionneront également.
Voici la fiche technique de L’écran LCD 16×2 avec toutes les informations techniques sur l’écran:
16×2 LCD fiche technique
programmation de L’Arduino
tout le code ci-dessous utilise la bibliothèque liquidcrystal préinstallée avec l’arduino arduino., Une bibliothèque est un ensemble de fonctions qui peuvent être facilement ajouté à un programme dans un format abrégé.
pour utiliser une bibliothèque, il doit être inclus dans le programme. La ligne 1 du code ci-dessous le fait avec la commande #include <LiquidCrystal.h>
. Lorsque vous incluez une bibliothèque dans un programme, tout le code de la bibliothèque sont téléchargés à l’Arduino avec le code de votre programme.
maintenant, nous sommes prêts à entrer dans la programmation! Je vais passer en revue des choses plus intéressantes que vous pouvez faire dans un instant, mais pour l’instant, permet d’exécuter un simple programme de test. Ce programme imprimera » hello, world!,” à l’écran. Entrez ce code dans l’IDE Arduino et le télécharger sur le conseil d’administration:
#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { lcd.begin(16, 2); lcd.print("hello, world!");}void loop() {}
Votre écran LCD l’écran devrait ressembler à ceci:
Affichage LCD Options
Il y a 19 différentes fonctions dans la librairie LiquidCrystal pour nous. Ces fonctions permettent de modifier la position du texte, de déplacer le texte sur l’écran ou d’activer ou de désactiver l’affichage. Ce qui suit est une brève description de chaque fonction, et comment l’utiliser dans un programme.,
LiquidCrystal()
Le LiquidCrystal()
fonction définit les broches de l’Arduino utilise pour se connecter à l’écran LCD. Vous pouvez utiliser l’une des broches numériques de L’Arduino pour contrôler l’écran LCD. Il suffit de mettre les numéros de broches Arduino entre parenthèses dans cet ordre:
LiquidCrystal(RS, E, D4, D5, D6, D7)
RS, E, D4, D5, D6, D7 sont les broches LCD.
par exemple, disons que vous voulez que la broche LCD D7 se connecte à la broche Arduino 12., Mettez juste « 12” à la place de la D7 en fonction comme ceci:
LiquidCrystal(RS, E, D4, D5, D6, 12)
Cette fonction doit être placé avant la balise void setup()
section du programme.
lcd.begin()
Cette fonction définit les dimensions de l’écran LCD. Il doit être placé avant toute autre fonction LiquidCrystal dans la section void setup()
du programme. Le nombre de lignes et de colonnes est spécifié sous la forme lcd.begin(columns, rows)
., Pour un 16×2 LCD, vous pouvez utiliser lcd.begin(16, 2)
et pour 20×4 écran LCD vous utilisez lcd.begin(20, 4)
.
lcd.clear()
Cette fonction efface tout le texte ou les données déjà affiché sur l’écran LCD., Si vous utilisez lcd.clear()
par lcd.print()
et le delay()
fonction dans le void loop()
section, vous pouvez faire un simple texte clignotant programme:
lcd.home()
Cette fonction met le curseur dans le coin supérieur gauche de l’écran, et imprime tout texte suivant à partir de cette position. Par exemple, ce code remplace les trois premières lettres de » hello world!,” avec X:
lcd.setCursor()
Similaire, mais plus utile qu’ lcd.home()
est lcd.setCursor()
. Cette fonction place le curseur (et tout texte imprimé) à n’importe quelle position sur l’écran. Il peut être utilisé dans la balise void setup()
ou void loop()
section de votre programme.
La position du curseur est défini avec lcd.setCursor(column, row)
. Les coordonnées de la colonne et de la ligne commencent à partir de zéro (0-15 et 0-1 respectivement)., Par exemple, à l’aide de lcd.setCursor(2, 1)
dans le void setup()
de la section « bonjour, monde! »programme ci-dessus imprime » bonjour, monde!” pour le bas de ligne et la décale vers la droite deux espaces:
lcd.write()
Vous pouvez utiliser cette fonction pour écrire différents types de données à l’écran LCD, par exemple, la lecture à partir d’un capteur de température, ou les coordonnées d’un module GPS., Vous pouvez également l’utiliser pour imprimer des caractères personnalisés que vous créez vous-même (voir plus loin). Utiliser lcd.write()
dans le void setup()
ou void loop()
section de votre programme.
lcd.print()
Cette fonction est utilisée pour imprimer du texte à l’écran LCD. Il peut être utilisé dans la balise void setup()
ou void loop()
section du programme.
pour imprimer des nombres, aucun guillemet n’est nécessaire. Par exemple, pour imprimer 123456789, utilisez lcd.print(123456789)
.,
lcd.print()
peut imprimer des nombres dans des bases décimales, binaires, hexadécimales et octales. Par exemple:
lcd.cursor()
Cette fonction crée un curseur visible. Le curseur est une ligne horizontale placée sous le caractère suivant à imprimer sur L’écran LCD.
La fonction lcd.noCursor()
transforme le curseur off., lcd.cursor()
Etlcd.noCursor()
peuvent être utilisés ensemble dans la sectionvoid loop()
pour créer un curseur clignotant similaire à ce que vous voyez dans de nombreux champs de saisie de texte:
cela place un curseur clignotant après le point”
les Curseurs peuvent être placés n’importe où sur l’écran avec la balise lcd.setCursor()
fonction. Ce code place un curseur clignotant directement sous le point d’exclamation dans » hello, world!,”:
lcd.blink()
Cette fonction crée un curseur de style bloc qui clignote et clignote à environ 500 millisecondes par cycle. Utilisez-le dans la section void loop()
. La fonction lcd.noBlink()
désactive le curseur du bloc clignotant.
lcd.display()
Cette fonction transforme n’importe quel texte ou des curseurs qui ont été imprimés à l’écran LCD. La fonction lcd.noDisplay()
désactive tout texte ou curseurs imprimés sur L’écran LCD, sans l’effacer de la mémoire de l’écran.,
ces deux fonctions peuvent être utilisées ensemble dans la sectionvoid loop()
pour créer un effet de texte clignotant. Ce code fera le » bonjour, monde!” texte clignotent:
lcd.scrollDisplayLeft()
Cette fonction prend tout ce qui est imprimé à l’écran LCD et le déplace vers la gauche. Il doit être utilisé dans la section void loop()
avec une commande delay qui la suit. La fonction déplace le texte de 40 espaces vers la gauche avant de revenir au premier caractère. Ce code déplace le » bonjour, monde!, »texte à gauche, à raison d’une seconde par caractère:
les chaînes de texte de plus de 40 espaces seront imprimées à la ligne 1 après la 40e position, tandis que le début de la chaîne continuera à imprimer à la ligne 0.
lcd.scrollDisplayRight()
Cette fonction se comporte comme lcd.scrollDisplayLeft()
, mais déplace le texte vers la droite.
lcd.autoscroll()
Cette fonction prend une chaîne de texte et de faire défiler de droite à gauche par incrément du nombre de caractères de la chaîne., Par exemple, si vous avez une chaîne de texte de 3 caractères, elle décalera le texte de 3 espaces vers la gauche à chaque étape:
comme les fonctions lcd.scrollDisplay()
, le texte peut avoir jusqu’à 40 caractères avant de se répéter. À première vue, cette fonction semble moins utile que les fonctions lcd.scrollDisplay()
, mais elle peut être très utile pour créer des animations avec des caractères personnalisés.
lcd.noAutoscroll()
lcd.noAutoscroll()
active la balise lcd.autoscroll()
fonction désactivée., Utilisez cette fonction avant ou après lcd.autoscroll()
dans la section void loop()
pour créer des séquences de texte défilant ou des animations.
lcd.rightToLeft()
Cette fonction définit le sens que le texte est imprimé à l’écran. Le mode par défaut est de gauche à droite en utilisant la commande lcd.leftToRight()
, mais vous pouvez trouver certains cas où il est utile de sortir du texte dans le sens inverse:
ce code imprime le » hello, world!” texte « !dlrow, olleh »”, Sauf si vous spécifiez le placement du curseur avec lcd.setCursor()
, le texte s’affichera à partir de la position (0, 1) et seul le premier caractère de la chaîne sera visible.
lcd.createChar()
Cette commande vous permet de créer vos propres personnages. Chaque caractère D’un écran LCD 16×2 a une largeur de 5 pixels et une hauteur de 8 pixels. Jusqu’à 8 caractères personnalisés différents peuvent être définis dans un seul programme., Pour concevoir vos propres personnages, vous devrez créer une matrice binaire de votre personnage personnalisé à partir d’un générateur de caractères LCD ou le mapper vous-même. Ce code crée un degré symbole (°):
Il y a beaucoup de choses cool que vous pouvez réaliser avec ces 16×2 écrans Lcd! Essayez de combiner certaines de ces fonctions et voyez ce qui se passe.
Voici une version vidéo de ce tutoriel afin que vous puissiez voir ce que chaque fonction sur l’écran LCD en temps réel: