Module LCD

Comment connecter l'écran LCD PCF8574 I2C avec Arduino?


Dans ce projet, nous verrons comment connecter l'écran LCD I2C avec Arduino. Nous avons déjà vu comment interfacer un LCD 16 × 2 avec Arduino. En utilisant un LCD I2C avec Arduino, vous pouvez conserver toutes les broches d'E / S numériques d'Arduino UNO et travailler avec LCD en utilisant la communication I2C.

introduction

Un écran LCD à caractères alphanumériques comme celui illustré dans l'image suivante est l'un des composants fréquemment utilisés dans de nombreux projets de bricolage. Il est souvent utilisé avec Arduino pour afficher un large éventail d'informations telles que les lectures de capteur, les messages du module GSM ou toute information d'état.

Module LCD

La façon la plus simple de connecter un écran LCD 16 × 2 ou 20 × 4 est de sélectionner un module LCD de taille requise et de le connecter Arduino UNO en mode 4 bits. Mais le principal inconvénient de cette configuration est que, même en mode 4 bits, l'écran LCD a besoin de 6 broches numériques IO d'Arduino pour une communication correcte.

Si votre projet doit s'interfacer avec plusieurs capteurs et autres périphériques IO, vous aurez probablement besoin d'autant de broches IO d'Arduino que possible. Si l'écran LCD lui-même utilise 6 des 13 broches d'E / S numériques disponibles, il ne vous reste que 7 broches pour interfacer d'autres composants.

Comment connecter l'écran LCD I2C avec Arduino?

La solution à cela est d'utiliser un LCD I2C avec Arduino. Pour cela, un extenseur GPIO basé sur I2C est utilisé avec un écran LCD à caractères alphanumériques standard 16 × 2.

L'image suivante montre un module basé sur PCF8574 IC qui est configuré spécifiquement pour les écrans LCD.

PCF8574 I2C LD

Vous pouvez brancher ce module directement sur les broches de l'écran LCD normal et en utilisant la communication I2C avec Arduino (ou n'importe quel microcontrôleur), vous pouvez transmettre les données.

Une brève note sur PCF8574

PCF8574 est un CI d'extension d'E / S basé sur I2C qui fournit une extension d'E / S 8 bits pour les microcontrôleurs avec interface I2C. En utilisant seulement deux lignes de l'interface I2C, à savoir le SDA (Serial Data) et le SCL (Serial Clock), vous pouvez configurer 8 broches d'E / S bidirectionnelles.

REMARQUE: Un didacticiel séparé sur PCF8574 GPIO Extender sera présenté. Je fournirai donc des informations plus détaillées sur le circuit intégré PCF8574 dans ce didacticiel.

Schéma de circuit de l'écran LCD I2C avec Arduino

Le schéma de circuit pour connecter l'écran LCD I2C à Arduino est illustré dans l'image suivante.

LCD I2C avec schéma de circuit Arduino

Composants requis

  • Arduino UNO
  • Écran LCD 16 × 2
  • PCF8574 I2C LCD Backpack
  • Connexion des fils

Connexions des circuits

Tout d'abord, branchez le module PCF8574 à l'arrière de l'écran LCD. Vérifiez les broches des deux modules. Utilisez l'image suivante comme référence.

LCD I2C avec connexion LCD Arduino

Habituellement, les broches I2C sortent du module LCD pour une connexion facile avec Arduino, comme indiqué dans l'image suivante.

Broches LCD I2C

Après avoir connecté le module I2C à l'écran LCD, connectez les broches GND et VCC du module PCF8574 aux broches GND et 5V d'Arduino. Enfin, les broches SDA et SCL. Connectez-les respectivement aux broches A4 et A5 des broches Arduino UNO.

Code

Code pour l'adresse esclave I2C

Une étape importante de la communication I2C consiste à déterminer l'adresse du périphérique esclave. Sur la base des broches A0, A1 et A2 du circuit intégré PCF8574, l'adresse du module esclave I2C est fixe.

Au lieu de calculer l'adresse esclave à partir de la fiche technique, utilisons un code simple pour Arduino pour déterminer l'adresse et nous l'afficher sur le terminal série. Tout d'abord, effectuez les connexions selon le schéma ci-dessus.

Téléchargez ensuite le code suivant pour afficher l'adresse de l'esclave I2C.

#comprendre

void setup()
{
Wire.begin ();

Serial.begin (9600);
while (! Serial);
}

boucle vide ()
{
erreur d'octet, adresse;
int I2CDevices;

Serial.println («Recherche de périphériques I2C…»);

I2CDevices = 0;
pour (adresse = 1; adresse <127; adresse ++)
{
Wire.beginTransmission (adresse);
error = Wire.endTransmission ();

si (erreur == 0)
{
Serial.print («Périphérique I2C trouvé à l'adresse 0x»);
si (adresse <16)
Serial.print («0»);
Serial.print (adresse, HEX);
Serial.println (”!”);

I2CDevices ++;
}
sinon si (erreur == 4)
{
Serial.print («Erreur inconnue à l'adresse 0x»);
si (adresse <16)
Serial.print («0»);
Serial.println (adresse, HEX);
}
}
if (I2CDevices == 0)
Serial.println ("Aucun périphérique I2C trouvé n");
autre
Serial.println ("**** n");

retard (5000);
}

Après avoir téléchargé le code, ouvrez le moniteur série et réglez le débit en bauds sur 9600. Dans mon cas, l'adresse est 0X3F. Donc, dans la programmation réelle (pour afficher des choses sur l'écran LCD), je dois utiliser cette adresse.

Adresse de numérisation LCD I2C

Code d'affichage sur écran LCD

Avant d'entrer dans le code, vous avez besoin d'une bibliothèque spéciale appelée "LiquidCrystal_I2C". Il est basé sur la bibliothèque «LiquidCrystal» que nous utilisons normalement mais modifiée pour la communication I2C. Vous pouvez télécharger la bibliothèque depuis cette lien.

Téléchargez le fichier zip, extrayez le contenu et renommez le répertoire en «LiquidCrystal-I2C» et placez le dossier dans les bibliothèques de votre installation Arduino (généralement, C: Program Files (x86) Arduino bibliothèques).

Ce qui suit est un code de test simple pour afficher du texte sur le module LCD.

#comprendre
#comprendre

// Définissez l'adresse LCD sur 0x3F pour un affichage de 16 caractères et 2 lignes
Écran LCD LiquidCrystal_I2C (0x3F, 16, 2);

void setup()
{
lcd.begin ();

LCD rétro-éclairage();
lcd.setCursor (0,0);
lcd.print ("LCD I2C avec");
lcd.setCursor (0,1);
lcd.print ("ARDUINO");
}

boucle vide ()
{
// Ne faites rien ici…
}

Travail

Le fonctionnement du projet est très simple. Il s'agit simplement d'un protocole I2C avec une extension de l'écran LCD. Étant donné que les adresses esclaves sur le bus I2C sont importantes, faites très attention à les calculer, car elles sont directement utilisées dans le programme. Hormis l'adresse esclave I2C, toutes les autres fonctions de l'écran LCD sont similaires à une bibliothèque LCD standard.

Applications

  • En utilisant un écran LCD basé sur I2C, le nombre de broches d'E / S numériques nécessaires pour communiquer avec un écran LCD deviendra nul. Cela sera utile pour connecter d'autres capteurs et actionneurs au microcontrôleur (Arduino, dans ce cas).
  • La communication utilisée étant I2C, vous pouvez connecter jusqu'à 8 écrans LCD similaires sur le même bus I2C. Ceci est possible en modifiant les broches d'adresse du circuit intégré PCF8574 pour chaque LCD.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *