Interface of LCD With Arduino
Interface of LCD With Arduino
AIM: To interface 16 ×2 LCD to Arduino and display text characters on LCD screen.
HARDWARE REQUIRED:
1. Arduino uno board
2. 16*2 LCD module
3. Patch cords
THEORY:
A Liquid Crystal Display commonly abbreviated as LCD is basically a display unit. The most
basic form of electronic display available is 7 Segment display – which has its own limitations.
The next best available option is Liquid Crystal Displays which comes in different size
specifications. Out of all available LCD modules in market, the most commonly used one is 16×2
LCD Module which can display 32 ASCII characters in 2 lines (16 characters in 1 line). Other
commonly used LCD displays are 20×4 Character LCD, Nokia 5110 LCD module, 128×64
Graphical LCD Display and 2.4 inch TFT Touch screen LCD display.
LCD consists of 16 pins and can be operated in 4-bit mode (using only 4 data lines) or 8-bit
mode (using all 8 data lines). Here LCD module is used in 4-bit mode.
The name and functions of each pin of the 16×2 LCD module is given below.
Pin1(Vss):Ground pin of the LCD module.
Pin2(Vcc): Power to LCD module (+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. LCD has two registers namely command register and data register.
Logic HIGH at RS pin selects data register and logic LOW at RS pin selects command register. If
we make the RS pin HIGH and feed an input to the data lines (DB0 to DB7), this input will be
treated as data to display on LCD screen. If we make the RS pin LOW and feed an input to the
data lines, then this will be treated as a command ( a command to be written to LCD controller –
like positioning cursor or clear screen or scroll).
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 fed to the LCD
module though 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.
Circuit diagram – Arduino to 16×2 LCD Module
PROCEDURE:
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. LCD
module and arduino are interfaced in the 4-bit mode. This means only four of the digital input
lines( DB4 to DB7) of the LCD are used. This method is very simple, requires less connections.
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.
Embedded C PROGRAM:
About the program.
To facilitate communication between Arduino and LCD module, we make use of a built in library
in Arduino <LiquidCrystal.h>
data string can be printed on the LCD module by lcd.print(). If “Hello World” to be printed at
row 1, starting from column 3; first set the cursor at the desired position using
method lcd.setCursor(1,3) and then write the command to print the characters
as lcd.print(“Hello World”);
LiquidCrystal lcd() – is a constructor used to declare a variable of its type
lcd.begin() – is called to initialize the lcd screen and to pass the dimension of lcd screen
(columns, rows) as parameters.
lcd.scrollDisplayRight()” will scroll the display to right and the method”lcd.scrollDisplayLeft()”
will scroll the display to left. A “for” loop is used for selecting the number of positions to scroll at
a time.
OUTPUT:
RESULT: thus 16*2 LCD module is interfaced with arduino uno and characters are displayed on
the LCD screen