LCD Options and general information

Hello,

I plan on attaching an LCD to an Arduino Duemilanove.

I have been doing some researching LCD screens, and I'd like to use a 20x4, however if this is overly complicated I could be happy with a 16x2.

I've noticed that the LCD screens can use 14-16 pins, and that there are other options such as screens with an on board PIC that take a serial input, using only 3 pins.

I assume that any HD44780 LCD will work. Is it safe to buy the cheap ones on ebay from China?

I don't know much about librarys, used to run the screen, I have read there are different kinds of libraries and some are better than others... 4-bit, 8-bit...

Considering that I don't have any experience in this area, but am willing to learn...

What am I getting into here? What would be a suitable option or direction for me to focus on? What is the general breakdown of interactions and connections that I should learn about to get this set up?

Is there a "For Dummies" book on this subject?

Thanks for your help, I appreciate it.

I've bought cheap HD44680 on ebay (althought I haven't bought from China) without problems. The 20x4 have identical connections to the 16x2. You don't need 14-16 pins on the arduino, most of the 16 on the LCD needn't be connected. 6 data pins + 2 power connections is all you need for a standard parallel LCD. The serial ones are much more expensive.

I have bought other stuff from China on ebay that showed a marked saving. The typical 2 week shipping from China gets a bit wearing....

Where I started with LCDs : http://www.skpang.co.uk/content/view/29/42/

When you've got it going dump the 4bit Library it uses, The built in LiquidCrystal is far superior.

I have a(2 - one's in a project already) 20x4 Serial LCDs (didn't have enough pins left in the project for a non serial one) and a 40x4 non serial one. The Serial ones only need one data line, the other two pins are power and ground.

I need 8 pins for my 40x4 (rs,rw,en,en1 and 4 data lines) but it normally leaves me ample room for other things. I am currently using my 40x4 as a display for music playing info (track, time, bitrate volume etc) and lyrics on the bottom two (well, impelementing that in the next few days). For the audio I am using the rogue robotics rMP3 board and becuase that uses serial I still have a few pins left for buttons.

Anyway that went a bit off track.

You can use any HD44780 displays (almost - some funny line length ones can be a pain) with the arduino pretty easily. Some large LCDs (like a 40x4) require a few more pins (for the second enable pin etc) but they are all simple to use. The libraries are all written for you and using the libraries is a piece of cake. LiquidCrystal is normally best (built in to the arduino IDE).

Serial LCDs are good if you are short of pins or code space but they are much more expensive.

Basically, you can just buy any old HD44780 display off ebay and it should be fine for yuor arduino.

Mowcius

Donald:

I've noticed that the LCD screens can use 14-16 pins,...

Many of the newer devices have 16 pins, but two of them are for a backlight which really doesn't have much to do with the LCD except to make it more visible. So what you are left with is the basic 14 pin interface that has been around for decades. Of those 14 pins two are used for power and one for contrast and they do not connect to your Arduino. So you are now left with an 11 pin interface. Three of those (RS, R/W, and E) are control lines but only two (RS and E) are essential - the R/W pin can be grounded without giving up much. This leaves a 10 pin interface of which 2 are control and 8 are data. The chip is capable of being used with only 4 data lines but the programming is more complicated than if all 8 are used. BUT if you are using a prewritten library, where someone else has done that complicated programming, there is really no reason not to use the 4-bit option. So the bottom line is that you need to use 6 I/O pins to interface your Arduino to a character mode LCD.

I don't know much about librarys, used to run the screen, I have read there are different kinds of libraries and some are better than others... 4-bit, 8-bit...

The LiquidCrystal library provided with Arduino v0018 is the only library you need to use. It works with either the 4-bit or the 8-bit data interface and you can also connect the R/W line although the current library does not implement any of the features requiring this connection.

What is the general breakdown of interactions and connections that I should learn about to get this set up?

Just go to the tutorial in the playground (http://arduino.cc/en/Tutorial/LiquidCrystal), connect your LCD as shown, cut and paste the example code and you are on your way.

Don

Thank you, all of you, for your help, I'll be on my way soon, and then probably back to ask some more questions.

I plan to go with a 20x4 display, and follow the links provided.

It's nice to have this forum!

Cheers Donald

It's nice to have this forum!

Sure is!

I plan to go with a 20x4 display

Sounds good. When you get it you will find out how easy it is to control ;)