Arduino - Afficheur LCD 1602
Les afficheurs LCD existent sous toutes tailles, de couleurs différentes et pouvant afficher plusieurs lignes et plusieurs caractères par lignes.
Les afficheurs LCD utilisent deux types de controleurs:
- le controleur HD44780
- le controleur ST7032
Le HD44780 utilise un bus de data de 8 bits, qu'il faut relier aux broches de l'Arduino.
soit en mode 4 bits, et il utilisera 7 broches de l'Arduino
soit en mode 8 bits, et il utilisera 11 broches de l'Arduino
sans oublier les 3 pins pour le controle , l'alimentation et la luminosité
Le ST7032 utilise l'interface I2C (qui est présente sur l'Arduino - broche A4 - SDA et broche A5 - SCL), il n'a besoins que de :
2 pins (SCL / la clock en A5 et SDA / les datas en A4)
2 pins pour l'alimentation
Le LCD 1602 utilise le contrôleur HD44780 et 1602 signifie que l'afficheur va pouvoir afficher 16 caractères sur chacune des 2 lignes.
Le Brochage du lcd 1602 - HD44780
Broches | Noms | Roles |
---|---|---|
1 | Vss | Gnd - Masse |
2 | Vdd | +5 volts |
3 | V0 | Réglage du contraste |
4 | RS | Sélection du registre (commande ou données) |
5 | RW | Lecture ou Ecritre (du registre) |
6 | E | Entrée de validation |
7 | DB0 | Bit de données 0 (data) |
8 | DB1 | Bit de données 1 (data) |
9 | DB2 | Bit de données 2 (data) |
10 | DB3 | Bit de données 3 (data) |
11 | DB4 | Bit de données 4 (data) |
12 | DB5 | Bit de données 5 (data) |
13 | DB6 | Bit de données 6 (data) |
14 | DB7 | Bit de données 7 (data) |
15 | A | Anode du rétro-éclairage (+5v) |
16 | K | Cathode du rétro-éclairage (Gnd - Masse) |
Le schema
Notre montage est réalisé avec le simulateur Tinkercad
Nous utiliserons un potentiomètre de 250 KOhms relié entre le +5v et le Gnd pour le réglage du contraste et une résistance de 220 Ohms sur l'anode du LCD pour le rétro-éclairage
Mode d'utilisation :
- Mode 8bit - data - DB0 jusqu'à DB7
- Mode 4 bit - data - DB4 jusqu'à DB7
Nous utiliserons le mode 4 bits
Câblage avec l'Arduino Uno en Mode 4 bit
LCD1602 - Arduino Uno
- Broche 1 (Vss) sur la broche Gnd -Masse
- Broche 2 (Vdd) sur la broche +5v
- Broche 3 (V0) sur curseur du potentiomètre 250 KOhms
- Broche 4 (RS) sur la broche Digital 12
- Broche 5 (R/W) sur la broche Gnd - Masse
- Broche 6 (E) sur la broche Digital 11
- Broche 11 (DB4 - Data) sur la broche Digital 5
- Broche 12 (DB5 - Data) sur la broche Digital 4
- Broche 13 (DB6 - Data) sur la broche Digital 3
- Broche 14 (DB7 - Data) sur la broche Digital 2
- Broche 15 (A - Anode rétro-éclairage) sur résistance de 220 Ohms puis +5v
- Broche 16 (K - Cathode rétro-éclairage) sur le Gnd - Masse
Avant de mettre sous tension, vérifier votre cablage, une erreur pourrait etre fatale pour l'Arduino Uno et/ou le LCD
le code
Nous utiliserons la librairie LiquilCristal.h
// Utilisation de la librairie LiquidCrytal.h
#include <LiquidCrystal.h>
// Définition des broches RS, E, et Data (DB4 à DB7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
//configurer le nombre de colonnes et de lignes de l'écran LCD:
lcd.begin(16, 2);
// Affichage du message " hello world ! "
lcd.print(" hello, world ! ");
}
void loop() {
// Position du curseur sur la colonne 0, ligne 1
lcd.setCursor(0, 1);
// Temporisation de 10
lcd.print(millis() / 10);
}
Affichage d'un Chronomètre
Nous allons afficher un chronomètre sur la 2ème ligne avec le code millis()
Le code
// include the library code:
#include <LiquidCrystal.h>
// initialization librairie avec les pins de l'Arduino
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
// Colonne 0 = 1ere colonne
// Ligne 0 = 1ère ligne
// Position colonne 0, ligne 0
lcd.setCursor(0,0);
lcd.print("Salut Claude");
// Position colonne 0, ligne 1
lcd.setCursor(0, 1);
lcd.print("Chrono :");
// Position colonne 10, ligne 1
lcd.setCursor(10, 1);
lcd.print(millis() / 60);
}
Faire clignoter l'afficheur
Nous utilisons les codes lcd.noDisplay et lcd.display pour faire clignoter l'afficheur
- lcd.noDisplay() // Extinction du LCD
- lcd.display() // Allumage du LCD
Nous allons eteindre et allumer le LCD avec un temporisation delay() pour donner un effet de clignotement du LCD
Le code
// include the library code:
#include <LiquidCrystal.h>
// initialization librairie avec les pins de l'Arduino
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
// Colonne 0 = 1ere colonne
// Ligne 0 = 1ère ligne
// Position colonne 0, ligne 0
lcd.setCursor(0,0);
lcd.print("Salut Claude");
// Position colonne 0, ligne 1
lcd.setCursor(0, 1);
lcd.print("Chrono :");
// Position colonne 10, ligne 1
lcd.setCursor(10, 1);
lcd.print(millis() / 60);
delay(1000);
// Extinction du LCD
lcd.noDisplay();
delay(200);
// Allumage du LCD
lcd.display();
delay(500);
delay(100);
}
Liste des fonctions de LiquidCrystal
Liste des fonctions de la bibliothèque LiquidCrystal:
https://www.arduino.cc/en/Reference/LiquidCrystal