lcd-i2c.ino

Arduino Nano (Classic, ATmega328P) · Archivo : lcd-i2c.ino · Lenguaje : Arduino · Uso : Afficher des mesures sur un LCD 16x2 en I2C

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);
}

← Volver a la ficha