SOMMAIRE ►
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:
Caractère speciaux sur écran 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:
- en utilisant le tableau byte simvol[8] = { }; nous avons crypté le signe de degré;
- 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:
- à 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;
- 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]








Unlocking New Possibilities
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