
LCD display with SN74164 serial shift register interfaced to Arduino microcontroller.
Interfacing Arduino SN74LS164 Serial Shift Register Driving LCD HD44780 Display
Here we will explore how to connect Arduino to a 2 or 4 line by 16 or 20 character LCD HD44780 based display. The electrical connections are shown above. I have avoided user supplied libraries because changes in the Arduino compiler means some of them don't work. The other point being how to write one's own code and get a better understanding of the electronics and how a micro-controller really operate. This will enable the student or hobbyist to connect other similar devices or learn how to connect new devices.
The code will allow one to display characters, strings, integers, and floats on the HD44780 LCD display. Some of the code was borrowed from the following projects minus the GPIO expander and the use of a 74HC164 code for Arduino.
YouTube video for this project: Using a SN74164 Serial Shift Register with a HD44780 LCD Display and Arduino
About the SN74164 Shift register and the LCD Display
Demo to shift byte into 74HC164 to operate LCD display.
8-Bit Serial-In - Parallel-Out Serial Shift Register
In the case of the HD44780 type display
Q1-Q7 of the 74164 connects to D0-D7 LCD.
The 74HC164 has three inputs:
Input A-B (pins 1, 2) is for data. they can be tied
together or the one not used tied to +Vcc
Clock pin 8 data is serially shifted in and
out of the 8-bit register during
the positive going transition of clock pulse.
Clear (pin 9) is independent of the clock
and accomplished by a low level at the
clear input. Can connect to Vcc.
As far as LSB first or MSB bit first is up to software
and electrical connections on the output.
LCD pin 6 (E), HIGH to LOW transition will clock
info into display. Select command or data with RS.
RS -> 0 is command, 1 is data. R/W goes to ground.
Complete code for this project: arduino_74164.txt
Download the complete code for this demo: arduino4a.txt.
- Quick navigation of this website:
- Basic Electronics Learning and Projects
- Basic Solid State Component Projects
- Arduino Microcontroller Projects
- Raspberry Pi Electronics, Programming
Stepper Motors
- Easy Driver Micro-Stepper Controller to Arduino
- Unipolar Stepper Motor with a Arduino
- Considerations for Using Stepper Motors
- Connecting the Arduino to a L298N H-Bridge
- L298N Motor Controller Theory and Projects
- TA8050 H-Bridge Motor Controller
- Battery Charger related:
- Solar Panel Charge Controller Using Arduino
- Solar Panel Battery Charge Controller Using Arduino
- Solar Panel Battery Charge Controller Switching Circuit
- Arduino AC Power Control Tutorial
- Rotary Encoder Using Arduino Hardware Interrupts
- Arduino Controlling 74C164 Shift Register
- Arduino Interface MC3479 Stepper Motor Controller
Serial LCD Display and assorted Sensors
- Arduino LCD Display using 74164 Shift Register
- Arduino LCD Display with DS18B20
- Arduino LCD Display with DHT11 Sensor
- Arduino with MM5451 LED Display Driver
- Arduino MAX7219 Operates 8X8 LED Matrix
- Arduino RTC Clock MAX7219 LED Display
- BCD Conversion with MAX7219
- Hatching Chicken Eggs with Arduino
- Arduino TMP37 Temperature Sensor
- Arduino TMP37 Temperature Sensor Tutorial
- The following use obsolete parts and are kept as a reference.
- Testing the Keyes IR Sensor Module with Arduino
- Arduino to MCP23016, LCD Display
- Time-Date with Arduino, LCD Display, DS1307 RTC
- Controlling Driveway Lights with the Arduino
- TSL230R Light to Frequency Converter
- Arduino with MCP23016 I/O Expander
- Arduino DS1307 Real Time Clock
- Arduino with 24LC08 Serial EEPROM
- MC3479 Stepper Motor Controller with Arduino
Web site Copyright Lewis Loflin, All rights reserved.
If using this material on another site, please provide a link back to my site.