Anda di halaman 1dari 10

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

1 de 10

http://www.circuitstoday.com/interfacing-lcd-to-arduino

Home
Forums
Datasheets
Lab Manual
Testing Components
Buy Project Kits

Electronic Circuits and Diagram-Electronics Projects and


Design
Custom Search

Interfacing LCD to arduino


praveen
June - 19 - 2014
3 Comments

Interfacing LCD to Arduino uno.


LCD modules form a very important part in many arduino based embedded system designs. So the knowledge on interfacing LCD to
arduino is very essential in designing embedded systems. This article is about interfacing a 162 LCD to Arduino. JHD162A is the LCD
module used here. JHD162A is a 162 LCD module based on the HD44780 driver from Hitachi. The JHD162A has 16 pins and can be
operated in 4-bit mode or 8-bit mode. Here we are using the LCD module in 4-bit mode. First, I will show you how to display plain text
messages on the LCD module using arduino and then few useful projects using LCD and arduino. Before going in to the details of the
project, lets have a look at the JHD162A LCD module.
JHD162A LCD module 162.
The JHD162A has 16 pins and can be operated in 4-bit mode or 8-bit mode. Here we are using the LCD module in 4-bit mode. Before
going in to the details of the project, lets have a look at the JHD162A LCD module.The schematic of a JHD162A LCD module is given
below.

The name and functions of each pin of the JHD162A LCD module
is given below.
Pin1(Vss):Ground pin of the LCD module.
Pin2(Vcc):+5V supply is given to this pin
Pin3(VEE):Contrast adjustment pin. This is done by connecting the ends of a 10K potentimeter to +5V and ground and then connecting
the slider pin to the VEE pin. The voltage at the VEE pin defines the contrast. The normal setting is between 0.4 and 0.9V.
Pin4(RS):Register select pin.The JHD162A has two registers namely command register and data register. Logic HIGH at RS pin selects
data register and logic LOW at RS pin will select command register. If we make the RS pin HIGH and put a data on the data lines (DB0 to

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

http://www.circuitstoday.com/interfacing-lcd-to-arduino

DB7) it will be recognized as a data. If we make the RS pin LOW and put a data on the data lines, then it will be taken as a command.
Pin5(R/W): Read/Write modes. This pin is used for selecting between read and write modes. Logic HIGH at this pin activates read mode
and logic LOW at this pin activates write mode.
Pin6(E): This pin is meant for enabling the LCD module. A HIGH to LOW signal at this pin will enable the module.
Pin7(DB0) to Pin14(DB7): These are data pins. The commands and data are put on these pins.
Pin15(LED+): Anode of the back light LED. When operated on 5V, a 560 ohm resistor should be connected in series to this pin. In
arduino based projects the back light LED can be powered from the 3.3V source on the arduino board.
Pin16(LED-): Cathode of the back light LED.
For knowing more about LCD module JHD162A and it interfacing, read this article: Interfacing 162 LCD and 8051 microcontroller. The
circuit diagram of interfacing LCD to arduino for displaying a text message is shown below.
Circuit diagram.

RS pin of the LCD module is connected


to digital pin 12 of the arduino. R/W pin of the LCD is grounded. Enable pin of the LCD module is connected to digital pin 11 of the
arduino. In this project, the LCD module and arduino are interfaced in the 4-bit mode. That means only four of the digital input lines(
DB4 to DB7 of the LCD are used). This method is very simple, requires less connections and you can almost utilize the full potential of
the LCD module. Digital lines DB4, DB5, DB6 and DB7 are interfaced to digital pins 5, 4, 3 and 2 of the Arduino. The 10K
potentiometer is used for adjusting the contrast of the display. 560 ohm resistor R1 limits the current through the back light LED. The
arduino can be powered through the external power jack provided on the board. +5V required in some other parts of the circuit can be
tapped from the 5V source on the arduino board. The arduino can be also powered from the PC through the USB port. The full program
for interfacing LCD to arduino is shown below.
Program.
#include<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16, 2);
}

// sets the interfacing pins

// initializes the 16x2 LCD

void loop()
{
lcd.setCursor(0,0);
//sets the cursor at row 0 column 0
lcd.print("16x2 LCD MODULE"); // prints 16x2 LCD MODULE

2 de 10

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

3 de 10

lcd.setCursor(2,1);
lcd.print("HELLO WORLD");

http://www.circuitstoday.com/interfacing-lcd-to-arduino

//sets the cursor at row 1 column 2


// prints HELLO WORLD

About the program.


Library function LiquidCrystal.h is used for displaying the desired characters on the LCD module. It is readily available with the
Arduino user interface and it can be accessed through the Import library in the sketch tab in the main menu bar. The LiquidCrystal.h
provides functions for almost all applications like printing a string, setting the cursor, initializing the LCD, scrolling the display etc.
Program for scrolling the display.

A simple program for scrolling a text on the LCD using arduino is shown here. This is done using the scroll() function. For example the
function lcd.scrollDisplayRight() will scroll the display to right and the functionlcd.scrollDisplayLeft() will scroll the display to left.
A for loop is used for selecting the number of positions to scroll at a time. In the program shown below, it is chosen to be 2 because the
text to be displayed is comparatively long. For shorter texts more number of positions must be scrolled at a time to get a smooth display.
#include <LiquidCrystal.h>
int i=0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16, 2);
//initializes 16x2 LCD
lcd.print("16x2 LCD MODULE JHD162A & ARDUINO-UNO"); //text to display
}
void loop()
{
for(i=0;i<2;i++)
{lcd.scrollDisplayLeft();}
delay(800);
}

//scrolls display left by two positions


//sets the speed at which display moves

Digital thermometer with LCD display using arduino.


This is just a practical implementation of the interfacing of LCD and Arduino. A simple digital thermometer using arduino and 3 digit
seven segment display had been already published here. You can find that article here: Digital thermometer using arduino. Read this
article before attempting the LCD version. LM35 is the temperature sensor used in this project. It is a three terminal linear analog
temperature sensor. The output voltage of the LM35 increases 10mV per C rise in temperature and the range is from -55C to +155C.
The circuit diagram of the LCD thermometer using arduino is shown in the figure below.
Circuit diagram: LCD thermometer.

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

http://www.circuitstoday.com/interfacing-lcd-to-arduino

The LM35 temperature sensor is


interfaced to the analog input pins of the arduino. Vcc pin (pin 1) of the LM35 is connected to A0 pin of the arduino. Output pin (pin 2) of
the LM35 is connected to A1 pin of the arduino. GND pin (pin 3) of the LM35 is connected to A2 pin of the arduino. The complete
program of the LCD thermometer using arduino is given below.
Program: LCD thermometer.
#include <LiquidCrystal.h>
int vcc=A0;
int sensor=A1;
int gnd=A2;
float temp;
float tempf;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode(vcc,OUTPUT);
pinMode(sensor,INPUT);
pinMode(gnd,OUTPUT);
digitalWrite(vcc,HIGH);
digitalWrite(gnd,LOW);
lcd.begin(16, 2);
lcd.setCursor(2,0);
lcd.print("TEMPERATURE");
}

//
//
//
//
//

Vcc for LM35


Ground for LM35
initializes the 16x2 LCD
sets the cursor at column 2 row 0
prints temperature

void loop()
{
temp=analogRead(sensor);
temp=temp*5;
temp=temp/10;
tempf=(temp*1.8)+32;

//
//
//
//

lcd.setCursor(0,1);
lcd.print(temp);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(8,1);
lcd.print(tempf);
lcd.print((char)223);
lcd.print("F");
delay(1000);

sets cursor at column


prints temperature in
prints degree sign
prints letter c
sets cursor at column
prints temperature in
prints degree sign
prints letter F
1 second delay

//
//
//
//
//
//
//
//
//

reads the sensor output


converts the sensor reading to temperature
adds the decimal point
converts to Fahrenheit
0 row 1
degree Celsius

8 row 1
degree Fahrenheit

4 de 10

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

5 de 10

http://www.circuitstoday.com/interfacing-lcd-to-arduino

You may also like:


LPG sensor using arduino
OhmMeter using Arduino with Auto Ranging Feature
Water level controller using arduino
Tachometer using arduino
Motor speed control using arduino

We recommend:
Class B power amplifier
Dual Adjustable Power Supply Using LM 317 & LM337
12V to 24V DC DC converter
LA3161 Stereo Preamplifier
Remote control tester circuit

Custom Search

Posted in Arduino
Tags: interfacing LCD to arduino, JHD162A LCD module

Leave a Reply
Name (required)
Mail (will not be published) (required)
Website

3 Responses to Interfacing LCD to arduino


chirag surti says:
August 5, 2014 at 10:24 pm

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

6 de 10

http://www.circuitstoday.com/interfacing-lcd-to-arduino

thanks u for the these great circuits & v r impress on ur circuits


Reply
balwinder says:
July 23, 2014 at 3:19 am
Thanks circuits today team to provide us better circuit guidence and project.love u all team.plz alao post information regarding
Rasbery pi board with simple projects.tx again.
Reply
ElektrikBilim says:
July 4, 2014 at 12:15 am
thanks you a lot for these electronics circuits.
Reply

Get Daily Updates via Email

Latest Articles
LPG sensor using arduino
OhmMeter using Arduino with Auto Ranging Feature
8051 Timers and Counters
We are on all Social Media Youtube Facebook Twitter Linkedin and Slideshare
Water level controller using arduino
Tachometer using arduino
Interfacing LCD to arduino
Motor speed control using arduino
Digital code lock using arduino
Interfacing hex keypad to arduino

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

7 de 10

http://www.circuitstoday.com/interfacing-lcd-to-arduino

Categories
101-Announcements
555 Timer IC
8051
8051 projects
Amplifier Circuits
Arduino
Audio Circuits
Automotive Circuits
AVR
Basic Electricity
Basic Electronics
Battery Circuits
C plus plus
C Programming
Cable TV Circuits
Camera Technology
Clipping and Clamping Circuits
Clocking & Timer Circuits
Conversion Circuits
Counter Circuits
Counters
Digital Electronics
Education & Training
Electronic Components
Electronic Keys & Locks
Electronics Books
Electronics Jobs
Embedded Systems
Equipment Reviews
Events
Fan Circuits

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

8 de 10

http://www.circuitstoday.com/interfacing-lcd-to-arduino

Filter Circuits
Fire Alarm
Fun & Game Circuits
Gadget Reviews
Ham Radio Circuits
High Voltage Circuits
History
Home Circuits
Industrial Circuits
Instruments
Integrated Circuits
Inverters
Lab Manuals
LED related
Light Related
Lighting Circuits
MATLAB
Microcontrollers
Mobile Phone Related
Motor Related
Nanotechnology
Oscillators
Peripheral Interface Controller (PIC)
Power Controller Circuits
Power Electronics
Power Supplies
Project Ideas
Projects
Proximity Detectors
Radio Circuits
Radio Transmitters
Raspberry Pi
Relays
Remote Circuits
Reviews
Robotics
RTOS
Security & Saftey
Sensor Circuits
Signal Conditioners
Signal Generators
Speed Controller Circuits
State space analysis
Switching Circuits
Tech News
Telephone Related
Television Related
Temperature Related
Test & Measurement Circuits
Testing Components
Three phase circuits
Timer Circuits
Tone generator circuits
Tools and Softwares
Transmitters
Tutorials
UPS
USB Circuits
Videos
VLSI

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

9 de 10

http://www.circuitstoday.com/interfacing-lcd-to-arduino

Voltage Regulators

Like Us on Facebook
Circuitstoday.com
Me gusta

A 25 530 personas les gusta Circuitstoday.com.

Plug-in social de Facebook

Recent Comments
sebin jacob on 150 Watt amplifier circuit
Ayvin on Flip Flops
srinivasulu sangeetham on Embedded Systems Career-An Outline
praveen on OhmMeter using Arduino with Auto Ranging Feature
sanjay agarawl on Instrumentation amplifier
sutfuf on OhmMeter using Arduino with Auto Ranging Feature
Jac_eX on Water level controller using 8051
Pascual on 150 Watt amplifier circuit
Brandon on Band Stop Filter
Etienne Hamelin on OhmMeter using Arduino with Auto Ranging Feature
Andreas on OhmMeter using Arduino with Auto Ranging Feature
Lucky on Ultrasonic range finder using arduino
vinho on Water level controller using 8051
Nissar on Embedded Systems Career-An Outline
Slashybaba on Variable Resistors Working and Applications

Pages
About
Advertise With Us
Authors
Buy Project Kits
Datasheets
Electronic Circuit Symbols
Lab Manuals
Electronic Circuits Lab
Microcontroller lab
Microprocessor Lab
Privacy Policy
Project Contests
Resistor Color Code Calculator
Sitemap
Testing Components

Popular Tags
555 IC

555 timer Audio Amplifier Circuits Audio circuits circuit

design circuit diagram Electronic Circuits

18/11/2014 11:59 p. m.

Interfacing LCD to arduino. JHD162A is the 16x2 LCD module used here...

10 de 10

Electronic Components Electronic Instruments Filter Circuits History of Electronics hobby


Circuits Most Popular Circuits Nanotechnology

http://www.circuitstoday.com/interfacing-lcd-to-arduino

circuits hobby projects Home Circuits IC Integrated

NE555 timer Oscillators PIC Power Supplies Radio Circuits SCR Simple Electronics Projects Tech

News Thyristors Tutorials VLSI Voltage Regulators

Most Discussed
150 Watt amplifier circuit
100 Watt sub woofer amplifier.
Mains Operated LED Circuit
Automatic LED Emergency Light-Modified Version
2 km FM transmitter
Suggest a Topic to Publish & Win a 8GB Pen Drive
Automatic LED Emergency Light
Copyright 2007 - 2011 Circuitstoday.com Designed by Web Design Cochin

18/11/2014 11:59 p. m.

Anda mungkin juga menyukai