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
- 1 résistance 220 Ohm
- 1 résistance 1k Ohm ou potentiomètre
- Câbles Dupont M/M
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.
- 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
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
- Fabriquer une horloge
- Donner des émotions à son robot
Source
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie