Interfacing Multiple LCDs With Arduino

Jaydeep Tiwari and Shubham Pakhale both are electronics enthusiasts

16636
Advertisement

Here we describe interfacing of three 16×2 LCDs with common data lines to an Arduino Uno board. Four data lines of all the three LCDs are connected to digital pins of the Arduino Uno board but data displayed on each LCD is different.

Circuit and working

The circuit diagram for interfacing of three LCDs with Arduino is shown in Fig. 1. It is built around popular Arduino Uno board (BOARD1), three 16×2 LCDs (LCD1 through LCD3), three 10-kilo-ohm presets (VR1 through VR3) and a few other components. The Arduino board is the brain of the circuit, which displays data on the three LCDs simultaneously or individually depending on the requirement.

Circuit diagram for interfacing of multiple LCDs with Arduino

Fig. 1: Circuit diagram for interfacing of multiple LCDs with Arduino

Original Image

Advertisement

As shown in Fig. 1, the 5V and ground required to operate the circuit are provided by the Arduino Uno board. All the three LCDs are configured in 4-bit mode. Common data lines of all the LCDs (D4 through D7) are connected to digital pins 4 through 7 of Arduino Uno. RS and EN control pins of LCDs are connected to different digital pins of Board1. Pin-to-pin connections between LCDs and the Arduino Uno board are shown in Table I.

First LCD

If you want to display data on the first LCD (LCD1) only, connect RS and EN pins of LCD1 to Arduino using SJ1 and SJ2 across connector CON1. Remove SJ3 through SJ6 so that RS and EN pins of the other two LCDs are not used. Thus it is possible to send data to the selected LCD while using common data lines of the LCDs.

Second LCD

To display data on the second LCD (LCD2) only, connect RS and EN pins of LCD2 using SJ3 and SJ4. Remove SJ1, SJ2, SJ5 and SJ6 to ensure that RS and EN pins of the other two LCDs are not used.

Third LCD

Similarly, to display data on the third LCD (LCD3) only, connect RS and EN pins of LCD3 using SJ5 and SJ6, ensuring that all other RS and EN pins are not used.

When you want to display data on all the three LCDs, connect all the shorting jumpers (SJ1 through SJ6) to the Arduino Uno board. Refer Table II for jumper settings and data displays on different LCDs.

The Arduino board can be powered by an external 9V, 500mA adaptor or USB cable.

Software

The software (multi.ino) for interfacing of the multiple LCDs using Arduino is written in Arduino programming language. The Arduino Uno is programmed using Arduino IDE software.

Download source Files

Construction and testing

An actual-size PCB layout for interfacing multiple LCDs with Arduino is shown in Fig. 2 and its components layout in Fig. 3. After assembling the circuit on the PCB, connect Arduino Uno and the PCB using external male-to-male jumpers. Then solder the 16-pin bergstrip male connector on the LCD and 16-pin bergstrip female connector on the PCB. Fix all the LCDs on the PCB in the space provided.

Actual-size PCB layout for interfacing of multiple LCDs with Arduino

Fig. 2: Actual-size PCB layout for interfacing of multiple LCDs with Arduino

Components layout for the PCB

Fig. 3: Components layout for the PCB

Download PCB and component layout PDFs: click here

After assembling the circuit, connect the Arduino board to your computer with standard USB cable. Compile the source code (multi.ino) and upload it to the Arduino Uno board. Connect shorting jumpers SJ1 through SJ6 on the respective connector as explained above.

You can see data display on LCD1 or all the LCDs as per the jumper settings (refer Table II). Vary contrast-control preset VR1 left and right until you get clearly visible text on LCD1.


 

 

Advertisement


SHARE YOUR THOUGHTS & COMMENTS

Please enter your comment!
Please enter your name here