Bonjour,
aujourd'hui nouveau tutoriel de ma part après un long moment d'absence sur le forum et dans le monde de l'Arduino.
Il existe déjà des écrans LCD I²C pour arduino, mais c'est plus drôle et intéressant quand c'est nous qui faisons !
Ce tutoriel a pour but de transformer un écran LCD en écran LDC I²C. Pourquoi faire ça ? Et bien, si vous avez un écran LCD vous savez qu'il y a énormément de broches à câbler, ça prend donc plusieurs E/S de la carte, si vous avez une Nano ou une carte de ce type, il y a moins de broches que sur les autres :).
Le principe de l'I²C ne sera pas expliqué ici.
L'I²C permet de n'avoir que 2 E/S d'utilisées, il faut câbler les pins de l'écran au PCF8574 mais la finalité a pour but de libérer des E/S sur la carte.
Pour ce faire, nous utiliserons ici un PCF8574 qui nous permet de faire de l'I²C.
Vous trouverez ci-dessous le schéma de câblage de l'écran sur le PCF8574 et du PCF8574 à l'Arduino :
Voici un tableau détaillant les pins à relier :
Pour le code, c'est la que c'est simple
Il faut utiliser les bibliothèques:
- [url=https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library]LiquidCrystal_I2C[/url]
- Wire
Nous avons donc ce code :
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
Il faut maintenant initialiser l'adresse de l'écran donc l'adresse du PCF8574 et les dimensions de l'écran :
// 0x20 : Adresse du PCF8574
// 20 : colonnes de l'écran
// 4 : lignes de l'écran
LiquidCrystal_I2C lcd(0x20, 20, 4);
A l'aide de la fonction setup nous allons initialiser l'écran :
void setup() {
// Initialisation de l'écran
lcd.begin();
// Affichage d'un texte à l'initialisation
lcd.print("LCD I2C avec PCF8574");
// Délais en fin d'initialisation de la carte
delay(100);
}
Pour afficher du texte sur l'écran LCD maintenant en I²C utilise les mêmes fonctions qu'un écran LCD classique, donc setCursor et print, exemple :
void loop() {
lcd.setCursor(0, 0);
lcd.print("Test d'affichage sur");
lcd.setCursor(0, 1);
lcd.print("l'afficheur LCD en");
lcd.setCursor(0, 2);
lcd.print("I2C avec un PCF8574");
}
Voici le code du programme au complet :
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x20, 20, 4);
void setup() {
lcd.begin();
lcd.print("LCD I2C avec PCF8574");
delay(100);
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Test d'affichage sur");
lcd.setCursor(0, 1);
lcd.print("l'afficheur LCD en");
lcd.setCursor(0, 2);
lcd.print("I2C avec un PCF8574");
}
Voilà le tutoriel est fini, j’espère qu'il vous sera utile.
Cordialement Manghao.