Chapter 10

Interfacing with Liquid Crystal Displays

Chapter Summary

This chapter covered the following concepts:

  • Parallel LCDs can be interfaced with the Arduino through a standard wiring scheme.
  • You can create custom characters for your LCD by generating arbitrary bitmaps.
  • You can modify your debounce function from Chapter 2 to debounce multiple buttons.
  • You can combine multiple sensors, motors, buttons, and displays into one coherent project.

Parts List

Useful Links


  • In Table 10-1, the purpose of pin number 12 (D5) is listed as “Data line 3,” but it should be “Data line 5.”

Color Wiring Diagrams


Follow along with this video for a visual tutorial about interfacing with LCDs:

Watch a demo of the updating LCD progress bar created in the chapter:

Watch a demo of the personal thermostat created in the chapter:


Chapter 10 Code Download

All code is licensed via the GNU GPL v3. Code is maintained and updated on GitHub. The download zip linked above always contains the most recent version of the code examples that have been pushed to the GitHub Code Repository.

Taking it Further

Having a display on your Arduino project opens an entire world of possibilities. Here are some project suggestions that you can now complete:

  • Create a launch controller for your model rockets.
  • Make a reaction timer that uses pushbuttons and an alert on the LCD to time how quickly you can press the button once prompted.
  • Make an infrared measuring tape that determines distances and tells them to you using the LCD.