Yeah, my bad: I promised a diagram and forgot to add it


The principle of operation: when either float switch drops down (so that tank is low on water), it activates the pump AND the respective solenoid valve to fill that particular tank, independent of the other. Obviously, we don't want to run the pump with both valves closed. Sounds simple and I would've done it without any micro at all, using just relays, but I got hung up on the client's requirement to be able to inquire the status of either tank and switch on the pump on demand (along with the respective valve of course).
Now when I say "status", in this implementation, it can only know whether the float is up (one contact closed) down (other contact closed) or in-between (neither contact closed) - it won't have any way of knowing the actual level, so it's just a dumb DPST switch there and there's no need to obsess over that too much. It's the user interface I'm most interested in, plus it's an opportunity to learn how to expand such a system in the future, for a remote pump, like I tried to do last time.
Leave a comment: