I’m
working on a new project, I’ve got a
8x8 dual colour dot matrix display
(£2.50 delivered from Earthshine Design) and I want to power it from the
Arduino. One way of making a chip
like that (which has 2x8x8 = 128
LEDs)
would be to have a common ground and an additional 128 pins - one for
each LED. This, I think you’d agree, would be a nightmare, so instead
they’ve basically gone for an 8x16 grid for a total of 24 pins. This
raises two main problems:
- You can’t turn 2 arbitrary LEDs on at the same time unless they are
on the same row/column. (Doing so would actually draw a square of
LEDs.)
- My Arduino doesn’t have enough digital input/output pins
Point 1 is easily solved - we simply update just one row at a time,
letting
Persistance Of Vision (POV) do the
hard work for us. Point 2 is the subject of this post - multiplexing,
combining multiple individual signals into just one signal. I will not
be using this dot matrix display in this post, instead I will simply be
powering normal LEDs. I wanted to find out if the Arduino is fast enough
to multiplex the data through just a few pins in order to power this
display. The answer (one of my favourite answers!) is: “Yes, but not
without some hacking.”