Chaining Shift Registers (74HC595 PCBs)

IMG_20140916_123053I felt like doing some soldering as I wait for some PCBs in the mail, so I decided to assemble two more of my 74HC595 shift register breakouts. Up to now, I still hadn’t checked to see if the boards chain together as I designed them to. I chained them to the setup I already had with my first breakout board test and it was great to see that they work together just fine.

IMG_20140916_123258Shift registers can be a little confusing to program at first, but the benefit of being able to control so many outputs using just three pins is worth the learning period. Today, I controlled 48 outputs with my little Attiny85, though I didn’t bother setting an LED up to all 48 for the demo. For the new shift registers, I put an LED on every other output.IMG_20140916_123250These are the newly assembled breakouts. You can see the jumper wire that corrects the missing trace problem I discovered a little while back. For these boards, I decided to solder the output headers so that they plug into a breadboard. I don’t have enough male-female jumper wires to use them as I did before. Doing it like that makes everything messier anyway. I decided against soldering the boards directly together in case they didn’t work. If and when I use these in a project, I will solder them together by the headers.

Here’s a video of my example program. It’s just each shift register running from the first to last output.

The reason why the LEDs on the mini-breadboards look like they’re blinking is because there are times when all of the LEDs are off because they’re connected to every other shift register output pin. The LEDs on the large breadboard (blue LEDs) fill up all 16 outputs of those two shift registers so their sequence is a lot more fluid.

Here’s a screenshot of the loop code:codeLike I said earlier, all the code does is run through each output of each shift register. The for loops make it so that all shift registers are doing the same thing (each “data” byte is the 8 outputs of each shift register). Also, I probably should have declared “o” earlier in the code… Anyways, check out my shift register tutorial for more information on programming them!

Thanks for reading!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s