I have a project where I'm driving a number of old 5x2 character LCD displays. To keep the pin count under control, I'm using 74HC595 shift registers and the ShiftLCD library to drive them.
I've wired up the LCDs to the shift registers and tested them individually, and they all work.
Now for the vexing part. If the signal wires from the Arduino to the shift register are longer than about 4-5 inches it stops working. For my project I need to have these LCDs some distance from the Arduino. The closest is about 9 inches and the farthest will be about 5 feet.
I've read that it's especially important to have filter caps right across the power pins of the shift register, and I do. I tried doubling up the filter cap and that had no effect.
Any idea what's going on? Is it inductance or capacitance in the wires? I tried replacing my solid core individual wires with a short piece of ethernet cable thinking that the twisted pairs might help, but it doesn't.
The filter cap should be across the power pins of the shift register instead.
If you want get technical, ALL TTL (5V logic) ics should have a 0.1uF cap AS CLOSE TO THE POWER PINS AS POSSIBLE (1 to 5mm).
I have been told by someone who never gets tired of correcting me that this is also true for CMOS ics. I am not going to argue with him
because I don't want my head ripped off... XD
Someone should really revise the ShiftOut tutorial page. The filter cap should be across the power pins of the shift register instead.
This has proven to be impossible -- we have been trying for years.
The Arduino tutorial pages are the internet equivalent of the 'Roach Motel' from the old Black Flag ads. The tag line was "Roaches check in, but they don't check out!"
I'd recommend filing a bug report.
It isn't hard to do and the arduino team really does read them and fix things,
particularly if the report is concise and either includes or proposes the fix/solution.