OK, a few revisions have been made to the water management PCB, mainly to reduce the possibility of the brushed DC motors in the water pumps from causing the MCU to crash, with the other changes to the I/O connector positioning & finally upgrading the reverse blocking diode to a 10A capable version rather than 5A.
Having two separate water tanks on nb Tanya Louise, with individual pumps, meant that monitoring water levels in tanks & keeping them topped up without emptying & having to reprime pumps every time was a hassle.
To this end I have designed & built this device, to monitor water usage from the individual tanks & automatically switch over when the tank in use nears empty, alerting the user in the process so the empty tanks can be refilled.
Based around an ATMega328, the unit reads a pair of sensors, fitted into the suction line of each pump from the tanks. The calculated flow is displayed on the 20×4 LCD, & logged to EEPROM, in case of power failure.
When the tank in use reaches a preset number of litres flowed, (currently hardcoded, but user input will be implemented soon), the pump is disabled & the other tank pump is enabled. This is also indicated on the display by the arrow to the left of the flow register. Tank switching is alerted by the built in beeper.
It is also possible to manually select a tank to use, & disable automatic operation.
Resetting the individual tank registers is done by a pair of pushbuttons, the total flow register is non-resettable, unless a hard reset is performed to clear the onboard EEPROM.
View of the main PCB is above, with the central Arduino Pro Mini module hosting the backend code. 12-24v power input, sensor input & 5v sensor power output is on the connectors on the left, while the pair of pump outputs is on the bottom right, switched by a pair of IRFZ44N logic-level MOSFETS. Onboard 5v power for the logic is provided by the LM7805 top right.
Code & PCB design is still under development, but I will most likely post the design files & Arduino sketch once some more polishing has been done.