getting started in shift registers

Hey everyone! Can you please explain me more deeply the proper way of using a shift register? There are quite a few youtube videos on how shift registers work and how to use them, even here on forum but in my point of view i think they are not used properly.

Let’s say i have an 74hc595 (which i have :slight_smile: ) and i want to light up all 8 leds at the same time. It works preaty well but i think it’s a little bit overused, isn’t it? 20mA each led * 8 leds = 160mA * 5V = 0.8W (isn’t that to high?).
What if instead we light up only one led at a time, latch it then shift it all the way to the and and the bring another one super fast? Isn’t that a solution?

Hi and welcome,

You are correct, many '595 tutorials and instructables ignore the absolute max characteristics of the chip. Most of them get away with it because what probably happens is that if you source too much current, the register's output voltage drops, reducing the current and the led brightness. If the '595 is sinking current, however, there's a danger of overheating and shortening the life of the '595.

Your idea avoids those issues, but in effect you are multiplexing the leds, so reducing their brightness to one eighth of the brightness that a single led would be. Although each led receives 20mA while it is briefly lit, it is not lit at all for seven-eighths of the time, so its average current is 20/8 =2.5mA, so not very bright.

Your best bet for the brightest possible output of all 8 leds is to calculate your series resistors to stay within the 80mA (I seem to remember) limit.

Alternatively replace the 74hc595 with one of its higher-current equivalents, the tpic6-(a/b/c/d)-595. Note these can only sink current, not source, but much more of it. Or place a ULN2803 between the 74hc595 and the leds. Again, the '2803 can only sink current.


74HC595 has 70mA Absolute max limit, so you were close PaulRB.
Agreed, TPIC6B595 is an awesome chip for combined shift register/high voltage (50V)/ high current sink (150mA continuous per IO). For things like sinking current from individual LEDs or sinking current from 12V LED strips, it is awesome.
I daisychained 20 of them to drive this 5 x 20 LED matrix:

persistence of vision would allow that pulse to deliver the full brightness for that brief period.

so the calculated total current is not the same as perceived brightness.

also, if you run your LED's at 2.5 times the current, you should be in the safe zone (80%) of the maximum and be able to put out a much brighter pulse. so much brighter that you would perceive it to be brighter, but it would draw about 1/4 of the current.