ELEC-0116 shift register

How to daisy chain 74hc595n shift registers

In the previous post we learned how to use a 74hc595n shift register.  I mentioned briefly that shift registers could be daisy chained – connected end to end – to increase the number of available connections without using extra resources on the Arduino.  In this post we’ll cover why daisy chain shift registers, how to plug them together, what changes in the code, and show some examples in a video at the end.

Why daisy chain?

A normal shift register has eight output connections that you can control.  Daisy chaining effectively creates a 16-output connection.  You can take this further to make 24 output, 32 output, and so on.  How far can you go?  Let me know when you get there.

How to connect daisy chained shift registers

Let’s compare the schematic diagram for one shift register and the schematic diagram for two shift registers daisy changed.  I think the side-by-side makes this pretty clear.

shift register kicad schematic layout

daisy chained shift registers

 

I’ve chosen to connect both SRCLK, both SRCLR, both RCLK, and both EO.  Kicad labels the EO pin as ‘G’ 😛  This makes both chips work in lock step without using any extra pins on the Arduino.  Yes, EO could be connected to the 5v line to be always on, freeing up Arduino pin 2.

I also connected the SER pin (14) of the second shift register to the QH’ pin (9) of the first.  When a value is shifted in 8 places it will reach the first latch of the second shift register.

What changes in the shift register code

Two digits are all that change from the previous tutorial’s shift register arduino sketch.  I’ve made a whole new github project for this daisy chain shift register project, just to be safe.

#define TOTAL_SHIFT_PINS  16  // was 8

Good thing I used TOTAL_SHIFT_PINS throughout the code instead of magic numbers.

Video

Printed Circuit Board

Maybe all those wires are too messy for your taste.  No worries!  I’ve designed a PCB that should make everything a neat and tidy package.  Pretty easy when I’ve already go the schematic diagram done up.

elec-0123 daisy chain shift register led demo

You’ll find it in the github project, or comment below and I’ll see about getting one made for you.

See Also

[products skus=’ELEC-0004, ELEC-0116, ELEC-0067, ELEC-0088, ELEC-0089, ELEC-0090′]

Only registered users can comment.

  1. It is possible to shift between all of those pretty sequences with a push of a button ?

    1. Sure! There’s lots of unused pins on the Arduino. One of them could listen for the signal from a button, and when the button changes from high to low (or vice versa) it would change the sequence at that time. Would you like a tutorial about buttons?