Arduino - Afficheur LCD 1602

  • lcd1602
  • lcd-i2c


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

Brochage du LCD 1602
Brochage du LCD 1602
BrochesNomsRoles
1VssGnd - Masse
2Vdd+5 volts
3V0Réglage du contraste
4RSSélection du registre (commande ou données)
5RWLecture ou Ecritre (du registre)
6EEntrée de validation
7DB0Bit de données 0 (data)
8DB1Bit de données 1 (data)
9DB2Bit de données 2 (data)
10DB3Bit de données 3 (data)
11DB4Bit de données 4 (data)
12DB5Bit de données 5 (data)
13DB6Bit de données 6 (data)
14DB7Bit de données 7 (data)
15AAnode du rétro-éclairage (+5v)
16KCathode du rétro-éclairage (Gnd - Masse)

Le schema

arduino-lcd-cablage


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

  • arduino-lcd-code
  • arduino-affichage-texte


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

  • Arduino-Chrono-Code
  • Arduino-Chrono


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

Arduino-Clignote-Code


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