🛠 Afficher sur un LCD 16×2 en bus parallèle 8 bits

Arduino Mega 2560 (Rev3) · intermediaire · Schéma : IMG-mega-2560-intermediaire-3-lcd-16x2.svg — écran LCD 16×2 à contrôleur HD44780 câblé en bus 8 bits sur les broches 22 à 32 de l’Arduino Mega 2560, potentiomètre de contraste sur V0

Objectifs

Profiter des 54 broches d'entrée/sortie de la Mega 2560 pour câbler un écran à caractères HD44780 16×2 en mode 8 bits complet (huit lignes de données D0–D7 plus RS, E et RW, soit onze broches) — un luxe impossible à côté d'un Uno sans sacrifier la moitié de ses broches. Le bus 8 bits double la vitesse d'écriture par rapport au mode 4 bits classique.

Matériel

Câblage retenu (broches libres de la Mega) : RS=22, RW=23 (liée à GND en écriture seule), E=24, D0–D7 = 25 à 32. LCD : VSS→GND, VDD→5 V, V0→curseur du potentiomètre (les deux autres pattes : 5 V et GND). L'écran est prévu pour la logique 5 V, la tension nominale des broches de la Mega.

Code complet

// LCD 16x2 en bus 8 bits — bibliothèque LiquidCrystal
#include <LiquidCrystal.h>

// (RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7) : mode 8 bits
LiquidCrystal lcd(22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32);

void setup {
  lcd.begin(16, 2);
  lcd.print(F("Mega 2560"));
  lcd.setCursor(0, 1);
  lcd.print(F("Bus 8 bits"));
}

void loop {
  lcd.setCursor(11, 0);
  lcd.print(millis / 1000);   // chrono sur la 1re ligne
}

Vérification attendue

« Mega 2560 » et « Bus 8 bits » s'affichent sur les deux lignes, un compteur de secondes s'actualise en fin de première ligne. En jouant sur le potentiomètre, le contraste varie de tout-éteint à tout-noir.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels