Arduino UNO R4 - écran LCD I2C

Ce tutoriel vous explique comment utiliser une interface LCD 16×2 I2C avec une carte Arduino UNO R4. En détail, nous apprendrons :

Arduino UNO R4 et écran LCD 16x2 I2C

À propos de l'écran LCD I2C 16x2

Le LCD I2C 16x2 est un écran affichant 16 colonnes et 2 lignes. Il est équipé d'une interface I2C et comprend un potentiomètre pour le réglage du contraste.

Schéma de brochage

L'écran LCD I2C se connecte via une interface I2C et possède 4 broches.

  • Broche GND : connectez-la à la masse (0 volt).
  • Broche VCC : connectez-la à VCC pour l'alimentation (5 volts).
  • Broche SDA : porte le signal de données I2C.
  • Broche SCL : porte le signal d'horloge I2C.
Schéma de 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 commencent toutes deux à être numérotées à partir de 0.

Arduino UNO R4 LCD I2C Coordonnée

Diagramme de câblage

Schéma de câblage LCD I2C pour Arduino UNO R4

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter l'Arduino UNO R4..

LCD I2C Arduino UNO R4, Nano Arduino Mega
Vin 5V 5V
GND GND GND
SDA A4 20
SCL A5 21

Comment programmer pour un écran LCD I2C

L'utilisation de la bibliothèque LiquidCrystal_I2C rend la manipulation de l'écran LCD très facile.

  • Inclure la bibliothèque:
#include <LiquidCrystal_I2C.h>
  • Créez un objet LiquidCrystal_I2C en spécifiant son adresse I2C, le nombre de colonnes et le nombre de lignes.
LiquidCrystal_I2C lcd(0x27, 16, 2); // Initialisez l'écran LCD avec l'adresse I2C 0x27 pour un écran 16x2
  • Configurer l'écran LCD.
lcd.init(); // Initialiser l'écran LCD lcd.backlight(); // Allumer le rétroéclairage de l'écran LCD
  • Placez le curseur à l'emplacement choisi (column_index, row_index).
lcd.setCursor(column_index, row_index);
  • Afficher un message sur l'écran LCD.
lcd.print("Hello World!");

Nous pouvons faire beaucoup plus de choses avec un écran LCD (voir la section « Faire plus avec l'écran LCD »).

※ Note:

L'adresse I2C du LCD peut être différente selon le fabricant. Dans notre code, nous avons utilisé l'adresse 0x27 telle que spécifiée par le fabricant DIYables.

Code Arduino UNO R4

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-r4/arduino-uno-r4-lcd-i2c */ #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // adresse I2C 0x27, 16 colonnes et 2 lignes void setup() { lcd.init(); // initialise le LCD lcd.backlight(); lcd.setCursor(3, 0); // déplace le curseur à (3, 0) lcd.print("DIYables"); // affiche le message à (3, 0) lcd.setCursor(0, 1); // déplace le curseur à (0, 1) lcd.print("www.diyables.io"); // affiche le message à (0, 1) } void loop() { }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c’est la première fois que vous utilisez l'Arduino Uno R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
  • Connectez l’affichage LCD I2C à l’Arduino Uno R4 selon le schéma fourni.
  • Connectez la carte Arduino Uno R4 à votre ordinateur à l’aide d’un câble USB.
  • Lancez l’IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Uno R4 appropriée (par exemple Arduino Uno R4 WiFi) et le port COM.
  • Accédez à l’icône Libraries sur le côté gauche de l’IDE Arduino.
  • Saisissez « LiquidCrystal I2C » dans la boîte de recherche et recherchez la bibliothèque LiquidCrystal_I2C par Frank de Brabander.
  • Appuyez sur le bouton Install pour installer la bibliothèque LiquidCrystal_I2C.
Bibliothèque LiquidCrystal I2C pour Arduino UNO R4
  • Copiez le code et ouvrez-le dans l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur Arduino UNO R4
  • Vérifiez le résultat sur l'écran LCD
Arduino UNO R4 écran LCD I2C
  • Essayez de changer le texte et son emplacement

Vidéo

Faites plus avec l'écran LCD

Personnage personnalisé

Pour afficher des caractères spéciaux ou des symboles tels qu'un cœur ou un oiseau en colère sur un écran LCD, vous devez utiliser le générateur de caractères car la fonction lcd.print() ne peut afficher que des caractères ASCII.

L'écran LCD 16x2 peut afficher 32 caractères répartis sur 2 lignes, avec 16 emplacements sur chaque ligne. Chaque caractère utilise 40 petits carrés, disposés en 8 lignes et 5 colonnes.

Arduino UNO R4 écran LCD 16x2 pixel

Le générateur de personnages crée un personnage (40 pixels). Vous n'avez qu'à suivre 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> // Initialiser l'écran LCD connecté via I2C à l'adresse 0x27 avec 16 colonnes et 2 lignes LiquidCrystal_I2C lcd(0x27, 16, 2); // Définir un tableau d'octets pour créer la forme du caractère personnalisé byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { lcd.init(); // Initialiser l'écran LCD lcd.backlight(); // Allumer le rétroéclairage lcd.createChar(0, customChar); // Enregistrer le caractère personnalisé sur l'écran LCD avec l'ID 0 lcd.setCursor(2, 0); // Positionner le curseur au début, colonne 2, ligne 0 lcd.write((byte)0); // Afficher le caractère personnalisé à la position actuelle du curseur } void loop(){ }

Résultat affiché à l'écran :

caractère LCD personnalisé

Plusieurs caractères personnalisés

Nous pouvons créer jusqu'à 8 caractères spéciaux (numérotés de 0 à 7). L'exemple ci-dessous montre comment créer et afficher trois caractères.

#include <LiquidCrystal_I2C.h> // Créer un objet LCD, en utilisant l'adresse I2C 0x27 avec 16 colonnes et 2 lignes LiquidCrystal_I2C lcd(0x27, 16, 2); // Définir le caractère personnalisé 0 (forme de cœur) byte customChar0[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; // Définir le caractère personnalisé 1 (flèche pointant vers le haut) byte customChar1[8] = { 0b00100, 0b01110, 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 }; // Définir le caractère personnalisé 2 (flèche pointant vers le bas) byte customChar2[8] = { 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, 0b01110, 0b00100 }; void setup() { lcd.init(); // Initialiser l'affichage LCD lcd.backlight(); // Allumer le rétroéclairage de l'écran LCD // Enregistrer le caractère personnalisé 0 avec l'indice 0 sur le LCD lcd.createChar(0, customChar0); // Enregistrer le caractère personnalisé 1 avec l'indice 1 sur le LCD lcd.createChar(1, customChar1); // Enregistrer le caractère personnalisé 2 avec l'indice 2 sur le LCD lcd.createChar(2, customChar2); // Définir le curseur à la colonne 2, ligne 0 lcd.setCursor(2, 0); // Afficher le caractère personnalisé 0 à la position actuelle du curseur lcd.write((byte)0); // Définir le curseur à la colonne 4, ligne 0 lcd.setCursor(4, 0); // Afficher le caractère personnalisé 1 à la position actuelle du curseur lcd.write((byte)1); // Définir le curseur à la colonne 6, ligne 0 lcd.setCursor(6, 0); // Afficher le caractère personnalisé 2 à la position actuelle du curseur lcd.write((byte)2); } void loop() { }

Résultat affiché sur écran à cristaux liquides (LCD) :

Écran LCD : plusieurs caractères personnalisés

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

  • Utilisez le générateur de caractères ci-dessus pour créer le code binaire de votre caractère spécial.
  • Écrivez le code binaire de votre caractère (copiez-le à partir de l'étape précédente).
byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 };
  • Créez un personnage personnalisé et placez-le à un nombre compris entre 0 et 7 dans la fonction setup().
lcd.createChar(index, customChar);
  • Affichez un caractère spécial sur l'écran LCD quand vous le souhaitez, soit dans la fonction setup() soit dans la fonction loop().
lcd.setCursor(column, row); // Positionnez le curseur sur la colonne et la ligne spécifiées lcd.write((byte)index); // Affichez le caractère personnalisé stocké à la position 'index'

Autres fonctions

Insérez les fonctions suivantes dans la fonction loop() une à une, en ajoutant delay(5000) après chaque fonction.

  • Écran LCD facile à lire
lcd.clear();
  • Placez le curseur dans le coin supérieur gauche de l'écran.
lcd.home();
  • Positionnez le curseur à un endroit précis (colonne, ligne).
lcd.setCursor(column, row);
  • Afficher le curseur de l'écran LCD.
lcd.cursor();
  • Éteint le curseur de l'écran LCD.
lcd.noCursor();
  • Afficher le curseur de l'écran LCD qui clignote.
lcd.blink()
  • Arrête le curseur LCD qui clignote.
lcd.noBlink()

Dépannage sur LCD I2C

Si le texte n'apparaît pas sur l'écran LCD I2C, veuillez vérifier ces problèmes :

  • Ajustez la luminosité de l'écran LCD en tournant le potentiomètre situé à l'arrière.
  • L'adresse I2C de l'écran LCD peut varier selon les fabricants. Elle est généralement de 0x27 ou 0x3F. Testez ces adresses séparément. Si aucune ne fonctionne, utilisez le code suivant pour trouver la bonne adresse I2C.
// programme de balayage des adresses I2C #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); // attendre 5 secondes pour le prochain balayage }

Le résultat affiché sur le Moniteur Série :

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  

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !