Site icon AranaCorp

Gérez un écran LCD 16×2 avec Arduino

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

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

Les afficheurs à cristaux liquides utilisent la propriété de modulation de lumière des cristaux liquides. Les écrans à cristaux liquides sont composés de deux couches de polariseurs, avec des directions de polarisaton perpendiculaire, prenant en sandwich deux plaques de verres entre lesquelles sont placés les cristaux liquides. Sur les plaques de verre se trouve une matrice d’électrodes pour chaque pixel. Une tension appliquée entre les électrodes d’un pixel entraine un changement d’orientation des molécules et donc la transparence du pixel qui peut alors laisser, ou non, passer la lumière du rétroéclairage

Schéma de câblage

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

Montage avec résistance
Montage avec potentiomètre

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.

/*
 * 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

Source

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Quitter la version mobile