So last year I was introduced to something called a shift register as part of my digital electronics course. The functions seemed pretty boring to me at the time ( multiplying and dividing binary numbers by two oh wow) that sounds boring doesn’t it? Well one really useful function of a shift register is that it can be used as a serial to parallel converter.
Since I love playing around with microcontrollers I decided to get me an LED matrix to try with my beloved Arduino UNO.
The LED matrix in question was a 7×5 common anode type with a massive 14 pin-out underneath it :0, now there was a problem. How do I connect a 14 pin device to my ‘lil Arduino UNO with 13 digital output pins??
The solution was to use two 74HC595 8 bit shift registers! Basically what I did was use one pin to output binary 1’s and 0’s serially from the Arduino and another four from the Arduino to control the IC namely clock, latch,clear and output enable. So the 8 bits of serial data would come into the 74HC595 and be output parallely (is that a word?) on the 8 output pins QA to QH, those 8 ouput pins would be used to address the 7 rows of the LED matrix. I used the second 74HC595 IC to adress the 5 columns of the LED matrix.
Because I’m a BAWS I attached two LED MATRICES together to make a 7×10 LED Matrix with a 70 LED’s!! to control this beast I had to make use of four 74HC595’s and two UDN2981’s to supply enough current to the LED Matrix because the 74HC595 can only supply 35ma of current per pin which is enough to light one LED to full brightness.