I had initially planned to do an LCD tutorial a little further down the line, but there was very high demand for it, and I already had a circuit assembled for testing the new LCD that element14 sent me to evaluate. So, this seemed like an appropriate time to roll it out!
In this episode, I explain how communication works with most modern LCD character displays, I show the schematics and circuit required to talk to an LCD, and then I demonstrate it working using two demo programs. The first program will create an animated progress bar using custom characters, and the second will leverage I2C and button debouncing knowledge from tutorial 7 and tutorial 2 respectively to create a real time temperature readout in both Celsius and Fahrenheit. Download the source code, schematics, datasheets, and parts list below!
You can download the files associated with this episode here:
Distributed under the GNU General Public (Open-Source) License.
Please Attribute and Share-Alike.













August 12, 2011 at 12:56 pm
Hi Jeremy, would you be able to help me with a problem im having? I will explain so you can decide. Im working with a common anode led dot matrix display and two 74HC595N shift registers. Im confident that I have wired everything correctly to my specific dot matrix display but when i upload the code to produce a heart(its from the book beginning arduino) all that happens is all the leds are light, albiet some are brighter than others. I have a schematic of my work and i am happy to attach the code..Please help me because im out of ideas on how to resolve the issue! If not, no worries, I know you’re busy!
August 13, 2011 at 3:26 pm
Use the contact form to send me the schematic/code so I can take a look at it.
August 13, 2011 at 4:40 pm
Ok I will do :)
August 27, 2011 at 8:45 am
Hello, I haven’t been here for a quite while, and there are 3 new Arduino tutorials. Wonderful ! Thank You !
October 16, 2011 at 4:42 pm
You can subscribe to my youtube channel (sciguy14) to get updates when new videos are released.
August 27, 2011 at 3:35 pm
Awesome!! I’ve never been to your site before. I’ve been playing with the idea of making a specific type of timer using Arduino and an LCD display. A friend of mine pointed me to this page. Your site is definitely getting bookmarked and visited often!! Good job!
October 16, 2011 at 4:42 pm
Glad it’s helpful!
October 10, 2011 at 8:46 pm
I tired to import Arduino in Processing. I followed the procedure that is outlined in “http://www.arduino.cc/playground/Interfacing/Processing”. When I tried to run the example in the above website, I got this error: “cc” does not exist. Can you help me with this?
October 16, 2011 at 4:43 pm
you can’t run an arduino program in processing. What are you trying to do?
November 5, 2011 at 8:48 am
Thanks, I figured it out. I was trying to design a game. Now, I am trying to make it wireless. I followed your tutorial 9 on wireless. I was successful to program the Xbees. I tried to load a simple sketch to tes the wireless, I could not do it. The Serial Port in Tool Menu of Arduino IDE is grayed-out(not activated) I checked the Ports on Device Manage of Control Panel (Window XP), my Arduino Uno is mapped to COM4, but Arduino IDE does not recognize it. Have had a similar experience?
October 25, 2011 at 2:54 am
Hi Jeremy,
You are the best explainer for all that can be done with PIC Chips. Question, can an Arduino display to a 7 inch LCD Display like (http://www.ebay.com/itm/7-inch-LCD-Touch-Screen-panel-/280604977083?pt=BI_Electrical_Equipment_Tools&hash=item41555c27bb) ?
Thanks for your time and effort.
October 28, 2011 at 10:09 pm
I doubt the arduino would have enough processing power – I’ve never tried to interface with it like a screen like that, but that doesn’t mean it’s impossible.
December 12, 2011 at 5:33 am
Hi,
first i have to say, your tutorials are awesome! I’ve learned quite a lot here.
Question: Do you know a good tutorial about graphic lcds? I want to use one
in my projekt, but i have no clue how to program it^^
January 2, 2012 at 6:02 pm
Did you check adafruit.com? I’m planning to do one in the future.
February 9, 2012 at 11:40 am
they have indeed a minitutorial about glcds on their page.
But its only for serial lcds.
Mine is working now after some trying.
Apart from that, it would be great if you do a tutorial
using a glcd.
December 17, 2011 at 9:21 pm
Jeremy,
I’m building a very big project at the moment and I need a lot of my arduino’s pins. Does it matter if I connect the display to normal I/O pins?! Or are there pins on the display that need PWM (I’m not sure if the LiquidCrystal library/LCD display needs them or not)?!
Also thank you for your amazing tutorials! You are the reason I bought an Arduino in the first place!
January 2, 2012 at 6:03 pm
I don’t think you need PWM pins.
February 17, 2012 at 1:39 am
Hello Jeremy,
I’ve tried printing to LCDs and one thing I noticed was that when you start counting from say 1 up to 20 and count down again, the second digit remains and will not clear. Is there any way to make this count down from 20, 19, …, 9, 8…1 instead of 20, 19, 18…10, 90, 80…10?
Best regards!
March 26, 2012 at 6:29 am
hello jeremy…i am in the last year student with the final year project…i am using arduino to build a 30 minutes timer but get confuse to it..do you have any previous post that tell about making timer using the arduino?
March 31, 2012 at 8:37 am
Hi Jeremy,
i’m making a project right using a Arduino Uno now and i must measure the temperature to but i must display the temperature on a Serial LCD. Can you give me some advices?
Actually i must create a Breathalyzer and because the temperature is one of factors i must displying it to. I need some help.
Tank you very mouch
April 3, 2012 at 6:53 am
Hi Jeremy,
Your tutorials really help those of us that do not understand electronics, but still want to get something done with the Arduino.
I have some 4 digit 7 segment LED B08M04 displays that I would like to use with Arduino to show values with 2 fixed decimals. Can you please explain how to do this. Pins 1,3,4,5,6,8 are used with Pin 9 connected to pin 6.
Cheers,
April 6, 2012 at 11:20 am
Hi Jeremy,
i really love to learn more from you,,and this days i planning to make a tester for vga cable which is connected to the lcd, if one of the wire is not present or damage and interchange the lcd will give information which wire and pin number is abnormal, the problem for the vga i need to check is has a 15 wire connected against the pin which is tottaly different with the vga cable you can buy from the local market. i really apreciated it alot for your help, i want to interface this project to my arduino duemilonove.
thank you so much
May 14, 2012 at 11:18 pm
Hi Jeremy,
Just wanted to say thanks for your tutorials. There great !!!