Arduino > Affichage à cristaux liquides ( ACL ou «LCD» )

1.  DFRobot I2C/TWI LCD1602 Module

1.1  Introduction

Pour initialiser la logiqthèque, il faut d'abord créer une instance avec les arguments adresse, rangées, colonnes et ensuite appeler la méthode init() dans setup():

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
{
        lcd.init();                      // initialize the lcd
}

void loop()
{
}

1.2  Exemple

Cet exemple afficher la valeur mesurée à l'entrée analogique 0 en format texte sur la première rangée et de façon graphique sur la deuxième rangée.

//DFRobot.com
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

unsigned long lastMillis;
#define INTERVAL 100

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

int analog0;

void setup()
{
        lcd.init();  // Initializer l'ACL
        lcd.backlight(); // Activer l'éclairage.

        lcd.print("Analog: "); // Afficher le texte "Analog: ".
}

void loop()
{
        // Metrre à jour l'affichage selon l'interval.
        if ( millis() >= lastMillis + INTERVAL ) {
                lastMillis += INTERVAL;

                analog0 = analogRead(0);

                // Déplacer le curseur (point d'insertion)
                // à la fin du texte "Analog: ".
                lcd.setCursor(8,0);

                // Ajouter des 0 pour que l'affichage de la valeur
                // soit toujours de 4 caractères.
                if (analog0 < 10) {
                        lcd.print("000");
                } else if ( analog0 < 100 ) {
                        lcd.print("00");
                } else if ( analog0 < 1000) {
                        lcd.print("0");
                }
                // Afficher la lecture de l'entrée analogique
                lcd.print(analog0);

                // Compter le nombre de petits a afficher dans
                // la deuxième rangée.
                byte carres = (analog0+32) / 64;
                // Déplacer le curseur au début de la deuxième rangée.
                lcd.setCursor(0,1);
                // Remplir de carrés
                for (byte i=0; i < carres;i++ ) {
                        lcd.write((byte)255);
                }
                // Remplir le reste de la rangee d'espaces
                for (byte i=carres; i < 16;i++) {
                        lcd.write((byte)32);
                }

        }
}