Course Curriculum

Single data wire LCD and I2C, Part 1

In the LCD Lecture, you learned how to display text in a LCD screen. Although this was a simple way to show useful information to the user, the sheer number of wires required to make the LCD screen work makes this solution far from elegant.

In this lecture, I will show you a much improved solution to the same problem, one that involves a single data wire (plus power).

To achieve this reduction in total number of wires we have to switch the type of interface we use to connect the screen to the Arduino. Natively, the screen uses a parallel interface, where each of the 8 bits that make up a character encoding uses up a wire. You may remember that in Lecture 24, use used a 4-bit parallel mode instead of the full 8-bits in order to save 4 wires. Still, even 4 wires are too many for transferring data. We also needed wires for power, and for the screen backlit.

To improve the design, we'll use an adaptor that allows us to connect the parallel LCD screen to the Arduino using the I2C serial bus.

The adapter I'll use in the demos is the 1602LCD Display I2C board.

In this part 1, I'll show you how to connect the LCD adaptor to the screen and to the Arduino, and make sure it works.

In Part 2, I'll show you how to connect a second I2C device to the circuit from Demo 1 (in Part 1 of this lecture). The second device is a real-time clock.


* An Arduino Uno

* A 16x2 LCD screen (see External Resources for an example).

* A 1602LCD Display I2C board (see External Resources for an example).

* A few jumper wires, including one 4-pin jumper (Dupont) cable for the adapter (see External Resources for an example).

View external resources

L54 - Single wire LCD screen.pdf

Did you find a problem with the school web site? Please use this form to report it (the form contains specific questions to help us fix the problem quickly).