Skip to content

LCD Hello World

Write two lines to a parallel HD44780 LCD using the bundled LiquidCrystal library.

LCD Hello World: the matching Arduino Uno circuit rendered in Circuitera’s simulator
Matching Circuitera simulator circuit. Real firmware capture; modeled components are idealized.

Wire it up

Disconnect power before changing connections. Follow terminal names rather than wire colors.

FromToWhy it matters
LCD 16×2 (lcd1) · VSSUno · GND.1Ground reference
LCD 16×2 (lcd1) · VDDUno · 5VPower connection
LCD 16×2 (lcd1) · V0Uno · GND.1Ground reference
LCD 16×2 (lcd1) · RWUno · GND.1Ground reference
LCD 16×2 (lcd1) · RSUno · 12Match this terminal to the sketch
LCD 16×2 (lcd1) · EUno · 11Match this terminal to the sketch
LCD 16×2 (lcd1) · D4Uno · 5Match this terminal to the sketch
LCD 16×2 (lcd1) · D5Uno · 4Match this terminal to the sketch
LCD 16×2 (lcd1) · D6Uno · 3Match this terminal to the sketch
LCD 16×2 (lcd1) · D7Uno · 2Match this terminal to the sketch

The complete sketch

lcd-hello.ino
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
  lcd.begin(16, 2);
  lcd.print("Hello Circuitera");
  lcd.setCursor(0, 1);
  lcd.print("Arduino LCD");
}
void loop() {}

The launch buttons use this same code and a matching saved circuit.

Build it step by step

  1. Open a complete project

    Launch in Simulator creates a separate Uno sketch and its matching wired circuit. Existing sketches are preserved. Press Run to compile and execute.

  2. Explore the live circuit

    Run the sketch, then change the second line. The model displays DDRAM written by the actual firmware.

  3. Try it on hardware

    Disconnect power while wiring. Match terminal names in the table, select the exact board, Verify, then connect and upload. Check component ratings and power requirements first.

Understand the sketch

Four-bit interface

RS and E select and latch data. D4–D7 carry one nibble at a time; D0–D3 are unused. RW is grounded because this project only writes.

If something is different

Blank physical LCD

Adjust contrast with a suitable potentiometer on V0. This virtual example grounds V0; physical contrast and backlight current are not modeled.

Expected output and tested scope

The LCD first line reads Hello Circuitera after the parallel display is initialized.

Version 1 · Last source- and build-matched test: 2026-10-25. Actual shipped AVR-GCC WASM compilation and Uno AVR engine execution; no physical hardware test.

Supported tutorial target: Arduino Uno R3 / ATmega328P. Compile: PASS · Modeled execution: PASS. Other boards require a separate review of pins, voltage, libraries and the exact build profile.

Keep exploring.