Pictured below is a diagram of an irrigation system comprising three water tanks located on three terraces. The lowest tank contains a bilge pump which will pump water up to the next terrace, and the tank on that terrace has a pump to send water up to the top tank.
The bilge pump has its own float switches and will, when powered, start pumping when its upper float switch detects water (full tank) and will stop when its lower float switch does not detect water (empty tank).
The two higher tanks have float switches so that their water level status can be monitored. Pictured below is the controller we built to manage the two pumps in order to best distribute the stored water across the three tanks while minimising overflow wastage. Ideally no tank should ever be completely empty, and no tank should be full and overflowing if the next higher tank is not full.
This controller, built around an Arduino Pro Mini monitors the status of the float switches of the two upper tanks to decide when power should be supplied to a pump or pumps. If for example the middle tank is full, and the top tank is not, the Tank 2 pump will be run until either the middle tank is empty or the top tank is full. If the bottom tank is full, and Tank 2 is not, then the bilge pump will fill up Tank 2.
In order to prevent multi-switching (a pump being turned on and off rapidly and repeatedly) timers are built into this controller so that a pump will always overrun by 10 seconds when it is to be turned off. This will ensure that the state of the float switch which called for the pump to be turned off will be stable and unaffected by turbulence in tank.
If you need any type of pump controller, please email firstname.lastname@example.org with details of your requirements.