Tutoriel LCD Arduino 16 × 2 - Tout ce que vous devez savoir
Dans ce tutoriel Arduino, nous allons apprendre à connecter et à utiliser un LCD (Liquid Crystal Display) avec Arduino . Les écrans LCD comme ceux-ci sont très populaires et largement utilisés dans de nombreux projets électroniques car ils sont parfaits pour afficher des informations simples, comme les données des capteurs, tout en étant très abordables.
Je les ai déjà utilisés dans plusieurs de mes projets Arduino, et vous pouvez les consulter ici :
Vous pouvez regarder la vidéo suivante ou lire le tutoriel écrit ci-dessous. Il comprend tout ce que vous devez savoir sur l'utilisation d'un affichage de caractères LCD avec Arduino, comme le brochage LCD, le schéma de câblage et plusieurs exemples de codes.
Un affichage de caractères LCD est un type d'affichage unique qui ne peut produire que des caractères ASCII individuels de taille fixe. En utilisant ces caractères individuels, nous pouvons alors former un texte.
Si nous regardons de plus près l'affichage, nous pouvons remarquer qu'il y a de petites zones rectangulaires composées d'une grille de 5 × 8 pixels. Chaque pixel peut s'allumer individuellement, et nous pouvons donc générer des caractères dans chaque grille.
Le nombre de zones rectangulaires définit la taille de l'écran LCD. L'écran LCD le plus populaire est l'écran LCD 16 × 2, qui comporte deux rangées de 16 zones rectangulaires ou caractères. Bien sûr, il existe d'autres tailles comme 16×1, 16×4, 20×4 etc., mais elles fonctionnent toutes sur le même principe. De plus, ces écrans LCD peuvent avoir une couleur de fond et de texte différente.
Il a 16 broches et la première de gauche à droite est la Ground broche. La deuxième broche est le VCC auquel nous connectons la broche 5 volts sur la carte Arduino. Vient ensuite la broche Vo sur laquelle on peut fixer un potentiomètre pour contrôler le contraste de l'affichage.
Ensuite, le RS pin ou register select pin est utilisé pour sélectionner si nous enverrons des commandes ou des données à l'écran LCD. Par exemple, si la broche RS est définie sur un état bas ou zéro volt, nous envoyons des commandes à l'écran LCD telles que :placez le curseur sur un emplacement spécifique, effacez l'affichage, éteignez l'affichage, etc. Et lorsque la broche RS est définie sur l'état haut ou 5 volts, nous envoyons des données ou des caractères à l'écran LCD.
Vient ensuite le R/W broche qui sélectionne le mode si nous allons lire ou écrire sur l'écran LCD. Ici, le mode d'écriture est évident et il est utilisé pour écrire ou envoyer des commandes et des données à l'écran LCD. Le mode lecture est utilisé par l'écran LCD lui-même lors de l'exécution du programme dont nous n'avons pas besoin d'en parler dans ce tutoriel.
Vient ensuite le E broche qui permet l'écriture dans les registres, ou les 8 broches de données suivantes de D0 à D7. Ainsi, à travers ces broches, nous envoyons les données 8 bits lorsque nous écrivons dans les registres ou, par exemple, si nous voulons voir ce dernier A majuscule sur l'écran, nous enverrons 0100 0001 aux registres selon la table ASCII. Les deux dernières broches A et K , ou l'anode et la cathode sont pour le rétroéclairage LED.
Après tout, nous n'avons pas à nous soucier du fonctionnement de l'écran LCD, car la bibliothèque de cristaux liquides s'occupe de presque tout. Sur le site officiel d'Arduino, vous pouvez trouver et voir les fonctions de la bibliothèque qui permettent une utilisation facile de l'écran LCD. Nous pouvons utiliser la bibliothèque en mode 4 ou 8 bits. Dans ce tutoriel, nous l'utiliserons en mode 4 bits, ou nous n'utiliserons que 4 des 8 broches de données.
Voici comment nous devons connecter l'écran LCD 16 × 2 à une carte Arduino.
Nous n'utiliserons que 6 broches d'entrée numériques de la carte Arduino. Les registres LCD de D4 à D7 sera connecté aux broches numériques d'Arduino de 4 à 7. Le Activer la broche sera connectée à la broche numéro 2 et au RS la broche sera connectée à la broche numéro 1. Le R/W la broche sera connectée à la masse et au Vo la broche sera connectée à la broche centrale du potentiomètre. Vous pouvez obtenir ces composants sur l'un des sites ci-dessous :
Nous pouvons régler le contraste de l'écran LCD en ajustant la tension d'entrée au Vo broche. Nous utilisons un potentiomètre car de cette façon nous pouvons facilement affiner le contraste, en ajustant la tension d'entrée de 0 à 5V.
Oui, au cas où nous n'aurions pas de potentiomètre, nous pouvons toujours régler le contraste de l'écran LCD en utilisant un diviseur de tension composé de deux résistances. En utilisant le diviseur de tension, nous devons régler la valeur de tension entre 0 et 5V afin d'obtenir un bon contraste sur l'écran. J'ai trouvé que la tension d'environ 1 V fonctionnait très bien pour mon écran LCD. J'ai utilisé une résistance de 1K et 220 ohms pour obtenir un bon contraste.
Il existe également un autre moyen de régler le contraste de l'écran LCD, et c'est en fournissant un signal PWM de l'Arduino au Vo broche de l'écran LCD. Nous pouvons connecter le Vo broche à n'importe quelle broche compatible Arduino PWM, et dans la section de configuration, nous pouvons utiliser la ligne de code suivante :
Il générera un signal PWM sur la broche D11, avec une valeur de 100 sur 255, qui se traduit en tension de 0 à 5V, il sera d'environ 2V en entrée sur le Vo Broche LCD.
Voici un code simple à travers lequel nous pouvons expliquer le principe de fonctionnement de la bibliothèque Liquid Crystal. Voici le code du premier exemple de la vidéo :
Description du code :
La première chose que nous devons faire est d'insérer la bibliothèque de cristaux liquides. Nous pouvons le faire comme ceci :Sketch> Include Library> Liquid Crystal. Ensuite, nous devons créer un objet LC. Les paramètres de cet objet doivent être les numéros des broches d'entrée numérique de la carte Arduino respectivement aux broches de l'écran LCD comme suit :(RS, Enable, D4, D5, D6, D7). Dans la configuration, nous devons initialiser l'interface avec l'écran LCD et spécifier les dimensions de l'écran à l'aide de begin() fonction.
Dans la boucle, nous écrivons notre programme principal. Utilisation de print() fonction que nous imprimons sur l'écran LCD.
Le setCursor() La fonction est utilisée pour définir l'emplacement auquel le texte ultérieur écrit sur l'écran LCD sera affiché.
Le clignotement() est utilisée pour afficher un curseur clignotant et le noBlink() fonction pour éteindre.
Le curseur() la fonction est utilisée pour afficher le curseur de soulignement et le noCursor() fonction d'extinction. Utilisation de clear() fonction, nous pouvons effacer l'écran LCD.
Si nous avons un texte d'une longueur supérieure à 16 caractères, nous pouvons faire défiler le texte à l'aide de scrollDisplayLeft() ou scrollDisplayRight() fonction de la bibliothèque LiquidCrystal.
Voici un exemple de code :
Nous pouvons choisir si le texte défilera vers la gauche ou vers la droite, en utilisant le scrollDisplayLeft() ou scrollDisplayRight() les fonctions. Avec le delay() fonction, nous pouvons définir la vitesse de défilement.
Si vous voulez plus de contrôle sur la façon dont le texte défile, vous pouvez également effectuer le défilement vous-même en utilisant une boucle "for". Voici un exemple :
En plus des caractères ASCII, avec la bibliothèque LiquidCrystal, il est également possible de générer et d'afficher des caractères personnalisés sur l'écran LCD.
On peut spécifier l'apparence de chaque caractère par un tableau de 8 octets. Voici un exemple de code :
Nous pouvons remarquer comment nous pouvons spécifier l'apparence du caractère en changeant les 0 en 1 dans la grille de 5×8 pixels.
Dans la configuration, nous devons créer le caractère personnalisé à l'aide de createChar() fonction.
Le premier paramètre de cette fonction est un nombre compris entre 0 et 7, ou nous devons réserver l'un des 8 caractères personnalisés pris en charge. Le deuxième paramètre est le nom du tableau d'octets.
Nous écrivons le caractère personnalisé à l'écran en utilisant write() fonction et comme paramètre nous utilisons le numéro du caractère.
Voir aussi : Tutoriel sur l'écran tactile Arduino | LCD TFT
Nous avons donc couvert à peu près tout ce que nous devons savoir sur l'utilisation d'un écran LCD avec Arduino. Ces écrans LCD à caractères sont vraiment pratiques pour afficher des informations pour de nombreux projets électroniques. Dans les exemples ci-dessus, j'ai utilisé un écran LCD 16 × 2, mais le même principe de fonctionnement s'applique à toute autre taille de ces affichages de caractères.
J'espère que vous avez apprécié ce tutoriel et appris quelque chose de nouveau. N'hésitez pas à poser des questions dans la section des commentaires ci-dessous et n'oubliez pas de consulter ma collection complète de plus de 30 projets Arduino.
Qu'est-ce que l'affichage de caractères LCD ?
Broche LCD 16×2
Comment connecter l'Arduino à l'écran LCD - Schéma de câblage
Régler le contraste de l'écran LCD
Puis-je utiliser l'écran LCD sans potentiomètre ?
analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255)
Code language: Arduino (arduino)Code Arduino LCD
/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display }
}
void loop() {
lcd.print("Arduino"); // Prints "Arduino" on the LCD
delay(3000); // 3 seconds delay
lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("LCD Tutorial");
delay(3000);
lcd.clear(); // Clears the display
lcd.blink(); //Displays the blinking LCD cursor
delay(4000);
lcd.setCursor(7,1);
delay(3000);
lcd.noBlink(); // Turns off the blinking LCD cursor
lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written
delay(4000);
lcd.noCursor(); // Hides the LCD cursor
lcd.clear(); // Clears the LCD screen
}
Code language: Arduino (arduino)lcd.print("Arduino"); // Prints "Arduino" on the LCD
Code language: Arduino (arduino)lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed
Code language: Arduino (arduino)lcd.blink(); //Displays the blinking LCD cursor
Code language: Arduino (arduino)lcd.clear(); // Clears the LCD screen
Code language: Arduino (arduino)Exemple de défilement de texte sur LCD 16×2 et Arduino
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2);
lcd.print("Scrolling Text Example");
}
void loop() {
lcd.scrollDisplayLeft();
delay(500);
}
Code language: Arduino (arduino)#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}
void loop() {
// scroll text to the right
for (int i = 0; i <= 13; i++) {
lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("LCD");
delay(500); // 1 second delay
lcd.clear(); // Write a character to the LCD
}
// scroll text to the left
for (int i = 12; i >= 1; i--) {
lcd.setCursor(i, 0);
lcd.print("LCD");
delay(500);
lcd.clear();
}
}
Code language: Arduino (arduino)Comment générer et afficher des caractères personnalisés sur l'écran LCD
#include <LiquidCrystal.h>
byte heart[8] = { // Array of bytes
B00000, // B stands for binary formatter and the five numbers are the pixels
B01010,
B11111,
B11111,
B01110,
B00100,
B00000,
B00000
};
byte smile[8] = {
B00000,
B00000,
B01010,
B00000,
B10001,
B01110,
B00000,
B00000
};
byte lock[8] = {
B01110,
B10001,
B10001,
B11111,
B11011,
B11011,
B11111,
B00000
};
byte character[8] = {
B11111,
B10101,
B11111,
B01010,
B01110,
B11111,
B01110,
B01110
};
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
lcd.createChar(0, heart); // Create a custom character
lcd.createChar(1, smile);
lcd.createChar(2, lock);
lcd.createChar(3, character);
// Clears the LCD screen
lcd.clear();
// Print a message to the LCD
lcd.print("Custom Character");
}
void loop() {
lcd.setCursor(1, 1);
lcd.write(byte(0)); // Display the custom character 0, the heart
lcd.setCursor(5, 1);
lcd.write(byte(1));
lcd.setCursor(9, 1);
lcd.write(byte(2));
lcd.setCursor(13, 1);
lcd.write(byte(3));
}
Code language: Arduino (arduino)lcd.createChar(0, heart); // Create a custom character
Code language: Arduino (arduino)lcd.write(byte(0)); // Display the custom character 0, or the heart
Code language: Arduino (arduino)Conclusion
Processus de fabrication
- Tout ce que vous devez savoir sur l'EDM en plongée
- Tout ce que vous devez savoir sur la fonte
- Tout ce que vous devez savoir sur le haut fourneau
- Tout ce que vous devez savoir sur la perceuse
- Tout ce que vous devez savoir sur les tôles
- Tout ce que vous devez savoir sur la fraiseuse
- Tout ce que vous devez savoir sur une raboteuse
- Tout ce que vous devez savoir sur la machine à façonner
- Tout ce que vous devez savoir sur le travail des métaux