Multiplexing LEDs
The concept of multiplexing is an interesting and efficient one. It is the key to having a bunch of peripherals connected to our Arduino boards.
Multiplexing provides a way to use few I/O pins on the board while using a lot of external components. The link between Arduino and these external components is made by using a multiplexer/demultiplexer (also shortened to mux/demux).
We spoke about input multiplexing in Chapter 6, Playing with Analog Inputs.
We are going to use the 74HC595 component here. Its datasheet can be found at http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf.
This component is an 8-bit serial-in / serial-or-parallel-out. This means it is controlled through a serial interface, basically using three pins with Arduino and can drive with eight of its pins.
I'm going to show you how you can control eight LEDs with only three pins of your Arduino. Since Arduino Uno contains 12 digital usable pins (I'm not taking 0 and 1, as usual), we can easily imagine using...