In our previous article on 74HC595 Shift Register, we ave discussed the minimum basic theory. In this Article, We Will Discuss is How To Connect 74HC595 Shift Register With Arduino and LEDs. From the diagram on previous article, we can say that one side of the IC is for connecting with Arduino, another with things like LEDs. It is not very complex, although it appears to be complex.
Connect 74HC595 Shift Register With Arduino
Place the shift register on your breadboard, usually that is the middle of breadboard where each side of the IC will be on separate side of the breadboard (will not have short circuit). Identify the notch on IC. It is top side. On the left side to it, the pins are 1-8 (1 is just beside the notch). Opposite to pin 1 will be pin 16 (right hand side of the notch). That is VCC pin.
Pin 16 (VCC) —-> 5v Pin on the Arduino
Pin 10 (SRCLR) –> 5v Pin on the Arduino
Pin 8 (GND) —–> GND Pin on the Arduino
Pin 13 (OE) —–> GND pin on the Arduino
Pin 11 (SRCLK) –> Pin 11 on the Arduino (clock pin)
Pin 12 (RCLK) —> Pin 12 on the Arduino (latch pin)
Pin 14 (SER) —-> Pin 13 on the Arduino (data pin)
Pin 9, Pin 15 on the right hand side remained unoccupied. Pin 9 never will be used. Pin 15 will be another output pin (connected to LED). Now, we will connect 8 LED to the output pins to the 74HC595 shift register. Add a 220 Ohm resistor with each LED to reduce the current. So the LED connections are :
Pin 1 —> LED1
Pin 2 —> LED2
Pin 3 —> LED3
Pin 4 —> LED4
Pin 5 —> LED5
Pin 6 —> LED6
Pin 7 —> LED7
Pin 15 –> LED8
This will be the complete connection :
Upload this code to Arduino :
int latchPin = 12;
int clockPin = 11;
int dataPin = 13;
byte leds = 0;
int currentLED = 0;
leds = 0;
leds = 0;
if (currentLED == 7)
currentLED = 0;
shiftOut(dataPin, clockPin, LSBFIRST, leds);
It will create a chaser like effect.
I have shamelessly copied many things from Rob Carr (Twitter : @iamrastating) because I found he written in most easy way for the kids. I made the connection part probably more vivid. In next guide, we will vary the code to create different effects.