Un écran LCD (Liquid Crystal Display ou écran à Cristaux Liquides en français) permet d’afficher des informations provenant d'une carte Arduino sans utiliser d'ordinateur.
Exemple : Sur l'écran du montage ci-dessous, il est possible de lire la distance mesurée par le capteur à ultrasons.
Il existe différentes tailles d'écran, nous utiliserons un 16×2, c'est à dire 16 colonnes par 2 lignes.
Utilisé seul, un écran LCD utilise beaucoup de broche sur l'Arduino.
Pour simplifier la connectique, nous utiliserons un écran LCD couplé avec un module de communication I2C. Il permet la communication entre la carte Arduino et l'écran via le protocole I2C en n'utilisant que 4 connecteurs.
Branchez l'écran LCD aux broches de l’Arduino comme représenté ci-dessous :
Ecran LCD I2C | Arduino Uno |
---|---|
GND | GND |
VCC | +5V |
SDA | A4 |
SCL | A5 |
Pour utiliser l'écran LCD, il faut installer la bibliothèque LiquidCrystal_I2C :
Les modules utilisant une interface I2C ont tous une adresse. Les interfaces du lycée ont toutes pour adresse : 0x27.
En cas de doute, pour connaitre l'adresse de votre interface I2C, vous devez :
Afficher du texte
Un exemple de code à téléverser pour afficher un texte :
#include <LiquidCrystal_I2C.h> // inclure la bibliothèque I2C LiquidCrystal_I2C lcd(0x27,16,2); // adresse i2c , nombre de colonnes, nombre de lignes de l'écran void setup() { lcd.init(); // initialisation du LCD lcd.backlight(); // active le rétroéclairage lcd.noBacklight() pour le désactiver lcd.setCursor(0,0); // mettre le curseur à la première ligne, première colonne lcd.print("Bonjour"); // afficher "Bonjour" delay(1000); lcd.setCursor(0,1); // mettre le curseur à la deuxième ligne, première colonne lcd.print("le monde"); // afficher "le monde" } void loop() { }
Attention, le texte ne doit pas comporter des caractères accentués !
Afficher une variable
Exemple de code pour afficher une variable :
#include <LiquidCrystal_I2C.h> // inclure la bibliothèque I2C LiquidCrystal_I2C lcd(0x27,16,2); // adresse i2c , nombre de colonnes, nombre de lignes de l'écran int variable = 25; void setup() { lcd.init(); // initialisation du LCD lcd.backlight(); // active le rétroéclairage lcd.noBacklight() pour le désactiver lcd.setCursor(0,0); // mettre le curseur à la première ligne, première colonne lcd.print(variable); // affiche le contenu de la variable, soit 25 } void loop() { }
Afficher du texte et une variable
Par exemple, pour afficher la température avec son unité T = 25°C, nous pouvons utiliser le code suivant :
#include <LiquidCrystal_I2C.h> // inclure la bibliothèque I2C LiquidCrystal_I2C lcd(0x27,16,2); // adresse i2c , nombre de colonnes, nombre de lignes de l'écran int temperature = 25; void setup() { lcd.init(); // initialisation du LCD lcd.backlight(); // active le rétroéclairage lcd.noBacklight() pour le désactiver lcd.setCursor(0,0); // mettre le curseur à la première ligne, première colonne lcd.print("T = "); lcd.print(temperature); lcd.print((char)223); lcd.print("C"); } void loop() { }
Ci dessous une liste non exhaustive de fonctions apportées par la bibliothèque LiquidCrystal :
Voici les différentes fonctions disponibles dans la bibliothèques LiquidCrystal_I2C.
A faire vous-même 1 | |
---|---|
Modifier le code précédent qui affiche “Bonjour le monde” pour que le message soit centré sur l'écran. |
A faire vous-même 2 | |
---|---|
Écrire le code permettant d'afficher sur l'écran LCD, le texte saisi dans le moniteur série. |
A faire vous-même 3 | |
---|---|
Écrire le code permettant d'afficher sur l'écran LCD un chronomètre. |