Serial LCD Display
Please note: All our kits will be sold via The Curious Electric Company from now on. This page is for information only. Please visit our shop to see our current range of kits or contact us to discuss your project and how we might be able to help.
This LCD display unit displays any data sent to it via a serial connection. It is based upon the ATmega328 and the Arduino Uno bootloader.
This unit fits a number of 16 x 2 character LCD display units which use the Hitachi HD44780 driver. A back-light control line is also included.
The standard LiquidCrystal libraries, included within the latest version of the Arduino IDE, can be used.
This kit is available here for £10 (including UK P&P) without an LCD display (so you can use your own) or £15 including a 16 x 2 green/yellow back-lit LCD.
This kit came about from the requirement to have a small data display on a number of projects. I had a number of the 16 x 2 LCD display units, but with different form factors and pin placements. I wanted a board that was easy to use but could accept a number of different LCD units. I decided to create a PCB and put the parts together as a kit which might be useful to other folk.
The unit itself is based upon the ATMega328 programmed with the Arduino Uno bootloader. This is serially intercfaced to a number of pin-out patterns with work with standard 16 x 2 LCD units which use the Hitachi HD44780 driver (a very common standard).
There is a programming header for the FTDI USB-Serial programming lead. (Update 25/3/14: We now also sell a re-programming lead which works with this kit, here.)
There is a header for the serial interface and 5V power.
The board connections are:
- LCD RS Pin -> Arduino Pin 12
- LCD Enable Pin-> Arduino Pin 11
- LCD R/W Pin -> Arduino Pin 10
- LCD backlight control -> Arduino Pin 9
There are two option connectors to use:
K1 decides if the LCD R/W is enabled (it is usually set to ground in standard applications, which frees up Digital pin 10 for other uses. If you need to read what has been written to the LCD then you will need to enable and control the LCD R/W. There are examples for this on the web, but not included here.
K2 decided if the LCD back-light is controlled by the Arduino via digital pin 9, or if it is permanently ON or if it is permanently OFF (no connection at all on K2).
The various standard Arduino Input/Output pins are all available as connector pads (D0-13 and A0-5). These can be used as inputs for counters and timers.
The ATMega328 has been programmed with the SerialDisplay example from the LiquidCrystal library included in the Arduino IDE.
To send characters to the LCD display, plug in the FTDI USB/Serial cable (this will also power the unit). Open the Serial monitor from the Arduino IDE, set the baud rate to 9600. Type a few characters into the input box and press ‘Send’. They should appear on the top line of the LCD.
The LCD has two lines of text. To get characters to appear on the bottom line, you will have to send 40 characters (the first 16 will appear on the top of the screen). Characters from 41-56 will be displayed on the bottom line of the LCD. You can also set the starting position of new text – check the LiquidCrystal library for more examples.
Note: To program the Arduino, a standard FTDI USB-Serial lead (such as available here) is required.
This kit is very similar to this Serial LCD kit from the great SparkFun. The main difference is that this PCB is designed to accept a number of different LCD pin configurations (so that I can use up the LCD screen units I seem to be collecting).
Buy one here:
This kit is available here, with payment via paypal. The cost is £10 (including p&p within the UK) without an LCD unit and £15 (inc. p&p within the UK) including an LCD unit. Other delivery options are available.
Kit Information
This is a relatively simple to put together kit, using through-hole components. The kit includes the following parts (Note: LCD is only included if requested on the options above):
Note: You will need: soldering iron, solder, wire cutters.
Instructions
The construction instructions are available here:
Circuit Schematics
Parts List
Reference | Description | Reference | Description |
CONTRAST | 10k variable resistor | P1 | Serial data connection |
C2 | 100uf electrolytic capacitor | P3 | LED Back-light power (if required) |
C3 | 100nf | P8 | FTDI header (6-pin) |
C4 | 100nf | P9 | Analog 0-5 pads |
C5 | 22pF | P10 | Digital 8-13 pads |
C6 | 22pF | P11 | Digital 0-7 pads |
D1,D2 | NOT used. | Q1 | BC548 NPN transistor |
LCD | LCD unit (only supplied in certain versions) | R1 | 1k resistor |
IC2 | ATMEGA328 – UNO boot-loader | R2 | 10k resistor |
28 pin DIL socket | SW1 | Reset switch | |
K1 | R/W pin enable? | X1 | 16MHz Crystal |
K2 | LED back-light enable? | PCB |
Arduino Code
The code for this project was written using the Arduino bootloader and IDE. (Note: It was written on version 1.05 of the IDE and is untested on other versions).
This project assumes some knowledge of the Arduino platform. If you do not have this then please start with the numerous examples available within the Arduino community.
Examples are included within the LiquidCrystal library installed with the latest version of the Arduino IDE.
KiCAD design files
This is a fully open-source project. The PCB and schematic for this project were drawn using the open-source KiCAD electronics design package.
The PCB layout is here (not to scale!):
The KiCAD project files are available here.