Étiquettes : , ,

Un des éléments permettant d’afficher des informations les plus utilisés dans le monde Arduino est l’écran à cristaux liquide (Liquid Crystal Display) LCD 16×2. Lorsque l’on fabrique un système électronique, il peut être intéressant que celui-ci nous donne quelques informations sur son état sans avoir à le brancher à un ordinateur ou à le connecter à un autre système comme un smartphone. L’écran LCD 16×02 est fournit avec un grand nombre de kit Arduino et est très suffisant pour un grand nombre d’application.

 

Matériel

  • Ordinateur
  • Arduino UNO
  • câble USB pour connecter l’Arduino à l’ordinateur
  • Écran LCD 16×2
  • Câbles Dupont M/M

 

Présentation de l’écran LCD 16×2

L’écran LCD 16×2 présente 16 broches pour permettre la gestion de l’affichage et du contraste.

  • VSS Relier à la masse de l’écran
  • VDD Broche d’alimentation. Typiquement connectée à la broche 5V de l’Arduino.
  • V0 Broche de contraste. Connecté à une sortie PWM ou à un potentiomètre.
  • RS Register Select. Permet de sélectionner la zone mémoire.
  • RW Read or Write. Toujours à la masse.
  • E enable. active ou non l’affichage
  • D0 mode 8bits.4 bits de poids fort de la communication I2C
  • D1 mode 8bits.4 bits de poids fort de la communication I2C
  • D2 mode 8bits.4 bits de poids fort de la communication I2C
  • D3 mode 8bits.4 bits de poids fort de la communication I2C
  • D4 4 bits de poids faible de la communication I2C
  • D5 4 bits de poids faible de la communication I2C
  • D6 4 bits de poids faible de la communication I2C
  • D7 4 bits de poids faible de la communication I2C
  • A anode. borne + de la LED de rétroéclairage
  • K katode. borne – de la LED de rétroéclairage

 

Schéma de câblage

Code

Une fois votre module correctement branché, vous pouvez modifier le code suivant pour obtenir la fonctionnalité désirée. Dans l’exemple suivant, nous créons un compte à rebours.

Pour gérer l’écran LCD 16×2 dans le programme, la librairie utilisée est LiquidCrystal.h.

  • LiquidCrystal lcd(rs, en, d4, d5, d6, d7) pour définir la communication i2c 4bits
  • lcd.begin(16, 2); affiche le texte sur les deux lignes
  • lcd.print() pour afficher une chaine de caractères en ASCII
  • lcd.write() pour afficher des données, un octet à la fois.
  •  lcd.setCursor(x, y) pour placer le curseur (colonne x: 0-16, ligne y:0-2)
  • lcd.clear() effacer ce qui est affiché à l’écran

 

/*
 * Liquid cristal counter
 */
// Library
#include <LiquidCrystal.h>
// Initalisation de la librairie
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
long timeInit=0; //min
int tHour=1;
int tMin=26;
int tSec=35;
void setup() {
 // set up the LCD's number of columns and rows: 
 lcd.begin(16, 2);
 analogWrite(8,15);
 // Affiche un message
 lcd.print("Alarm buzz in : ");
 timeInit=timeToCounter(tHour,tMin,tSec);
}
void loop() {
 // Affichage digitale de l'heure
 counterToTime(timeInit);
 lcd.setCursor(0, 1);// place le curseur au 1er caractère de la 2nde ligne
 lcd.print(tHour);
 lcd.print(" h ");  
 lcd.print(tMin);  
 lcd.print(" m ");
 lcd.print(tSec);
 lcd.print(" s");
 
 delay(1000); // Attend 1 second
 timeInit=timeInit-1;
}
int timeToCounter(int h,int m,int s){
 return h*3600+m*60+s;
}
void counterToTime(long cnt){
 tHour=(cnt/3600);
 tMin= (cnt%3600)/60;
 tSec = ((cnt%3600)%60);
}

 

Application

Donnez des émotions à votre robot.

 

Source

Cours OpenClassrooms

Référence Arduino LiquidCrystal