Go Down

Topic: Transformer un écran LDC en écran LCD I²C (Read 1 time) previous topic - next topic

manghao

Jul 09, 2017, 07:51 pm Last Edit: Jul 09, 2017, 07:52 pm by manghao
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:
Code: [Select]

- [url=https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library]LiquidCrystal_I2C[/url]
- Wire


Nous avons donc ce code :
Code: [Select]

#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 :
Code: [Select]

// 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 :
Code: [Select]

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 :
Code: [Select]

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 :
Code: [Select]

#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.

Col68

Bonjour, je vous remercie pour chaque seconde passé afin d'éclairer les utilisateurs Arduino, étant nouveau et novice je garde ce tuto en favoris, mon projet est justement d'utiliser un écran shield à bouton avec un funduino uno r3 afin de gérer la température dans un frigo d'affinage en utilisant dht11 et module 2 relais ou canaux, merci encore.

Go Up