Hi,
I'm quite new to Arduino, electronics, and this forum. But willing to learn !
I have a project where I would like to have several (about 8 ) small graphical LCD (or OLED) displays, to display small pictures of people, not moving (set up at launch and fixed). The displays resolution should be something like 64x64, and, although not the ideal, grey levels could be okay instead of color displays.
I have read stuff about LCD displays, and I can see three main issues about this that I don't really know how to resolve.
1/ each display seems to use at least 3 pins on the arduino, so connecting 8 displays would need a lot more pins than available, so I guess I would have to use some multiplexing; would you have any clue about how to do this ?
2/ the Arduino has a very small amount of RAM (on the UNO, even a black & white 64x64 image doesn't fit) so I would probably have to load a part of the image, send it to the display, load another part, send it, ...). Is it possible ?
3/ As I don't keep images in memory, will the displays be able to keep it displayed ?
There are displays available with different types of serial interfaces. If you can find SPI interface displays, they all share the Clock, Data In, and Data out lines, you just need 8 unique Slave Select lines - these can direct from pins, or be from an external register - also driven by SPI. In that case, you just have the 3 SPI lines and 1 slave select line.
Browse around here
You can install an external large memory, pull images from there to send to the displays - also accessed via SPI, or I2C.
SPI displays usually require an additional addressline (command vs data). But very often you do not need a data in.
Also i would prefer a simple demultiplexer for the chip select lines (e.g. HC138)
This will be 7 (clock, data, address, 3x demultiplexer, 1x chipselect) lines to connect 8 displays.
Bitmaps can be stored in flash memory (PROGMEM) and transfered directly to the display.
A 64x64 bw picture uses 512 Bytes, 8 picture would occupy 4 KB out of 32K flash.
The picture usually stays in the internal RAM of the display until it gets overwritten.
SPI displays are also available from EA (www.lcd-module.de). See for example DOGS102.
"But very often you do not need a data in."
If you are using the hardware SPI tho, the pin is committed, and cannot be used for other functions.
From the '328 Summary Data Sheet 8271D–AVR–05/11:
"When the SPI is enabled, the data direction of the MOSI, MISO, SCK, and SS pins is overridden
according to Table 19-1 on page 170."