Comment faire caractère spécial LCD

Comment afficher un caractère spécial sur l’afficheur LCD 1602 Arduino? La librairie LiquidCrystal permet d’afficher simplement des caractères Alphabétiques et numériques. Voyons comment créer votre propre symbole pour créer une station météo Arduino, par exemple, et en bonus, voyons un programme pour une ligne de crawl sur l’écran. Il convient de noter d’emblée que la capacité de mémoire de LCD 1602 i2c est limitée à huit caractères.


Ce dont vous aurez besoin

  • Arduino Uno / Arduino Nano / Arduino Mega
  • écran LCD 1602 I2C
  • fils de connexion
  • librairie LiquidCrystal_I2C.h

Matériel supplémentaire sur ce sujet:

  1. Minuterie de compte à rebours sur LCD 1602
  2. Jeu Arduino avec afficheur LCD 1602 I2C
  3. Branchement ecran LCD 1602 I2C Arduino

Caractère speciaux sur écran LCD 1602 Arduino

Branchement et utilisation LCD i2c Arduino
Comment faire caractère speciaux sur LCD 1602 Arduino
LCD 1602 i2c Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VCC 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

L’afficheur LCD 1602 supporte 8 nouveaux caractères spécial (numérotés de 0 à 7) d’une taille de 5 par 8 pixels. Un nouveau caractère pour l’écran LCD, peut être spécifié par un tableau de huit octets caractérisant la chaîne correspondante. La mémoire CGRAM du module peut stocker ses propres caractères, mais la taille de la mémoire est limitée et ne peut contenir que 8 caractères spécial. Voyons comment faire par exemple pour afficher le symbole °.

Programme pour faire caractère spécial sur LCD

#include "Wire.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD(0x27,16,2);

// // déclaration d’un tableau de 8 octets
// 1 pour pixel affiché – 0 pour pixel éteint
byte customChar[8] = {
0b01100,
0b10010,
0b10010,
0b01100,
0b00000,
0b00000,
0b00000,
0b00000
};

void setup() {
   LCD.init();
   LCD.backlight();

   LCD.createChar(1, customChar); // création du caractère personnalisé
   
   LCD.setCursor(0,0);
   LCD.print(char(1)); // affiche le caractère
}

void loop() {
 
}

Explication du code pour faire caractère speciaux sur LCD:

  1. en utilisant le tableau byte simvol[8] = { }; nous avons crypté le signe de degré;
  2. function lcd.createChar(num, data); crée un caractère personnalisé pour l’écran LCD, où num est le numéro du caractère et data est le tableau de données entre parenthèses.

Comment faire défiler un texte sur LCD Arduino

Rappelons que l’écran a 16 caractères par ligne (0 à 15), mais que le contrôleur d’écran a une mémoire de 40 caractères par ligne. Si vous utilisez un écran LiquidCrystal avec un module I2C, vous n’avez besoin que de 4 fils pour assembler le circuit. Après avoir connecté l’afficheur LCD 1602, chargez le code suivant. Le programme est expliqué ci-dessous, si vous avez encore des questions vous pouvez les laisser dans les commentaires du post.

Programme pour faire défiler un texte sur LCD

#include "Wire.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD(0x27,16,2);

byte human[8] = {
0b01110,
0b10001,
0b01110,
0b00100,
0b11111,
0b00100,
0b01010,
0b10001
};

void setup() {
   LCD.init();
   LCD.backlight();

   LCD.createChar(1, human);
}

void loop() {
   for (int i = 0; i < 10; i++) {
      LCD.setCursor(i, 0);
      LCD.print(char(1));
      delay(200);
      LCD.clear();
   } 
 
   for (int i = 10; i > 0; i--) {
      LCD.setCursor(i, 0);
      LCD.print(char(1));
      delay(200);
      LCD.clear();
   }
}

Explication du code pour faire défiler un texte sur LCD:

  1. à chaque fois que la variable i est modifiée dans la boucle for, après 200 ms l’inscription est effacée et s’affiche à un nouvel endroit – faire défiler un texte sur lcd arduino;
  2. vous pouvez également utiliser les fonctions scrollDisplayRight et scrollDisplayLeft

Générateur de caractères LCD 16×2 i2c en ligne

[sc name= »lcd »][/sc]

Conclusion. Nous avons vu une façon simple de créer vos propres caractères spéciaux sur l’écran, qui fonctionnera pour les lettres non incluses dans la bibliothèque standard LiquidCrystal_I2C.h. Les caractères peuvent également être créés à l’aide d’un générateur de caractères en ligne pour l’écran. Il est également possible de créer un texte défilant à l’aide d’une boucle for qui peut être utilisée pour créer des jeux ou des projets Arduino.




2 Replies to “Comment faire caractère spécial sur LCD 16×2 Arduino”

  1. Bonjour @Admin
    Erreur :
    « pour les lettres non incluses dans la bibliothèque standard LiquidCrystal_I2C.h »
    Le machine.h, ce n’est pas une bibliothèque. C’est le fichier header qui contient toutes les déclarations de fonctions, de variables et de class pour que le compilateur sache ou il met les pieds avant d’aller voir le fichier .cpp de la bibliothèque.
    Correction :
    « pour les lettres non incluses dans la bibliothèque standard LiquidCrystal_I2C » –> virez le « .h ».
    ———————————————-
    Sinon bon tuto, ce serai bien d’expliquer plus en détails pourquoi cette liste d »octet font ce symbole et pas un autre, mais ce n’est que mon humble avis 😉

    Bonne journée

    Cordialement
    Rémi Arduino

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.