Mise en œuvre d'un afficheur (écran) à cristaux liquides (LCD) de type parallèle
On trouve dans le commerce plusieurs formats pour les écrans LCD :
2 lignes de 16 caractères
4 lignes de 20 caractères
Il existe 3 modes de visualisation :
Transmissif --> éclairage par l'arrière (rétroéclairage)
Réflectif --> utilise uniquement la lumière ambiante (consomme très peu d'énergie)
Transflectif --> utilise soit un éclairage par l'arrière soit la lumière ambiante
En général, ces modules disposent d'un mode de connexion parallèle :
la commande de l'afficheur se fait par un bus de données de 4 ou 8 bits D4 à D7 ou D0 à D7 (il y a donc 4 ou 8 fils à connecter à l'afficheur).
Ce mode de connexion nécessite aussi des signaux de contrôle : E, RS et éventuellement R/W.
Méthode :
Utilisation d'un afficheur LCD alphanumérique parallèle.
Pour simplifier la mise en œuvre de l'afficheur nous allons utiliser un shield du fabriquant DFRobot dédié à l'affichage
Le schéma ci-dessous permet de connaître l'affectation des broches de l'afficheur.
ex : la broche DB4 de l'afficheur est reliée à la broche D4 de l'Arduino (en brun sur le schéma)
Remarque: Dans les programmes les broches digital (Dx) sont identifiées uniquement par leur numéro (il faut utiliser 4 à la place de D4)
La mise en œuvre d'un afficheur LCD parallèle nécessite l'utilisation de la bibliothèque : LiquidCrystal.h
Configuration et initialisation de l'afficheur :
Il existe une bibliothèque <LiquidCrystal.h> qui permet d'utiliser facilement les possibilités d'un afficheur LCD intelligent.
Pour utiliser cette bibliothèque, il est nécessaire :
mettre en place la librairie au début du programme avec :
#include <LiquidCrystal.h>
de créer l'afficheur (ce sera un objet appartenant à la classe LiquidCrystal), pour cela il faut lui donner un nom ainsi que les numéros des broches à utiliser sur l'Arduino.
Ceci en respectant l'ordre suivant: RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7 (si la broche n'existe pas il suffit de ne pas l'écrire).
ex : LiquidCrystal boafi (4, 5, 3, 7, 8, 9,10 ); va créer l'objet 'boafi' (appartenant à la classe liquidCrystal)
avec: RS pin 4, RW pin 5, E pin 3, D4 pin 7, D5 pin 8, D6 pin 9 et D7 pin 10.
cette ligne est à écrire au dessous de #include<LiquidCyrtal.h>
d'initialiser l'afficheur avec la méthode 'begin' en indiquant le nombre de caractère par ligne et le nombre de lignes.
ex ; boafi.begin(16, 2); va initialiser l'objet boafi (appartenant à la classe liquidCrystal) en mode 2 lignes de 16 caractères
cette ligne est à écrire dans la fonction setup() du programme.
Tous les objets appartenant à la classe LiquidCrystal pourront utiliser les méthodes suivantes :
clear() --> efface l'afficheur et positionne le curseur en colonne 0 ligne 0 (! le temps d’effacement de l'afficheur est relativement long)
home()--> positionne le curseur en colonne 0 ligne 0 (en haut à gauche)
setCursor()--> setCursor(x,y) positionne le curseur en x,y (x correspond au numéro de la colonne et y au numéro de la ligne).
print() --> permet d'afficher du texte ou des valeurs numériques (fonctionnement quasi identique au 'print()' du mode console) .
write() --> le "write" envoie directement la valeur donnée en paramètre (fonctionnement quasi identique au 'write()' du mode console) .
lcd.clear(); --> efface l'afficheur nommé 'lcd'
lcd.setcursor(12,1) --> positionne le curseur sur le 13ème caractère de la deuxième ligne (la numérotation des lignes et colonne commence à '0').
Serial.print(temp) --> affiche le contenu de la variable 'temp' (pas de guillemet) .
Comme pour le print() de la console, il est possible d'afficher les valeurs numériques entières en binaire ou en hexadécimal, et de définir le nombre de décimal à utiliser pour afficher les nombres à virgules (float)
Le logiciel Arduino comporte une description des librairies standards dans "Aide / Référence.-> libraries page -> LiquidCrystal"