Introduction: Connecting an LCD to the Arduino

In this instructable we’ll be looking at how to connect a parallel LCD to an Arduino. The LCD that I am using uses the common HD44780 interface.  Many LCDs have this, you can usually tell by the 16-pin interface. You only need to solder 10 of the 16 wires to use the LCD, but this will only enable you to use the 4-bit interface.
 
Materials:
 
Arduino (with USB cable)
 
HD44780-compatible LCD screen
 
10 Jumper wires

1 10k Potentiometer
 
Tools:
 
Soldering Iron
 
Helping Hands (optional)
 
Let’s get started!

Step 1: Connecting the Jumper Wires

     The first step we need to do is connect the pins to the LCD.  For those interested, you can find the datasheet here.
    
     I got my LCD from sparkfun, and you can buy one here.
As I mentioned before, you only need to connect 10 pins.  Solder jumpers to these wires:


Pin 1 - Ground
Pin 2 - +5V
Pin 3 - Contrast Adjustment
Pin 4 - H/L Register Select
Pin 5 - H/L Read/Write
Pin 6 - H/L Enable
Pin 11 - DB4
Pin 12 - DB5
Pin 13 - DB6
Pin 14 - DB7

As shown in the picture below:

Pin 1 to GND
Pin 2 to 5V
Pin 3 to wiper
Pin 4 to Arduino pin 12
Pin 5 to GND
Pin 6 to Arduino pin 11
Pin 11 to Arduino pin 5 
Pin 12 to pin 4
Pin 13 to pin 3
Pin 14 to pin 2

Because we will only be writing, pin 5 will be dropped to ground to show that there will be no reading.  For those who wish to use the backlight, connect LCD pin 16 to GND and LCD pin 15 to +4.2V. 

Connect one side of the pot to GND, the opposite to +5v, and the center to LCD pin 3.  Now you're in business.

 

Step 2: Opening the IDE

Now, you need to open up the Arduino IDE. (For those who are lost click on the icon!)  Then click File -> Examples -> LiquidCrystal -> HelloWorld.  Open the sketch and dowload it to the Arduino board.

     You can change the text if you want.

Step 3: Mission Complete

Your done!  You can substitute text for variables, or even analogRead().  In this way you can read in sensor values and such.

Thanks for reading my instructable!   Please Comment and Rate.

Comments

author
CIClubPhys made it!(author)2017-04-15

Worked as instructed on my Pro Mini!

temp_1459109935.jpg
author
renicantik made it!(author)2017-04-10

When I involve God in every dream, I'm sure there is nothing impossible.
Cara Mengobati Penyakit Kista Leher Tanpa Operasi

author
renicantik made it!(author)2017-04-06

But here i miss you, and i hope you come back again
Obat asam urat kolesterol dan gula darah

author
renicantik made it!(author)2017-03-29

Good morning, spirit continues! do not give up, because God willing efforts will not betray results ..
Obat Kista Hati

author
rockerrock121 made it!(author)2017-03-08

how do i copy the text???????

author
Canters made it!(author)2016-12-29

Thanks for simple and clear explanation. Took me about 15mins. :)

IMG_20161229_224138.jpg
author
beatniksailor made it!(author)2016-09-26

I loved it. I made(MAKDED:) a few mods using a arduino NANO w/pinouts and a small b-board, I soldered jumpers to lcd and left the pins long to plug into the b-board. I hope to take advantage of unused pin & board space to add sensors & some communication stuff!! THNX!!

WP_20160521_002.jpgWP_20160521_001.jpg
author
John+JoshuaR1 made it!(author)2015-09-26

is it possible to hookup the arduino and LCD without using potentiometer??

author
Georgeh3 made it!(author)2015-12-26

If you know the value you need I suppose you could use a resistor.

author
KhubaibK1 made it!(author)2016-08-12

yes u can by using LCD module by ardinu which is easy to use .you just attach those pins with ardino that have to be use in your program and ither advantage is that that module is fixed on ardinu completely

author
Dashing+Rainbow+Dash made it!(author)2016-03-13

Can I change what pins to connect the LCD to? I need pin 2 for an interrupt.

author
DyanD1 made it!(author)2015-11-24

Do you know how to connect an arduino mega 2560 R3 to 4x20 LCD??

author
SumithB made it!(author)2015-09-17

no err. great

author
ShauryaS3 made it!(author)2015-07-04

how to change pins as pro mini has only 10 digital pins?
please reply soon project deadline tommorow

author
SelvaK3 made it!(author)2015-05-14

I like your project and I will give 5 star

author
azhween made it!(author)2015-03-07

i need a program for interfacing lcd wit arduino atmega 328 with y=mx+c logic . please help me out

author
The.Deathspace made it!(author)2015-03-05

Sir I want to know if you can change the pin initialization of the LCD and what other pins can i used to initialize it ( I'm using pin 2 as an interrupt thats why I need to reinitialize it to other pins)

author
rohanjoseph made it!(author)2015-02-17

hello...i did what was instructed on my 16*2 LCD but after running the code all it shows is black boxes...plz help!!

author
Volthaus+Electronics+Laboratory made it!(author)2015-03-02

Are you using the 10k Potentiometer? That is what you need to adjust the contrast so you will be able to see the text. Check connections if you are using it.

author
pallaviv made it!(author)2015-02-20

ii this is pallavi valunj i want to write code to display the robot moving left and right on display pl help me in this

author
ibenkos made it!(author)2014-10-26

Check my instructables out to uppgrade your work on a shield

author
borigam.tejaswini made it!(author)2014-10-12

please send me ...this total copy to my mail:borigamtejaswini79@gmail.com

author
Volthaus+Electronics+Laboratory made it!(author)2014-08-28

I just finished soldering a 16 pin header on my new LCD screen and did a quick search for an Instructable I could use to test my work and your project came up. I grabbed my Arduino, jumpers, and a 10k pot and whipped it up. Thanks!

crocboy.jpg
author
drebollo made it!(author)2014-08-07

Check mine about 3.2" 320x240 TFT LCD screen ;) https://www.instructables.com/id/LCDBPV2-32-TFT-Touch-Arduino-UNO-FAST/#step0

author
Niveditanive made it!(author)2014-03-13

can i get a code for displaying 12 images in a LCD TFT touchscreen ??????

author
jdoeson made it!(author)2013-05-28

Awesome instructable!

I was able to get everything running smoothly on my ATmega328 (Arduino Uno) and a TM204A-1 LCD screen I got from Amazon. I thought I would be spending days learning how to figure this out, but after soldering the DIP pins on the LCD I was able to get this up in 30 minutes!

I made a slight adjustment by connecting pins 15 and 16 as "The nerdling" mentioned, in order to get the backlight working. I connected pin 15 of the LCD to pin 13 on my Arduino, and made sure to open the pin (13) via IDE programming. Naturally, pin 16 went to the same ground as the rest.

I also used a mini breadboard for the LCD (the red one) to make things easier.

See the attached photo for my setup.

20130528_202447.jpg
author
monsur made it!(author)2014-02-04

Hi, I have followed the following configuration and can see my message on the screen, vaguley (http://www.hacktronics.com/Tutorials/arduino-character-lcd-tutorial.html)

You have mentioned opening pin 13 on the IDE, how is this done?

author
monsur made it!(author)2014-02-04

I am using an arduino pro mini and have followed the following link to get the message to display on my 16*2 LCD. (http://www.hacktronics.com/Tutorials/arduino-character-lcd-tutorial.html)

I have managed to upload it with no problem but cannot seem to clearly see the writing that is visible, it is very dim and cannot understand why. The issue may be related to my 10k potentiometer as it does not adjust when I turn it.

From the uploaded pic you can just make out ' Hello World' on the top and 'Hackatronics.com' on the bottom.

Any suggestions?

hackatronics lcd.jpg
author
dalbyman made it!(author)2014-01-23

Thankyou for posting this informative instructible.

Had everything working within 30 mins - Brilliant.

FYI - I found that connecting pin 15 on the LCD to the 3.3v pin on the Arduino powered the back-light fine.

author
micaiah12 made it!(author)2013-11-05

Help all I am getting is white boxes on my 20x4 white on blue LCD.

I set it up exactly like the picture and instructions. I even added
pin 15 = Digital Pin 13
pin 16 = GND
to light up the backlight.
Why won't it work?

author
us241098 made it!(author)2013-06-17

Hi crocboy!!! I connected my lcd same way as in your instructables and it works.
now i am facing a problem i am newbie to arduino and want to use lcd as output ( actually i want to print different numbers when different tactical switches are pressed ) please help me.
THANKS

author
crocboy made it!(author)2013-06-21

You'll have to do that all in your code. Read in from the digital inputs on the Arduino and set the text in your display to reflect the state of the switches.

author
axpence made it!(author)2013-06-10

note: when the user put %v, he means +5V

author
crocboy made it!(author)2013-06-21

Thanks for catching that, I'll change it

author
irtiq7 made it!(author)2012-08-05

Hi there,

I tried everything but I am still getting those black boxes when I set my potentiometer high.

author
waterlubber made it!(author)2012-08-12

Just replace that pot with a simple wire to ground. Works for me!
(P.S. The boxes are GOOD, its supposed to happen)

author
coder512 made it!(author)2011-11-11

What do you mean by the wiper part , i didn't get that !!
Pin 3 to wiper ?????

author
Michael_Bell made it!(author)2012-04-30

the middle pin of your potentometer

Connect either end to +5v and ground, and wiper will be the middle pin

author
Jeff_ made it!(author)2011-12-04

followed the guide and i only get some weird signs on it but no hello world

author
crocboy made it!(author)2011-12-30

recheck your pin connections, that's usually the main cause of this issue.

author
prateekk made it!(author)2011-07-03

hi ! can u plz tell me the link to the software with the help of which i can boot a programe/code into my arduino...??
like i hav avr for atmel micro controllers.
plz help!!

author
crocboy made it!(author)2011-08-19

To upload code to the Arduino, use the Arduino IDE: http://arduino.cc/en/Main/Software

author
andy70707 made it!(author)2010-10-07

Thanks, great instructable, I just got my arduino today and this was my first project!

author
The+nerdling made it!(author)2011-05-03

ardino's are awesome your rate of fun projects will go up by the hundreds

author
anselmi made it!(author)2010-10-07

i wired mine just like this and the lcd wont light up or show any thing
if any one could help me i would really appreciate it

author
The+nerdling made it!(author)2011-05-03

have you connected the enable pin to 5v or gnd or pin 5?

author
The+nerdling made it!(author)2011-05-03

everyone pin 15 and 16 are the backlight pins.
i connected them into 5v with a 140Ω resistor
if your wondering how i got the ohm sighn i used character map in windows

author
heleniovix made it!(author)2011-04-06

i will try in proto-board.

author
Robot+Lover made it!(author)2010-09-27

I set it up right but all i get are boxes. What should i do?

author
crocboy made it!(author)2010-11-19

For the people getting black boxes, you may want to try adjusting the contrast potentiometer.

About This Instructable

270,394views

128favorites

License:

Bio: I love to build stuff.
More by crocboy:Paracord Ladder w/ Wooden RungsUsing WiiChuck Adapter with ArduinoConnecting an LCD to the Arduino
Add instructable to: