Arduino Nano - LCD

Ce tutoriel vous explique comment utiliser un affichage LCD avec un Arduino Nano, comment programmer l'Arduino Nano pour afficher du texte, des caractères spéciaux sur l'écran LCD.

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×LCD I2C
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de l'écran LCD I2C 16x2

L'I2C LCD est composé d'un écran LCD standard, d'un module I2C et d'un potentiomètre. Il est fortement recommandé d'utiliser l'I2C LCD à la place du LCD standard. Cela est dû au fait que l'utilisation de l'I2C LCD simplifie grandement le câblage.

Le brochage de l'écran LCD

L'écran LCD I2C utilise l'interface I2C pour se connecter à Arduino Nano. Il possède quatre broches :

  • La broche GND doit être connectée à la masse (0V).
  • La broche VCC est l'alimentation pour l'écran LCD et doit être connectée à VCC (5V).
  • La broche SDA est le signal de données I2C.
  • La broche SCL est le signal d'horloge I2C.
Brochage LCD I2C

Coordonnée LCD

L'écran LCD I2C 16x2 possède 16 colonnes et 2 rangées, les colonnes et les rangées étant numérotées à partir de 0.

Arduino Nano LCD I2C coordonnée

Diagramme de câblage

Schéma de câblage LCD I2C Arduino Nano

This image is created using Fritzing. Click to enlarge image

LCD I2C module Arduino Nano
Vin 5V
GND GND
SDA A4
SCL A5

Comment programmer pour LCD I2C

La bibliothèque LiquidCrystal_I2C doit être incluse pour pouvoir utiliser l'écran LCD.

  • Configurer l'écran LCD :

L'écran LCD doit être correctement configuré pour fonctionner correctement.

  • Écrire sur l'écran LCD :

Écrire sur l'écran LCD est facile grâce à la bibliothèque LiquidCrystal_I2C.

#include <LiquidCrystal_I2C.h> // Bibliothèque pour LCD
  • Créez un objet LiquidCrystal_I2C avec une adresse I2C, le nombre de colonnes et le nombre de lignes spécifiés.
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C 0x27, 16 colonnes et 2 lignes
  • Démarrez l'écran LCD.
lcd.init(); //initialiser l'écran LCD lcd.backlight(); //ouvrir le rétroéclairage
  • Rendez-vous à la colonne et à la ligne indiquées respectivement par column_index et row_index.
lcd.setCursor(column_index, row_index);
  • Affichez un message sur l'écran LCD.
lcd.print("Hello World!");

Explorez les possibilités de ce qui peut être réalisé avec un LCD en consultant la section "Faites plus avec un LCD".

※ NOTE THAT:

L'adresse du LCD peut varier en fonction du fabricant. Pour notre code, nous avons utilisé 0x27 comme spécifié par DIYables.

Code Arduino Nano

#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C 0x27, 16 colonnes et 2 lignes void setup() { lcd.init(); // Initialiser l'affichage LCD I2C lcd.backlight(); lcd.setCursor(3, 0); // déplacer le curseur à (3, 0) lcd.print("DIYables"); // afficher le message à (3, 0) lcd.setCursor(0, 1); // déplacer le curseur à (0, 1) lcd.print("www.diyables.io"); // afficher le message à (0, 1) } void loop() { }

Étapes rapides

  • Cliquez sur l'icône Libraries dans la barre latérale gauche de l'IDE Arduino.
  • Recherchez "LiquidCrystal I2C" et localisez la bibliothèque LiquidCrystal_I2C créée par Frank de Brabander.
  • Ensuite, cliquez sur le bouton Install pour ajouter la bibliothèque.
Bibliothèque LiquidCrystal I2C pour Arduino Nano
  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE pour envoyer le code à l'Arduino Nano.
  • Vérifiez le résultat sur l'écran LCD.
Afficher du texte sur un écran LCD avec Arduino Nano
  • Expérimentez avec la modification du texte et de son emplacement.

Vidéo

Faites plus avec les écrans LCD

Personnage personnalisé

lcd.print() fonctionne uniquement avec les caractères ASCII. Pour afficher un caractère spécial ou un symbole (par exemple, un cœur, un oiseau en colère), vous devez utiliser le générateur de caractères.

Un LCD 16x2 peut afficher jusqu'à 32 caractères. Chaque caractère est composé de 40 pixels, qui sont disposés en 8 rangées et 5 colonnes.

Arduino Nano LCD 16x2 pixels

Le générateur de caractères crée un caractère qui a une taille de 40 pixels. Pour l'utiliser, suivez simplement ces étapes :

Click on each pixel to select/deselect


Copy below custom character code
Replace the customChar[8] in the below code
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C 0x27, 16 colonnes et 2 lignes byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { lcd.init(); // Initialiser l'affichage LCD I2C lcd.backlight(); lcd.createChar(0, customChar); // créer un nouveau caractère personnalisé lcd.setCursor(2, 0); // déplacer le curseur à (2, 0) lcd.write((byte)0); // imprimer le caractère personnalisé à (2, 0) } void loop() { }

L'écran LCD affichait le résultat. Le résultat était affiché sur l'écran LCD.

Caractère personnalisé LCD

Plusieurs personnages personnalisés

Nous sommes en mesure de créer jusqu'à un maximum de 8 caractères personnalisés, numérotés de 0 à 7. L'exemple ci-dessous montre comment en créer et afficher trois.

#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C 0x27, 16 colonnes et 2 lignes byte customChar0[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; byte customChar1[8] = { 0b00100, 0b01110, 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 }; byte customChar2[8] = { 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, 0b01110, 0b00100 }; void setup() { lcd.init(); // Initialiser l'afficheur LCD I2C lcd.backlight(); lcd.createChar(0, customChar0); // créer un nouveau caractère personnalisé (index 0) lcd.createChar(1, customChar1); // créer un nouveau caractère personnalisé (index 1) lcd.createChar(2, customChar2); // créer un nouveau caractère personnalisé (index 2) lcd.setCursor(2, 0); // déplacer le curseur à (2, 0) lcd.write((byte)0); // imprimer le caractère personnalisé 0 à (2, 0) lcd.setCursor(4, 0); // déplacer le curseur à (4, 0) lcd.write((byte)1); // imprimer le caractère personnalisé 1 à (4, 0) lcd.setCursor(6, 0); // déplacer le curseur à (6, 0) lcd.write((byte)2); // imprimer le caractère personnalisé 2 à (6, 0) } void loop() { }

Le résultat affiché sur l'écran LCD est :

Caractères personnalisés multiples LCD

Résumé : comment utiliser un caractère personnalisé sur un écran LCD

  • Utilisez le générateur de caractères pour générer le code binaire de votre caractère personnalisé.
  • Copiez le code binaire généré à l'étape précédente.
byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 };
  • Attribuez un caractère personnalisé à une valeur d'indice allant de 0 à 7 à l'intérieur de la fonction setup().
lcd.createChar(index, customChar);
  • Imprimez le caractère personnalisé sur l'écran LCD à tout moment, que ce soit dans la fonction setup() ou loop().
lcd.setCursor(column, row); // déplacer le curseur à la position souhaitée lcd.write((byte)index); // imprimer le caractère personnalisé à la position souhaitée

Autres fonctions

  • Imprimez "Hello World"

Insérez les fonctions suivantes dans la fonction loop(), une à la fois, avec un délai de 5000 millisecondes après chacune :

  • Effacer l'écran LCD
  • Afficher "Hello World"
lcd.clear();
  • écran
  • Positionnez le curseur dans le coin supérieur gauche de l'écran LCD.
lcd.home();
  • Positionnez le curseur à une certaine colonne et ligne.
lcd.setCursor(column, row);
  • Affichez le curseur LCD à l'écran.
lcd.cursor();
  • Rend le curseur LCD invisible.
lcd.noCursor();
  • Affichez le curseur LCD clignotant.
lcd.blink()
  • Désactiver le clignotement du curseur LCD.
lcd.noBlink()

Relevez le défi

Essayez d'utiliser un écran LCD pour l'un de ces projets :

Dépannage sur LCD I2C

i. Tournez le potentiomètre situé à l'arrière de l'écran LCD pour ajuster son contraste.

ii. Selon le fabricant, l'adresse I2C de l'écran LCD peut varier. En général, l'adresse I2C par défaut de l'écran LCD est soit 0x27, soit 0x3F. Essayez ces deux valeurs. Si cela ne fonctionne toujours pas, exécutez le code ci-dessous pour trouver l'adresse I2C.

// I2C address scanner program #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("I2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for (address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println(" !"); nDevices++; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("No I2C devices found"); else Serial.println("done"); delay(5000); // wait 5 seconds for next scan }

La sortie affichée sur le moniteur série est : . Le résultat qui apparaît sur le moniteur série est :

COM6
Send
Scanning... I2C device found at address 0x3F ! done Scanning... I2C device found at address 0x3F ! done
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!