How to write data to the HD44780 Display

Today we will connect a HD44780 Display to our Arduino board. Using displays like this is one of the most common ways of showing data from your sensors or any other messages to the user. Without further introduction, let’s get right into the good stuff!


We have quite a lot connecting to do here, so be sure to stick everything into the right place or this won’t work. When you look closely, you will be able to see that the pins on the HD44780 are numbered 1-16 and we will use that fact to connect it to the Arduino.

  1. VSS goes to GND,
  2. VDD goes to 5V,
  3. V0 is a tricky one. you could connect it to a potentiometer, but what I’ve learned it will be easier (and faster) to use resistors:
    • Connect 3 to 5V using a 10kΩ resistor,
    • Connect 3 to GND using a 1.5kΩ resistor.
  4. RS goes to digital 12,
  5. RW goes to GND, since we will be only writing data,
  6. E goes to digital 11,
  7. D4-D7 is the data bus, we need to connect it to digital 2-5,
  8. A goes to 5V (use a 220Ω resistor),
  9. K goes to GND.

Double check everything and we can move to the next step.

Writing data

Writing data to the display can be achieved in a few easy steps:

And here is the code:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // Set the display as 16x2
  lcd.begin(16, 2);

  // Print stuff in two lines!
  lcd.print("Visit my blog:");

void loop() {
  // Do anything you want here!

Wow! And we are done! It was so easy :)

And here is the outcome. Great job!