HEF4794 can drive more current than the 595, with the correct wiring your program does not have to change. I was driving an LED and an SSR.Yes use the resistors, at some point you'll damage parts.I don't know the max limits of daisychaining the 595 ICs but you will eventually get to the point that clocking out data takes excessive time. Another annoyance is that they like to do what ever the hell they want at power up. I think I need a reset circuit or IC to combat this. In some of the circuits I'm designing the outputs CANNOT be high until other setups happen and the microcontroller is in full control.
595's are fine, I've never noticed any signs of "IC individuality" at power-up.I played with them, "a lot", here:-http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1185507207It would take many hundred's of daisy-chained 595's before "clocking-out-data" ever became an issue.This post in particular:-http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1185507207/45#45Details the code required to only "ever" have 8 LED's on at one time, while giving the illusion that all other LED's daisy-chained via 595's, are on at the same time also. I got up to 10 x 595's, then ran out of IC's (and time) - powering 80 high intensity LEDs via 595's in this manner resulted in no blow-outs, or latency.I've got another project on the table that requires 15 595's, so when that's completed I'll post pictures as well as the code.