}

9/25/2012

How to use a 16X2 LCD display with an Arduino, TI Launchpad, and standalone MSP430

16X2 LCD display - HD44780 controller- $2.26 on ebay
I ordered a few 1602 16X2 LCD displays from Wun Hung Lo, Inc. and shot video of trying them in three different use cases - the Arduino Uno, TI Launchpad MSP430 running Energia, and an MSP430G2553 in a standalone breadboarded configuration, again running Energia.

Why use a parallel LCD when there are easier to use serial LCD displays and LCD shields available?  Price is a big consideration, but compatibility is important too.  The 16X2 LCD I use in this video has the Hitachi HD44780 controller on it, which is compatible with  every flavor of microcontroller out there.  There is also very good documentation available, which I'll get into in a moment.

The price is certainly the best thing about these displays - I bought these for $2.26 apiece, shipped.  Compare that to $13 for an i2c version of the same display, or $8 bucks for an Arduino shield version of the same display.  All these prices are the current eBay prices from Chinese suppliers and include shipping.

Be careful where you source your displays from.  I was astonished to see the difference in cost from different suppliers. For instance:
Standard 16X2 LCD at Adafruit - $9.95 - does include headers and a pot
Standard 16X2 LCD at Makershed - $12.00 - includes headers, but no pot
16X2 LCD at Digikey - $20.33 in single quantities

Or you can get them on eBay for $2.26 apiece, shipped.

How do you use the LCD display?  There is an awesome tutorial at Adafruit on using character LCD's.  This is the tutorial I used for connecting the LCD to the Arduino Uno and the TI Launchpad, and it worked flawlessly.  Adafruit has put some serious effort into learn.adafruit.com and it is paying off.  

You are basically going to need 6 pins on your microcontroller.  If you are using an Arduino Uno or similar, you will still have 14 pins left, which isn't too bad.

The Adafruit tutorial advises you to use a 10K potentiometer for contrast adjustment.  I think the 10K value would be the minimum - I had no issues whatsoever using an 85K pot.

Running Energia on the TI Launchpad went off without a hitch.  The Arduino code compiled and uploaded to the Launchpad just as it did to the Arduino Uno - same exact code and wiring.  Awesome!  When I moved the MSP430 chips to the breadboard, I had a microcontroller, LCD display and a few other parts that totalled less than $5 for the entire system.  That's cheap!

Playing around with these displays, I did find out a few things.  They will work on 3.3 volts, although they look dimmer and the refresh when changing characters is slow.  When I tried the display at 3.3 volts, I had to dial all of the attenuation out of my pot.  I also found out that the LM1117 voltage regulator does not have the same pinout as the L7805, and it gets very hot when wired up incorrectly!  Also, the version I had was -3.3 volts, rendering it useless for my intended application.

At the end, I even ran the MSP430 chip on 5 volts instead of 3.3.  It didn't appear to have any immediate ill-effects after running for 10 minutes or so.  I'm a little curious what amount of voltage it would require to make the smoke come out of the MSP430?  And what is the long term effect of running the MSP430 over-voltage?  I may have to do a little testing here...

In short, these 16X2 LCD displays from eBay are an awesome deal, and very easy to use.