Forum Post Title: Help with Controlling 3 Water Pumps (ZYW680) with ESP32 and MOSFETs - Issue with Multiple Pumps Running Simultaneously
Post Content:
Hi everyone,
I'm working on a project where I'm using 3x 12V water pumps (model ZYW680), which I'm trying to control via an ESP32. I'm sending PWM signals through MOSFETs to adjust the pump speeds. The setup works perfectly when I'm running one pump at a time. However, when I try to run all 3 pumps simultaneously, some of them don't turn on.
I'm using a bench power supply that can deliver up to 6A. Based on the specs of the pumps, I assumed this would be enough current, but I might be missing something.
Here's a quick summary of my setup:
Pumps: ZYW680 (12V)
Controller: ESP32, sending PWM signals
Switching: MOSFETs (IRL 520) controlling the pumps
Power Supply: 12V, 6A bench power supply
I've attached a schematic of the hardware circuit I'm using to control the pumps. As mentioned, the problem only arises when I try to activate all 3 pumps at once. Individually, they work without any issues.
Incomplete Schematic: Your schematic is not complete. R2 is in the wrong position—it’s forming a voltage divider and starving the gate of voltage. It should be placed on the PORT pin.
MOSFET Enhancement: At 3.3V, the MOSFET is only partially enhanced, which may cause it to run warm depending on the individual MOSFET's Rds(on).
Motor Definition: The motor specifications are missing crucial details like wattage or current requirements. I’ll make an assumption (SWAG) that it needs around 1.5A.
Undersized Power Supply: Based on this assumption, your power supply is undersized. Brushless motors can draw 3 to 5 times their rated current at startup. The fact that only two out of three motors are working, and any two seem to function, confirms this issue.
I admit that the one I linked is not a great deal better, but the curves are only "typical", and individual device variations can play havoc in situations where the device is limiting the current. 5V drive would certainly be better.
That is just the WRONG pump to use for this project. As the various web sites tell you, it is a brushless motor, so only pure DC will make it run, as it has it's own electronics to power the motor. Also the motor is not self priming, so you MUST have a continuous supply of water at the input side of the pump.
Ok. Thanks.
I don't see it one of the worst choices.
We really should make a small list of commonly available mosfets and modules that have reasonable performance at 3.3V. There is confusion here almost every day about this.
Apologies for the late reply. As a university student, I had some other tasks that needed my attention, but I’m happy to report that I’ve found a solution! Implementing a soft start, as suggested on the All About Circuits forum, worked perfectly, and now all three pumps can run at full speed together. According to the power supply, they consume a combined amperage of around 3A when running at full speed.
Regarding the components, I'm limited to what my university has available in the lab, so I couldn’t choose MOSFETs that are ideal for this application, but I went with the best option I had. I also know that the DC motor driving the pump is brushless and requires clean DC voltage. However, for the sake of experimentation, I wanted to see if this simple and inexpensive control circuit would work. To my surprise, the motors ran consistently, and I was able to control their speed effectively using different duty cycles.
I’ve attached a graph showing the flow rate versus duty cycle for one pump. I ran the test three different times with varying water levels in the holding tank to observe how pressure changes due to different water levels would affect the flow rate.
Run 1: The tank is filled to the brim. A duty cycle is applied to the control circuit for 10 seconds, then the pump is switched off. The amount of water transferred to another tank (on the same elevation) is measured, and the flow rate is calculated.
Run 2: The tank is filled halfway.
Run 3: The tank is just above a quarter full.
Regarding the pumps, although they’re labeled as "non-self-priming," they feature a small plastic impeller that doesn't block the inlet and outlet ports from each other. As long as the water source (a 10L tank in my case) has a water level higher than the pump’s output port, there’s no need to prime the pump after each refill.
I haven’t yet tested whether the pump can move water when it’s placed above the water line and correctly primed, but my current setup doesn’t allow for that kind of test at the moment.
Thanks again to everyone for their help and suggestions!