Interfacing a FocusLCD Character Display Module

This is a quick tutorial on how to interface a Focus character LCD to an Arduino unit.

Necessary Supplies:

  • Arduino
  • Character LCD with LED backlight
  • Breadboard
  • 16×1 0.1mm spaced header
  • 10K potentiometer (Not mandatory, but needed to adjust the contrast)
  • Coffee (Also not mandatory, but very helpful)

Step 1: Solder the header to your LCD

All connections to the character LCD are made through the 16 pins on the bottom/top of the display. If you find the LCD contains only 14 positions, then the LCD does not include a LED backlight, or the backlight cannot be connected through pins 15 and 16.

It is easiest to solder a 16×1, 0.1mm space header to the LCD. This will allow you to connect to a breadboard for development and to a PCB when ready to go into higher volume production. You must solder the header, or the connection will be intermittent, and the display will fail more than it will work. Save yourself much aspirin and time by soldering it.

Don’t apply heat for more than three seconds, or the PCB will start to separate. (muy mal)

Step 2: Connect power (+5V) and ground to the rails on the breadboard

Use two wires (aka jumpers) to connect the power and ground to the breadboard. Most people use a red wire for +5 and black for ground, but hey, you can use what you want as long as you don’t confuse it.

  • +5 Volt connects to the red rail.
  • Ground connects to the blue rail.

Step 3: Turning on the backlight

  • Connect a wire between pin 15 to +5V (red rail)
  • Connect a wire between pin 16 to ground (blue rail)

If the Arduino is on, your backlight should come to life, take a moment to bask in its brilliance and glow.

Why isn’t my backlight powering up?

Some displays need a resistor added between the power and the backlight. Add a 220ohm resistor between pins 15 and 5v. (red rail). 

Still not working?

If the backlight isn’t on, reverse the wires. It’s not uncommon for the polarity of the backlight to be reversed on monochrome LCDs. Swap the wire between pins 15 and 16.

Step 4: Adjusting the contrast

You’re doing great and so far, no one has been hurt. Before we turn on the letters and numbers, we need to install a Pot (10K potentiometer). Its job is to adjust the contrast if the display is too dark or too light to read. A pot has three connections. The middle connection should connect to pin 3 of the LCD. Of the two remaining pins, one is connected to +5V (red) and the other to ground (blue). You can connect either pin to red/blue if the middle pin goes to pin 3 of the LCD.

Step 5: Power to the people LCD

Character LCDs contain two separate power connections. One is the backlight, aka as VLED. The other is the power for the LCD aka as VL.

They both use the same voltage, but it is good to connect them separately.

  • Connect pin one of the LCD to ground (blue rail)
  • Connect pin two of the LCD to power (red rail) 

Step 6: Contrast Adjust

This is where you turn the little knob on the Pot to make the numbers/letter/boxes brighter or dimmer. This may not be able to help you clear up major issues in your life or social standing, but it does wonders on a monochrome LCD.

Step 7: Coffee 

It’s been a long day and might be good to step back, make a hot cup of dark roast coffee and reminisce on the great job you’re doing.

Step 8: Connecting the LCD Interface 

Well, the LCD won’t display anything until we find a home for the 11 remaining connections. Below is a quick break down of what each connection is and how to connect it.

Step 9: RW (Read/Write)

The display can read data (coming from the micro-processor) or it can write data (tell the microprocessor what is going on in its life.) To keep this simple, we are only going to have the display read data.

Connect the RW pin ground (blue rail).

Step 10: EN (Enable)

This tells the LCD that the microprocessor is ready to send information.

  • Connect EN to the #8 connection on Arduino.

Step 11: RS (Register Select)

This tells the LCD if you are going to send commands or Data. Commands are things such as what position you will place the next letter or number. Data is that letter or number you want to display.

  • Connect the RS pin to pin #7 of the Arduino. 

Step 12: DB (Data Bits)

This is where the power lies in the LCD. There are 8 data bits (DB0 through DB7). This is where you tell which letter or number you want to display. The information is transferred using 8-bit ASCII character table like the one below.

It is possible just to use just half the data bits such as DB0 through DB3. This reduces the speed of the data transfer, but in most cases, it wont matter.

Many designers only use 4 bits when they are running low on the I/O (In/Out) of their microprocessor.

To keep things simple, we will only use four data bits:

  • DB7 pin on LCD = Pin #12 on Arduino
  • DB6 pin on LCD = Pin #13 on Arduino
  • DB5 pin on LCD = Pin #12 on Arduino
  • DB4 pin on LCD = Pin #11 on Arduino

Step 13: Arduino Code

Here is a link for the Arduino code for a character LCD. Note: this code was written by Arduino.

And that’s it! You have now successfully interface your FocusLCD character display module to an arduino.

Let us know of any suggestions, idea or what type of coffee you prefer. Our goal is: LCDs made simple®

Focus LCDs is US based, all inventory, support and coffee is housed in our Chandler, AZ location.