Afficheur LCD 16x2 sur port I2C

Principe

Il s’agit d’un afficheur de 32 caractères disposés sur 2 lignes (16 caractères par ligne).

La communication avec le microcontrôleur s’effectue via un port série de données (I2C) nécessitant moins de câbles (4 en tout).

Module Grove - LCD RGB Backlight (image : http://wiki.seeedstudio.com)

Chaque afficheur utilise sa propre librairie (ex. rgb_lcd.h pour le Grove LCD RGB Backlight) en plus de la librairie wire.h qui est obligatoire pour la gestion du port I2C.

Grove LCD RGB Backlight

Modules Grove (image : http://wiki.seeedstudio.com)

Télécharger ici le fichier Grove_LCD_RGB_Backlight-master.zip pour l’installation de la librairie rgb_lcd avant la compilation du programme.

/*
 * Exemple affichage sur LCD 2x16 RGB I2C Grove
 */


#include <Wire.h>       // Importation librairie gestion port I2C
#include "rgb_lcd.h"    // Importation librairie gestion afficheur LCD I2C Grove

rgb_lcd lcd;            // Déclaration de l'afficheur

const int colorR = 255; // Couleur fond écran
const int colorG = 0;
const int colorB = 0;

void setup()
{
    lcd.begin(16, 2);                      // Fixe 2 colonnes et 16 caractères/ligne
    lcd.setRGB(colorR, colorG, colorB);    // Fixe couleur de fond
    lcd.print("hello, world!");            // Affiche texte
    delay(1000);                           // Temporisation 1s
}

void loop()
{
    lcd.setCursor(0, 1);                  // Déplace le curseur
    lcd.print(millis()/1000);             // Affiche le temps écoulé en s (timer interne)
    delay(100);                           // Temporisation 1s
}

Grove LCD 16x2 (rouge/jaune/bleu)

Grove LCD 16x12 (image: http://wiki.seeedstudio.com)

Toujours avec la librairie précédente rgb_lcd.

/*
 * Exemple affichage sur LCD 2x16 I2C Grove sans RGB
 */

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;         // Déclation de l'afficheur LCD branché sur un port I2C

void setup()
{
   lcd.begin(16, 2);  // Initialisation de l'afficheur LCD sur 2 lignes à 16 caractères
}

void loop()
{
   lcd.setCursor(0, 0);        // Placement du curseur
   lcd.print("Bonjour !");     // Affichage de la valeur de la tension
   delay(1000);                // Pause de 1000 ms
}