ecran-i2c-lcd.ino
Un écran LCD 16x2 équipé d'un convertisseur I2C PCF8574 n'occupe que deux broches (SDA/SCL). Le croquis affiche la tension mesurée sur A0 et le temps de fonctionnement, avec rafraîchissement deux fois par seconde.
Matériel requis
Une Arduino Uno R3 (ATmega328P, 5 V, 16 MHz) alimentée par USB ou jack 7-12 V. 1 écran LCD 16x2 avec backpack I2C PCF8574 (adresse 0x27 ou 0x3F).
Câblage
SDA sur A4, SCL sur A5 (broches I2C des AVR), VCC 5V, GND. L'adresse I2C se vérifie avec un scanner (ex. i2c_scanner).
Fonctionnement
Wire pilote le bus I2C ; LiquidCrystal_I2C traduit print() en ordres LCD. setCursor positionne le curseur, les espaces finaux effacent les restes d'affichage.
Exécution
Dans l'Arduino IDE, choisissez la carte « Arduino Uno » et le port série correspondant, puis cliquez sur Téléverser. Ouvrez le moniteur série à 9600 bauds pour suivre les messages.
Variantes
Changez l'adresse (0x3F) si rien ne s'affiche, ou empilez plusieurs capteurs avec un défilement automatique des pages toutes les 5 s.
ecran-i2c-lcd.ino
// LCD 16x2 + convertisseur I2C PCF8574 : affichage de mesures.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // adresse usuelle 0x27 (0x3F sur certains)
void setup() {
Serial.begin(9600);
Wire.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hello, monde !");
delay(1500);
lcd.clear();
}
void loop() {
// Exemple : tension d'alimentation mesuree sur la reference interne.
analogRead(A0); // rechauffe de l'ADC
long brut = analogRead(A0);
float tension = brut * 5.0 / 1023.0;
lcd.setCursor(0, 0);
lcd.print("A0:");
lcd.print(tension, 2);
lcd.print("V "); // efface les chiffres residuels
lcd.setCursor(0, 1);
lcd.print("Uptime:");
lcd.print(millis() / 1000);
lcd.print("s ");
delay(500);
}