lcd-i2c.ino
El LCD 16x2 con módulo I2C cuesta al Nano solo dos pines: SDA y SCL. Este sketch inicializa la dirección 0x27 del PCF8574, muestra un mensaje de bienvenida y una tensión analógica refrescada: el panel autónomo mínimo.
Hardware
Un Arduino Nano clásico (ATmega328P a 16 MHz, formato DIL de 30 patillas para breadboard, USB mini-B, lógica de 5 V, pin RESET abajo a la izquierda). Arduino Nano, LCD HD44780 con módulo I2C PCF8574 (dirección 0x27 o 0x3F), potenciómetro en A0 para probar.
Cableado
LCD VCC→5 V, GND→GND, SDA→A4, SCL→A5 (pines I2C nativos del 328P). El módulo gestiona R/W y RS internamente.
Funcionamiento
Wire pilota el bus I2C de hardware; LiquidCrystal_I2C da forma a los comandos de 4 bits del HD44780 por el PCF8574. Los espacios finales borran las cifras residuales de pantallas previas.
Ejecución
En el IDE de Arduino, selecciona la placa Arduino Nano y el procesador ATmega328P, elige el puerto serie y carga. El rail de 5 V de la placa conviene a sensores de 5 V; si no, usa 3,3 V en pines compatibles.
Variantes
Pon la retroiluminación en PWM para un reposo automático o muestre dos magnitudes alternas si la pantalla es pequeña.
lcd-i2c.ino
// LCD 16x2 avec module I2C PCF8574 sur l'Arduino Nano (adresse 0x27).
// Verifier l'adresse avec un scanner I2C si rien ne s'affiche.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Nano ATmega328");
lcd.setCursor(0, 1);
lcd.print("init OK");
Serial.begin(9600);
}
void loop() {
// Mesure analogique affichee sur la ligne du bas
int brut = analogRead(A0);
float tension = brut * (5.0 / 1023.0);
lcd.setCursor(0, 1);
lcd.print("A0:");
lcd.print(tension, 2);
lcd.print("V "); // purge les chiffres residuels
delay(250);
}