Multiplexing With 74HC595 Shift Register


I have been interested in microcontrollers lately specifically in the Arduino platform. The platform often offered in tiny blue thingamajigs is easy to use, both in hardware and in software. You can program the controller to blink an LED, produce a sound, or even move a motor. There are tons of stuff that you can do with it, but what really interests me is using it with multiplexing.

Given the fact that the Arduino has limited pins for different electronic components, multiplexing will be very useful because this can virtually add more pins to the controller.

For the example below, I used an Arduino Uno R3 that has 14 digital I/O pins, (6 of which can be used for PWM output), and 6 analog inputs.

Multiplexing Multiplexing 8×8 LED Matrix

This kind of LED Matrix has 24 pins (please see data sheet) and using it would be almost impossible when just relying on the limited pins that the microcontroller (Arduino R3) could offer. In order to solve this, we will be needing multiplexers.

Multiplexing Multiplexing 74HC595 Shift Registers

This specific multiplexer is an 8-bit shift register from Texas Instruments. It can be controlled using just 3 pins and can also be daisy-chained to another multiplexer for more complex circuits.

Multiplexing Multiplexing

To control the 2-color 8×8 LED Matrix, 3 74HC595′s were daisy-chained and connected to just 3 I/O pins in the Arduino.