Robust design combining 74HC595, ULN2803, UDN2981 and BC327

In some situations, in your designs with Arduino and microcontrollers, you can use a shift register like 74HC595 to directly trigger LED, LED array and displays, but if you check the datasheet, you will see that you need to be careful with the maximum current in each output and also with the total current do not damage the device. These are important information that we do not normally care about in our projects at home (including myself) and I would like to explain this problem to you and then you can go ahead applying more reliable and robust solutions! This overview will help you understand differences and design alternatives using the 74HC595, ULN2803, UDN2981 and transistors. I hope you enjoy it and that it will be useful.”

Link