Affichage_Atrylec_com

Vous n'êtes pas seuls dans l'Univers !

Transistor_100

I2C, LCD : Piloter un afficheur

Cet article montre comment il est possible de piloter un afficheur LCD graphique alphanumérique à commande parallèle, grâce à un bus I2C.
Il est question, pour cette première partie, d'utiliser un, ou plusieurs circuits intégrés de type « PCF8574 ».

Ce type d'afficheur peut être directement relié à un microcontrôleur, or, dans ce cas, il nécessite la mise en oeuvre de 11 entrées/sorties.
Grâce à l'utilisation de circuits intégrés spécifiques, appelée « Expanseurs de ports pour bus I2C » ( « Remote I/O expander for I2C-bus » ), les montages proposés ici permettent de commander le même afficheur en ne réclamant que deux ports d'entrées/sorties d'un microcontrôleur, sur lequel le contrôle d'un bus I2C est possible.
Ceci permet de relier un afficheur graphique alphanumérique, situé en façade d'un appareil tel qu'un boîtier à code confidentiel, par exemple, à son circuit de commande, placé dans un autre endroit de l'appareil, avec seulement 4 fils.
Les deux montages proposés ici permettent également de piloter 5 LED, placées au même endroit que l'afficheur LCD graphique alphanumérique.

LIEN_EXTERNE I2C et LCD

La vidéo de démonstration du montage

Je veux remonter ! | Liste

1) Présentation

Dans cet article, quatre montages sont proposés, ils utilisent un microcontrôleur PIC18F4550 et un STM32F100RB.

Le premier montage utilise l'afficheur en mode « 4 bits ».
Les trois autres montages utilisent l'afficheur en mode « 8 bits ».
Ils se distinguent par l'utilisation de différents expanseurs de ports pour bus I2C.

Le premier montage fait appel à un circuit intégré PCF8574, le deuxième utilise deux circuits intégrés PCF8574, le troisième utilise un composant MCP23016 et le quatrième utilise un composant MCP23017.
Si vous souhaitez réaliser ce montage pour une application particulière, le tableau suivant devrait vous aider à choisir votre ou vos expanseurs de ports pour bus I2C, dont dépend la programmation du microcontrôleur qui doit gérer l'ensemble.

Référence du circuit intégré PCF8574 PCF8574A PCF8575 MCP23016 MCP23017
Nombre de circuits intégrés nécessaires pour l'application envisagée 2
(1 seul si l'afficheur est utilisé en mode « 4 bits » )
2
(1 seul si l'afficheur est utilisé en mode « 4 bits » )
1 1 1
Nombre de broches 16 16 24 28 28
Fréquence maximale de fonctionnement 100 kHz 100 kHz 400 kHz 400 kHz 1,7 MHz
Composants externes nécessaires Aucun Aucun Aucun
  • 1 résistance
  • 1 condensateur
Aucun
Nombre de sorties d'interruption 1 1 1 1 2
Gamme d'adresses possibles sur le bus I2C 0x40 - 0x4F 0x70 - 0x7F 0x40 - 0x4F 0x40 - 0x4F 0x40 - 0x4F
Nombre d'adresses possibles sur le bus I2C 8 8 8 8 8

documentaires-des-proprietes-icone-5224-32

Remarque : La ou les sorties d'interruption des expanseurs de ports pour bus I2C ne sera ou ne seront pas utilisées dans les exemples présentés dans cet article.
Ces sorties permettent d'informer le microcontrôleur qu'une ou plusieurs broches de l'expanseur de ports pour bus I2C a changé d'état logique, depuis la dernière lecture de l'état de ses broches.
Vous pouvez la ou les utiliser si vous souhaitez doter votre afficheur de boutons-poussoirs pour le système que vous souhaitez développer.

Je veux remonter ! | Liste

2) Montages utilisant le PCF8574

2-1) Avec un PCF8574

2-1-1) Vues d'ensembles

Le bon fonctionnement de ce premier montage montage a été vérifié d'une part avec un microcontrôleur PIC18F4550, et d'autre part avec un STM32F100RB.

MONTAGE_1_-_PCF8574_PIC18F4550_2
MONTAGE_1_-_PCF8574_PIC18F4550_1 MONTAGE_1_-_PCF8574_PIC18F4550_3
Fromage ?

MONTAGE_2_-_PCF8574_STM32F100RB_2
MONTAGE_2_-_PCF8574_STM32F100RB_1 MONTAGE_2_-_PCF8574_STM32F100RB_3
Ou dessert ?

Les connexions entre l'expanseur de ports pour bus I2C, l'afficheur LCD graphique alphanumérique et la commande du rétroéclairage éventuel sont indiquées dans le tableau présenté ci-après :

Afficheur LCD et commande du rétroéclairage éventuel D4 D5 D6 D7 E RW RS COMMANDE DU RETROECLAIRAGE EVENTUEL
PCF8574 P0 P1 P2 P3 P4 P5 P6 P7

2-1-2) Schéma

SCHEMA_I2C_ET_LCD_1
Schéma électrique du montage avec un PCF8574

2-1-3) Typon

TYPON_I2C_ET_LCD_1
Typon du montage avec un PCF8574
fleche-bas-telecharger-icone-9594-32

Schéma électronique et typon de la carte d'adaptation SPI vers LCD
Logiciel de dessin : EAGLE 6.4.0
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (237.36 Ko)

2-1-4) Codes sources

L'essai avec un microcontrôleur PIC18F4550 utilise une platine d'expérimentations.
Les connexions entre le circuit et le microcontrôleur sont indiquées dans le tableau ci-après.
Les broches « RB0 » et « RB1 » sont reliées au + 5 Volt par des résistances de tirage de 10 kilo Ohm.

Microcontrôleur PIC18F4550 +5V 0V RB0 RB1
Circuit intégré PCF8574 +5V 0V SDA SCL

fleche-bas-telecharger-icone-9594-32

Piloter un afficheur graphique alphanumérique avec un PCF8574 et un PIC 18F4550 : Fichiers C
Cible : PIC18F4550
Compilateur : MCC18
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (88.86 Ko)

L'essai à l'aide d'un microcontrôleur STM32F100RB utilise une carte de développement de type « STM32VLDISCOVERY », qui en est équipée.
Les connexions entre le circuit et la carte de développement sont indiquées dans le tableau ci-après.
Les broches « PB6 » et « PB7 » sont reliées au + 5 Volt par des résistances de tirage de 1 kilo Ohm.

documentaires-des-proprietes-icone-5224-32

Remarque : Le microcontrôleur STM32F100RB, bien qu'alimenté sous une tension de + 3,3 Volt, accepte de recevoir des niveaux de tensions  + 5 Volt sur ses broches configurées en tant qu' « Entrées logiques et sorties à collecteurs ouverts », comme c'est le cas pour utiliser le bus « I2C ».

Ces niveaux de + 5 Volt ne sont pas destructeurs pour le microcontrôleur, car ils sont appliqués par l'intermédiaire de résistances de tirages.

Carte de développement « STM32VLDISCOVERY » +5V 0V PB6 PB7
Circuit intégré PCF8574 +5V 0V SCL SDA

fleche-bas-telecharger-icone-9594-32

Piloter un afficheur graphique alphanumérique avec un PCF8574 et un STM32F100RB : Fichiers C
Cible : STM32F100RB
Compilateur : Keil µVison 4
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (23.9 Ko)

2-2) Avec deux PCF8574

2-2-1) Vues d'ensembles

Les connexions entre les expanseurs de ports pour bus I2C, l'afficheur LCD graphique alphanumérique et les 5 LED sont indiquées dans les deux tableaux présentés ci-après 

Afficheur LCD et LED D0 D1 D2 D3 D4 D5 D6 D7
PCF8574, 1 P0 P1 P2 P3 P4 P5 P6 P7

Afficheur LCD et LED RS RW E LED1 LED2 LED3 LED4 LED5
PCF8574, 2 P0 P1 P2 P3 P4 P5 P6 P7

2-2-2) Schéma

SCHEMA_I2C_ET_LCD_AVEC_DEUX_PCF8574_ET_UN_PIC18F4550
Schéma électrique du montage avec deux PCF8574

2-2-3) Codes sources

fleche-bas-telecharger-icone-9594-32

Piloter un afficheur graphique alphanumérique avec deux PCF8574 et un PIC18F4550 : Fichier C
Cible : PIC18F4550
Compilateur : MCC18
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (3.98 Ko)

Piloter un afficheur graphique alphanumérique avec deux PCF8574 et un PIC18F4550 : Fichier HEX
Cible : PIC18F4550
Compilateur : MCC18
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (1.54 Ko)

Commentaires (2)

sou

Le lundi 18 juin 2012 à 14:44

salut! excellent travail!!

Mattpatt

Le lundi 11 juin 2012 à 18:01

Salut , tu sais que tu peux piloter l'afficheur avec un seul composant :

LIEN_EXTERNE http://www.robot-amateur.com/Articles/Realisation_afficheur_LCD_I2C-p43.html

Ajouter un commentaire

Votre pseudo :

Votre commentaire :

Je veux remonter !