Afficheur LCD
4x20
rouge
rétro-éclairé
 Crédit
photo : BMS Concept
Afficheur LCD
4x20
"ambre"
rétro-éclairé
 Crédit
photo : BMS Concept
Afficheur LCD
4x20
bleu
rétro-éclairé (testé et approuvé
!)

Les caractères affichés sont de couleur blanche. Les
conditions photographiques ci-dessus
atténuent le contraste entre
le fond bleu et les caractères
blancs, mais dans la réalité
les caractères sont
très contrastés.
Le rétro-éclairage est composé
de deux leds blanches à alimenter
sous 5V
via les broches 15
(anode)
et 16
(cathode). Utilisez une résistance en série de 220
ohms pour limiter le courant dans les leds.

|

|
Face
avant du LCD 4x20 bleu
|
Face
arrière du LCD 4x20
bleu
|
Afficheur LCD
2x20
bleu rétro-éclairé (pas
encore testé !)

|

|
Face
avant du LCD 2x20 bleu
|
Face
arrière du LCD 2x20
bleu
|

Avant
propos :
A
la suite de plusieurs demandes d'internautes,
je vous propose la mise à jour
de l'afficheur LCD permettant la prise
en compte des chaînes de caractères.
Cette mise à jour va nécessiter
le remplacement de deux composants,
à savoir le microcontrôleur
et le quartz.
Principales
caractéristiques
de l'interface LCD - RS232 Version 2 :
Gestion des afficheurs LCD
: 2x16,
2x20 et
4x20
caractères.
Communication série configurable : 2400,
4800,
9600
et 19200
bauds.
Interface compatible avec les afficheurs au standard industriel
: HD44780.
Protocole de transfert : chaîne
de caractères
ASCII couplée
à quelques caractères
réservés.
Protocole de communication ASCII destiné
à la gestion de l'afficheur LCD
V2 :
L'ensemble
des lignes de l'afficheur se laisse
très simplement piloter à
condition de respecter quelques règles
simples.
Dans
les exemples qui vont suivre, j'ai employé
arbitrairement un afficheur LCD composé
de 4 lignes / 20 caractères.
Néanmoins, la démarche
reste strictement identique pour un
afficheur 2 lignes / 16 caractères,
2 lignes / 20 caractères, etc...
Affichage sur la première
ligne d'un LCD 4x20 :
Choisissons
d'écrire sur la première
ligne du LCD la chaîne suivante
: Bonjour
à tous.

Pour
ce faire, la chaîne de caractères
envoyée en série à
l'interface LCD devra comporter 3 caractères
supplémentaires disposés
ainsi :
1Bonjour a tous.#$
-
Le caractère 1
indique le numéro de la ligne
du LCD. Ici la première ligne
du LCD. -
Les caractères
#$ indiquent
la fin de la chaîne.
Affichage sur la deuxième
ligne d'un LCD 4x20 :
Choisissons
d'écrire sur la deuxième
ligne du LCD la chaîne suivante
: Comment
allez-vous ?

Pour
ce faire, la chaîne de caractères
envoyée en série à
l'interface LCD devra comporter 3 caractères
supplémentaires disposés
ainsi :
2Comment
allez-vous ?#$
-
Le caractère 2
indique le numéro de la ligne
du LCD. Ici la seconde ligne du LCD. -
Les caractères
#$ indiquent
la fin de la chaîne.
Affichage sur la troisième
ligne d'un LCD 4x20 :
Choisissons
d'écrire sur la troisième
ligne du LCD la chaîne suivante
: Très
bien merci.

Pour
ce faire, la chaîne de caractères
envoyée en série à
l'interface LCD devra comporter 3 caractères
supplémentaires disposés
ainsi :
3
Tres bien merci.#$
-
Le caractère 3
indique le
numéro de la ligne du LCD. Ici
la troisième ligne du LCD. -
Les caractères
#$ indiquent
la fin de la chaîne.
Remarque:
Notez la présence arbitraire
d'un espace entre le caractère
3
et le début de la phrase. Une
solution comme une autre vous permettant
de centrer vos messages sur l'écran
LCD.
Affichage sur la quatrième
ligne d'un LCD 4x20 :
Choisissons
d'écrire sur la quatrième
ligne du LCD la chaîne suivante
: A la prochaine.

Pour
ce faire, la chaîne de caractères
envoyée en série à
l'interface LCD devra comporter 3 caractères
supplémentaires disposés
ainsi :
4A
la prochaine.#$
-
Le caractère 4
indique le
numéro de la ligne du LCD. Ici
la quatrième ligne du LCD. -
Les caractères
#$ indiquent
la fin de la chaîne.
Effacer le contenu de l'affichage
LCD :
La
commande d'effacement de l'afficheur
doit suivre la syntaxe
suivante :
&$
Modifications
hardwares à effectuer pour la
mise à niveau de la Version 2 :
Composants à remplacer
:
L'ensemble
de la nomenclature disponible à
la page [
Réalisation
] reste
inchangée à
l'exception de deux
composants
:
Remplacez le microcontrôleur
16F84A (IC1) par le modèle
16F628-20/P
(cela fonctionne aussi avec un 16F628-04/P)
programmé avec la nouvelle version
du soft disponible en téléchargement
un peu plus bas dans cette page.
Remplacez le quartz de 4MHz par
un modèle de 12MHz.

Gros
plan sur le PIC16F628-20/P ( ou
16F628-04/P)
et son quartz
de 12MHz.
Schéma structurel
de l'interface LCD V2 :
Le
schéma structurel de la version
2 est strictement identique à
la précédente version
mis à part les deux références
suivantes : le microcontrôleur
16F628-20/P
(ou 16F628-04/P)
et le quartz
de 12MHz.
Vous pouvez télécharger
la mise à jour du schéma structurel Version
2 ci-dessous :
Schéma structurel au format Adobe Acrobat de
l'interface LCD - RS232 V2
: 66,2 ko
Programmation du PIC16F628
destiné à l'interface LCD V2 :
Cliquez
sur le bouton suivant afin de télécharger
le soft SERLCD3.HEX
destiné au microcontrôleur
16F628-20/P
(ou 16F628-04/P)
de l'interface LCD Version 2.
Téléchargement du
soft "SERLCD3.EXE" destiné au microcontrôleur IC1 :
30 ko
AVIS
: Le programme source ne sera pas diffusé
La programmation du microcontrôleur
16F628
s'effectue comme toujours via l'excellent
logiciel gratuit
ICPROG
conçu par Bonny
GIJZEN.

Lancez le logiciel de programmation ICPROG.EXE.
Sélectionnez le microcontrôleur 16F628 dans la liste des microcontrôleurs.
Ouvrez le fichier hexadécimal nommé SERLCD3.HEX.
L'oscillateur de type XT
doit
être sélectionné.
Le paramétrage automatique doit être le suivant : - "WDT" est activé, - "PWRT" est activé, - "MCLR" est désactivé, - "BODEN" est activé, - "LVP" est désactivé, - "CPD" est désactivé.
Attention
note du 10.2007 :
Si vous utilisez un modèle
16F628A-I/P
de nouvelle génération,
sélectionnez un oscillateur en
mode
HS
et non XT.
Configuration
de la vitesse de communication RS232
de l'interface LCD Version 2 :
Dans
cette nouvelle version software V2,
seul deux
des quatre switchs
permettent de configurer l'afficheur
LCD. Les switchs RB2
et RB5
n'ont
plus aucun rôle.
Communication série
à 2400 bauds :
2400
bauds
|
RB0
= 0
|
RB1
= 0
|

Communication série
à 4800 bauds :
4800
bauds
|
RB0
= 1
|
RB1
= 0
|

Communication série
à 9600 bauds :
9600
bauds
|
RB0
= 0
|
RB1
= 1
|

Communication série
à 19200 bauds :
19200
bauds
|
RB0
= 1
|
RB1
= 1
|

Utilisation
du l'interface LCD à partir d'un
PC :

Pour
ceux désireux de tester
l'interface LCD V2 à partir de
la liaison série d'un PC, je
vous propose d'utiliser une petite application
software tournant sous Windows.

Installation
du logiciel sous Windows
:
Systèmes
d'exploitations compatibles :
Je
certifie avoir testé cette application sous Windows
Seven, Vista, XP et
98 SE. En
revanche, je n'ai pas pu tester cette application
sous NT4, 2000,
Me et
XP
Familial.
Logiciel
"Test LCD Version 2"
: Ecrit en Borland Delphi, ce programme utilise
une bibliothèque freeware Tcomport
RS232
conçue par Dejan
Crnila.
Cette
bibliothèque gère les ports séries
du PC et peut être téléchargée
à l'adresse suivante :
[ COMPORT
].
Toutefois, vous
n'aurez pas besoin de cette
bibliothèque
pour faire fonctionner la version exécutable
du logiciel téléchargeable ci-dessous...
Téléchargement du
soft "SETUP.EXE" :
514 ko AVIS
: Le programme source ne sera pas diffusé
Installation
du logiciel :
L'installation
du logiciel est extrêmement simplifiée grâce
à l'utilisation d'un SETUP WIZARD. Laissez-vous
guider au fil des pages...
Après
installation, vous
trouverez un raccourci dans
le menu démarrer...

Exemple
d'utilisation de l'interface LCD et
du logiciel sous Windows :
Lancez votre système
d'exploitation Windows.
L'interface LCD hors tension,
positionnez les DIP en fonction de la
vitesse de communication série
souhaitée. Choisissons arbitrairement
une vitesse de communication à
19200 bauds.

19200
bauds
|
RB0
= 1
|
RB1
= 1
|
Le
transfert des données par liaison
série entre le PC et l'interface
LCD doit s'effectuer impérativement
via le circuit MAX232
(IC2). N'oubliez pas de retirer la résistance
R7
(33k) dans le cas où cette dernière
serait positionnée dans les picots
tulipes qui lui sont destinés. La
résistance R7
est uniquement compatible avec la précédente
version du programme du PIC16F84A (voir
page [ Utilisation
] destinée
à la Version 1).
 Liaison
série équipée du
MAX232
(IC2) sans la résistance
R7
Reliez
l'interface LCD à votre ordinateur
via un cordon prolongateur RS232 conventionnel
non croisé.

Mettez l'interface LCD sous
tension. Attendez la fin de l'affichage
du titre et de l'adresse internet
de l'auteur (2,5 secondes).
Les
polarités distales de l'alimentation
doivent être
les suivantes :

Lancez le logiciel "Test
LCD Version 2".
Sélectionnez le port de communication
série relié à
l'interface LCD (COM1 ou COM2) ainsi
que la vitesse de transmission, ici
19200 bauds :

Dans la zone de saisie du logiciel,
entrez la chaîne de caractères
que vous souhaitez afficher sur le LCD
en respectant la syntaxe décrite
en haut de cette page.
A titre d'exemple, nous allons afficher
sur la première
ligne du
LCD la chaîne suivante :
LCD
4x20 caracteres
Soit
concrètement nous écrivons
dans la zone de saisie : 1LCD
4x20 caracteres#$

Pour transférer en série
la chaîne de caractères vers
l'interface LCD, cliquez sur le bouton
nommé LCD, comme ci-dessous :

Vous obtenez instantanément
sur l'écran du LCD le résultat
suivant :

Procédez
de la même manière pour
l'ensemble des lignes en respectant
le protocole de communication ASCII
décrit au début de cette
page.
Amusez-vous
bien...
Utilisation
du l'interface LCD à partir d'un
autre microcontrôleur :

Pensez à introduire
dans votre programme (PICBasic ou autre)
une
pause de 10ms
entre chaque transmission des chaînes
de caractères. Cette pause est
nécessaire à l'interface
LCD et dans le cas contraire certaines
chaînes risquent d'être
ignorées...
Le
langage assembleur pour microcontrôleur
serait-il condamné à disparaître
?
Cette
partie est avant tout destinée
aux développeurs hardwares qui
souhaitent piloter l'afficheur LCD en
série via leur propre microcontrôleur
(Microcohip, Intel, Motorola, etc...).
De
nos jours, de nouveaux produits tel que les
PICBASIC [
www.lextronic.fr
],
les JAVAMOK
[
www.electronique-numerique.com/
]
permettent
désormais à un plus large
public de s'initier à la programmation
sur microcontrôleurs au moyen
d'un langage très accessible
tel que le Basic ou le C.
Ainsi,
quelque soit vos habitudes de programmation
(assembleur, Basic, C, etc...) il vous
est désormais possible de piloter
en série l'interface LCD en transmettant
une chaîne de caractères
répondant bien entendu au protocole
ASCII décrit au début
cette de page.
Je
vous renvoie à la notice de vos
propres systèmes de développement
sur microcontrôleur pour la mise
en oeuvre logicielle de la liaison série
pilotant l'afficheur.
 Aspect
d'un PICBASIC PB-3B (Crédits
Photo
: Electronique Pratique n°265 page
80)
Exemple
de raccordement électrique entre
l'interface LCD et votre microcontrôleur
:
Retirez le MAX232 (IC2) et
remplacez la résistance R7
(33k) par un simple court-circuit.

Après avoir configuré
la vitesse de communication série
de l'interface LCD (2400, 4800, 9600, 19200 bauds)
en accord avec votre microcontrôleur, vous pouvez désormais
envoyer en série
votre chaîne de caractères via
la broche n°3 du connecteur
DB9 ou directement sur l'entrée
PIN
13 (RB7)
du PIC16F628-20/P.
|