First of all, I apologize for the lack of a "formal" schematic... I tried to draw one out, but got buried in the nuances of it :)
Second, I've done enough research to have some idea of what my problem is: namely, I need a decoupling capacitor in the mix. Problem is, I'm new enough to this that I'm not 100% sure where to put it, nor what capacitance I should use.
So the setup:
-I'm using a Wemos(like) D1 Mini to drive 8 relays via an HC595 shift register
-The D1 Mini microcontroller, HC595, and relay module are all powered by the same 5V DC and ground
-The microcontroller addresses the shift register via 3.3VDC data pins
-The relays power a water valve via a separate 24VDC power supply and transformer - plugged into the same AC outlet
And the problem: everything works just fine UNTIL I actually add the 24VDC power load. Once that's done, the results are very erratic... usually turning on the correct valve correctly, but rarely turning it off in the same way. As I mentioned, I intuitively suspect noise in the data caused by the sudden power to the valve... but it doesn't make too much sense since everything is on different power supplies.
Any guesses as to where I need to put some capacitor(s)? Thanks!!
Seems your linked website as a very believable conclusion attached to it. I have a similar issue where the relay module would behave erratically. In my case it was when the relay module/595 chips received power before the Arduino was fully powered up. It's unlikely that a load affects your relay module as they should never be connected to the main circuit.
I guess something like a pulldown resistor on the SER, CLK and RCLK pins would solve the issue since that would kill any noise. The noise is probably the kind of voltage that BARELY registers as HIGH but highly random.
That or making the relay module only turn on after the microcontroller has finished starting up using a mosfet or something.