Pump motor causing problems with Uno

I have a fairly straightforward motor control system for an underwater robot, and it all worked well until we added a small DC impeller pump Gikfun DC 2.5V-6V Micro Submersible Mini Water Pump with 1m Silicone Tube (Pack of 3pcs) EK1374 - Amazon.com .
Here is a diagram of the system

The Arduino Uno controls 3 thrusters (waterproof DC motors with propellers) via 2 L298n motor controllers, 4x20 LCD display on I2C, and an Adafruit pressure sensor also on I2C. The entire system is powered by a 12V battery, with the 12V going to the Arduino Uno and to the motor controller boards.

We added a DC pump that isused intermittently, and added it the to 12V DC power, with a simple pushbutton control. When we push the button, it resets the Uno or hangs it up.
Solutions we tried: 1) Use a CastleLink BEC to power the pump motor and separate it electrically from the system - no change.
2) Keep a 5V source on the Uno through the USB cable (connect to a computer or power pack). This worked most of the time.
3) Power the pump through the spare channel on the L298n, controlling it with the switch through the Enable pin. Still messes the display and hangs up the Arduino when the button is pressed.

My guess is that there is alot of noise coming from the pump motor.
I should note that the motor is rated for 6V but we are powering it at 12V, however that has not been a problem in systems that are all analog electronics.

I have no I/O pins left on the Uno to serve as input from the pushbutton and output to the motor controller, but I feel this can be solved electrically.

Your thoughts and suggestions will be greatly appreciated!

Why are you "guessing" and not actually checking to see if there is "noise" or there is a voltage drop causing the problem? People on the forum cannot do the tests for you.

1 Like

The solution is to use good engineering and construction practices: use generously over-rated power supplies, completely separate the motor power supply and the Arduino power supply, keeping motor wiring separate and as far as possible from the Arduino wiring, and to add individual brush noise filtering capacitors to the motors.

Shielded wiring may be required in some cases, and be sure to connect all the grounds in a "star" configuration.

Is there a kick back diode connected across the motor? It's surely needed.

  • Your 2nd motor controller wiring needs to be corrected.

Thank you for recommendations for parts - we've got them in the lab and I will try it out.

thanks for pointing thta out - it is correct on the actual component but not updated in the drawing

Nice project. Hint: you are burning a lot of your battery energy using these. I recommend you get some drivers that use MOSFET outputs. Take the current the motor draws times 3 (voltage drop in L298) that will let you know how much is just warming things up.

If you have any unused Analog inputs they can be used as digital ports.

Following the advice given previously adding a small cap across the switch can also help.

This I would think is the major cause of your problem. Try running it at 6V. Even a seperate battery would help but be sure the grounds are all connected.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.