arduino + 8x2 lcd (lots of them)

hi all!

wanted to ask if anyone could tell me what is the best way to drive 24 8x2 lcd´s from one arduino?

thanks!

Would rather depend if the 24 are to display the same thing at the same time or not. Getting them to display different stuff is going to get VERY complicated (and slow) with fancy code and not a few shift registers. Wiring them in parallel may well work (entirely untried) if they are to display the same thing.

actually they should be independent.. how slow would it be? is there any way to speed up the process? additional hardware? maybe using 2 arduinos? thanks for helping!

The answer is “No” :wink:

At least, not until you give us some idea of what “best” means to you. “Cheapest”? “Fastest”? Easiest to wire"?

It’s also really important to know (as pluggy mentioned) how frequently you need to update the displays, and how far they’ll be from the Arduino (I2C is fast, but can’t be used with long wires).

very well then :) i guess id go with easiest to wire!

regarding refresh rate, im not planning to do any graphics with it, it should just display static text,which would change every once in a while. i could live with refresh rate of 100ms... regarding the wire distance, i guess it would be max. 20 cm. is it doable?

thanks!

My inclination is to build them in 2 banks of 12, with the data, address, and R/W lines on each bank wired in parallel and driven by an MCP23016. The "E" lines would be individually driven by a 4514, as described in this thread.

It might be that it's safe to drive all 24 displays from one MCP23016, and I'm being too conservative.

I've actually done a little trading off of "easiest to wire" against "less code and faster execution": to maximize "easiest to wire", you can use 8-bit I/O expanders (like the PCF8574 with a modified version of this library) and connect the LCDs in a 4-bit configuration.

Since you'll only be updating one display at a time, you can parallel the 4 "address" bits on the 4514s, and just pulse the separate strobe line of the one you want to update.

try simple things first:

Run all 24 data pins together, all 24 R/W pins together, and separate E's.

Probably would work.

The LCD probably takes microamps of input current, so the Arduino shouldn't break a sweat driving 24 of them. You might use a series resistor, just because you get a fair amount of capacitance from all of that, but I bet you don't really need it.

try simple things first:

Run all 24 data pins together, all 24 R/W pins together, and separate E's.

Probably would work.

The LCD probably takes microamps of input current, so the Arduino shouldn't break a sweat driving 24 of them. You might use a series resistor, just because you get a fair amount of capacitance from all of that, but I bet you don't really need it.

Yep, that should work. Stick it all on an arduino mega and you should be able to do that.

You just have to creata a new LCD instance in your sketch with different enable lines for each LCD.

Mowcius

Hi, Here is a library for a special type of displays driven over SPI. http://code.google.com/p/doglcd/ You can drive several of these displays independently. All displays share 3 data-lines and need only single dedicated line to enable/disable them. So 10 displays would require 3+10 IO-pins.

Eberhard

sbx:

This might help get you started: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1265969050/13

Don