Winstar propose une large gamme de modules LCD à caractères standard destinés aux applications industrielles et embarquées. Les types d’affichage standards disponibles comprennent les séries WH0802, WH1202, WH1601, WH1602, WH1604, WH2002, WH2004, WH2402 et WH4002. Grâce à un nombre minimal de broches de commande nécessaires, ces modules facilitent l’intégration du système et le choix du microcontrôleur (MCU) adapté.
Les modules LCD à caractères couramment disponibles sur le marché nécessitent généralement l’ajout d’une carte de conversion pour prendre en charge l’interface I2C, comme illustré dans la Figure 1. Cette solution entraîne toutefois une augmentation de l’épaisseur du LCM, des étapes supplémentaires dans le processus de fabrication ainsi qu’une diminution du rendement de production.
Figure 1 : Module LCD à caractères standard du marché intégrant une carte de conversion supplémentaire pour supporter l’interface I2C.
Figure 2 : Le module LCD à caractères WH1602 de Winstar prend en charge les interfaces I2C et SPI sans carte de conversion supplémentaire.
Sans ajouter de carte de conversion, il suffit de connecter la carte de développement Arduino Uno pour piloter directement les modules LCD à caractères Winstar suivants via différentes interfaces de communication.
- WINSTAR WH1602 LCM : 16 caractères × 2 lignes
- WINSTAR WH2002 LCM : 20 caractères × 2 lignes
- WINSTAR WH2004 LCM : 20 caractères × 4 lignes
Ces trois séries LCM intègrent le contrôleur LCD RW1063 et prennent en charge à la fois les interfaces série (I2C et SPI) ainsi que l’interface parallèle (6800).
Remarque : pour plus d’informations sur les interfaces d’affichage, veuillez consulter "Comprendre les interfaces d’affichage".
Définition des broches du LCM
| N° de broche |
Symbole |
Description |
| No.1 |
Vss |
Masse |
| No.2 |
Vdd |
Alimentation de la logique |
| No.3 |
V0 |
Réglage du contraste |
| No.4 |
RS |
Sélection commande/données |
| No.5 |
RW |
Signal de sélection lecture/écriture uniquement pour l’interface 6800 8/4 bits |
| No.6 |
E |
Signal Enable uniquement pour l’interface 6800 8/4 bits |
| No.7 |
DB0/SA0 |
Ligne de bus de données 0 uniquement pour l’interface 6800 8 bits
Ligne de configuration d’adresse SA0 pour l’interface I2C |
| No.8 |
DB1/SA1 |
Ligne de bus de données 1 uniquement pour l’interface 6800 8 bits
Ligne de configuration d’adresse SA1 pour l’interface I2C |
| No.9 |
DB2 |
Ligne de bus de données 2 uniquement pour l’interface 6800 8 bits |
| No.10 |
DB3 |
Ligne de bus de données 3 uniquement pour l’interface 6800 8 bits |
| No.11 |
DB4 |
Ligne de bus de données 4 uniquement pour l’interface 6800 8/4 bits |
| No.12 |
DB5/CSB/CSB |
Ligne de bus de données 5 uniquement pour l’interface 6800 8/4 bits
Ligne de sélection CSB Enable pour les interfaces I2C et SPI |
| No.13 |
DB6/SDA/SCLK |
Ligne de bus de données 6 uniquement pour l’interface 6800 8/4 bits
Ligne de données SDA pour l’interface I2C
Signal d’horloge SCLK pour l’interface SPI |
| No.14 |
DB7/SCL/SID |
Ligne de bus de données 7 uniquement pour l’interface 6800 8/4 bits
Ligne d’horloge SCL pour l’interface I2C
Ligne de données SID pour l’interface SPI |
| No.15 |
A+ |
Alimentation du rétroéclairage (B/L) + |
| No.16 |
K- |
Alimentation du rétroéclairage (B/L) - |
Tableau 1:Définition des broches du LCM
Concernant la broche V0 indiquée dans le tableau ci-dessus, une résistance variable de 20 kΩ est utilisée pour régler le contraste des caractères. Lors des tests, si le texte n’est pas visible ou si l’image d’arrière-plan reste affichée en permanence, ajustez cette résistance variable afin de régler correctement le contraste.
La méthode de connexion de la résistance variable V0 est présentée dans la Figure 3 :
Figure 3:Méthode de connexion de la résistance variable V0
Connexion du LCM à la carte de développement Arduino Uno
La Figure 4 présente les méthodes de connexion des quatre interfaces de communication LCM (I2C, SPI, 6800 8 bits/4 bits) avec Arduino Uno. Il est possible de constater que les interfaces I2C et SPI nécessitent seulement un nombre limité de broches GPIO pour piloter les modules LCD à caractères.
Pour l’interface I2C, Arduino Uno dispose de résistances de rappel (pull-up) internes sur les broches I2C. Il n’est donc pas nécessaire d’ajouter des résistances de rappel externes sur les broches SDA et SCL. Toutefois, si la résistance de rappel interne est désactivée dans le programme, une résistance de rappel externe doit être ajoutée.
(a) Connexion de l’interface I2C

(b) Connexion de l’interface SPI

(c) Connexion de l’interface 6800-4 bits

(d) Connexion de l’interface 6800-8 bits

Figure 4 : Méthodes de connexion des quatre interfaces de communication LCM avec Arduino Uno.
Commandes LCM
Toutes les interfaces de communication ne permettent pas d’utiliser l’ensemble des commandes du LCM. Avec l’interface SPI, la ligne de contrôle RW et les broches MISO ne sont pas disponibles ; par conséquent, la commande de lecture n’est pas prise en charge. Lors de l’écriture, la ligne de contrôle RS permet de déterminer si les données transmises correspondent à des données de commande ou à des données d’affichage.
Pour l’interface I2C, la ligne de contrôle RW n’est également pas disponible, ce qui ne permet pas non plus d’exécuter des commandes de lecture. Avant l’écriture de données de commande ou de données d’affichage, il est nécessaire d’envoyer le code de contrôle de commande (A0=0) ou le code de contrôle des données (A0=1) afin de définir si l’octet suivant transmis correspond à une commande ou à une donnée d’affichage.
Temporisation des interfaces SPI et I2C
Les Figures 5 et 6 présentent les diagrammes temporels de contrôle du LCM via l’interface SPI. Il est possible de constater que l’interface SPI utilisée par le LCM n’est pas une interface SPI standard généralement fournie par un MCU. Un signal RS supplémentaire est nécessaire afin de déterminer si l’octet actuellement transmis correspond à une commande ou à une donnée. Les données des bits (BIT7~BIT0) sur la ligne de données (SID) changent lorsque la ligne d’horloge (SCLK) est à l’état bas. Les données des bits (BIT7~BIT0) sont acquises lorsque la ligne d’horloge (SCLK) est à l’état haut.

Figure 5 : Temporisation de l’écriture d’une commande SPI

Figure 6 : Temporisation de l’écriture des données SPI
Les Figures 7 et 8 présentent les diagrammes temporels de contrôle du LCM via l’interface I2C. À l’exception du signal Chip Select Bar (CSB), le contrôle via l’interface I2C consiste à transmettre trois octets à chaque écriture de données de commande ou de données d’affichage. Parmi ces octets, le bit A0 du deuxième octet détermine si le troisième octet correspond à une commande ou à une donnée d’affichage.

Figure 7 : Temporisation de l’écriture des commandes I2C

Figure 8 : Temporisation de l’écriture des données I2C
Code
Le code peut être compilé et utilisé directement pour le LCM en modifiant les paramètres du programme.
Step1 : définir le nombre maximal de caractères affichables sur une seule ligne du LCM.
Par exemple, le réglage suivant configure une ligne avec un maximum de 16 caractères.

Step2 : définir le nombre maximal de lignes du LCM.
Par exemple, le réglage suivant configure le LCM avec 2 lignes.

Step3 : définir l’interface du LCM.
Par exemple, le réglage suivant sélectionne l’interface I2C.

Step4 : compiler le programme et le téléverser sur la carte de développement Arduino Uno.
La Figure 9 présente un exemple des écrans affichés par trois LCM.
Lorsque le contraste d’affichage est trop clair ou trop sombre, la résistance variable connectée à la broche V0 peut être ajustée afin d’obtenir un contraste approprié, comme illustré dans la Figure 10.
(a) Contraste faible
Seuls des caractères peu visibles apparaissent. |
(b) Contraste approprié |
(c) Contraste élevé
Chaque caractère présente une ombre visible. |
 |
 |
 |
 |
 |
 |
 |
 |
 |
| Figure 9 : Exemple des écrans affichés par trois LCM |

Figure 10 : Réglage de la broche V0
Si vous avez besoin du code de démonstration complet, veuillez nous contacter.