stop noise from motor to Arduino/MCU

wmodavis

Joined Oct 23, 2010
739
Possibly use a separate PS or decouple the motor PS lead and/or the power to the arduino. But to know which you need to determine where the noise is getting in. Could be conducted or radiated. If conducted - decouple. If radiated - shielding in order.
 

GopherT

Joined Nov 23, 2012
8,009
From the main power feed, add two diodes (one to microcontroller oand one to the motors). Add a power supply filter capacitor after each diode.

Also, if you are not using a 9volt battery and rather large motors, you may not be able to solve the problem unless you put two, three or four batteries in parallel.
 

Thread Starter

bug13

Joined Feb 13, 2012
2,002
The picture might be a bit too hard to see all the details, but I think more info might help.

So I add all of the big caps I have to the DC motor, all up about 4.4mF, and add an 330uF after a diode as GopherT suggested.

Still pretty noisy, so I power the Arduino with a separated PS:

Same PS: ~1.3V ripple
Separated PS: ~600mV ripple

So I assumed the noise is from inductive coupling??

Oh, they have different ground wires too.

 

russ_hensel

Joined Jan 11, 2009
825
Some suggestions:

physically separate the high current and low current parts of the circuit.

ripple and noise are not the same. ripple is a low multiple of the ac power input .
look at the frequency characteristics of the noise on the ps.

see if there is noise on the ground line, grounding the scope at different points look for
noise elsewhere on the ground.

I had noise problems once that seemed intractable, using ferite beads on the ps lines finally fixed it ( in conjunction with other stuff ).

are you using the regulator on the arduino board? look at the ps pin of the arduino for noise. what do you see: amplitude and frequency?
 

TorontoBob

Joined Oct 5, 2013
13
I always put a disc capacitor 10nf across the motor as close to the motor as possible to reduce RF noise off of the brushes. And a couple of small ferrite beads in the motor lines may help too.

Do you have your L9110 power supply bypassed with a 0.1uf disc or monolythic (ceramic) cap as close to the IC as possible? Remember the transients could be pretty fast, and electrolytics just can't handle the higher frequency ones.

Other than that I would look at the other previous suggestions.
 

GopherT

Joined Nov 23, 2012
8,009
I always put a disc capacitor 10nf across the motor as close to the motor as possible to reduce RF noise off of the brushes.
This is a huge benefit - I just do it without thinking so I didn't mention it. Definately do this if you haven't done anything to start with.
 

Thread Starter

bug13

Joined Feb 13, 2012
2,002
OK

here is what I have done:

added 100nF caps to the H bridge
added 10nF caps to the motors
I have measured the ground between the two H bridge, I got ~12Vpp (OMG)

so I power one motor with 5V, with a separated 9V power supply to the Arduino.

When the motor is off, I got a clean 5V on the Arduino 5V rail.

When the motor is on, I got this: (Motor and Arduino is powered by separated PS)
So, do I have a very bad motor??? Should I get some better motors???


 

Thread Starter

bug13

Joined Feb 13, 2012
2,002
Ok, just before I go to bed, I wrap the motor up with tinfoil, the the 5V rail on the Arduino is still look like the screen capture above.

Mmmm.... This is very interesting to me, I have no idea how to fix this thing, anyone got any ideas?? I would love to know!!
 

Thread Starter

bug13

Joined Feb 13, 2012
2,002
it seems like no one is interested in this, but anyway, here is my latest finds:

I try the same step up with different DC motor from an old printer, (separated PS, filter caps etc..), there is till noise in the 5V rail of the Arduino, but the ripple is within ~150mV, no random reset, no MCU lock up.

So I the problem seem to be my DC motor, wonder what kind of motor should I be avoiding in the future??
 

GopherT

Joined Nov 23, 2012
8,009
Use this with a 100 nF across the motor terminals (right on the motor). Also make sure you have good ground connections to a common grounding point near your power supply. Isolating grounds means you have floating signals to your H-Bridge. That is not good.

Also, add a ceramic 100 uF in parallel with each cap shown.
 

Attachments

Thread Starter

bug13

Joined Feb 13, 2012
2,002
Use this with a 100 nF across the motor terminals (right on the motor). Also make sure you have good ground connections to a common grounding point near your power supply. Isolating grounds means you have floating signals to your H-Bridge. That is not good.

Also, add a ceramic 100 uF in parallel with each cap shown.
Hi I think I have confused you (again?), but really appreciated your help.

When I say separated PS in my last two tests, my motor and Arduino is on separated PS, they don't have common ground.

The two PS is totally separated, like this:


 

Thread Starter

bug13

Joined Feb 13, 2012
2,002
I have done the motor test with separated PS (totally separated, no common ground), I have tried no cap on motor, 10nF cap on motor, 100nF cap on motor, still pick up something like this on my Arduino board:


 

GopherT

Joined Nov 23, 2012
8,009
1) Add the diodes and capacitors as I have shown above
2) Connect the grounds.

3) Increase the size of the cap across the motor terminals to 100nF.

Record Power Supply on Arduino with Scope. You will see a rock solid signal - definitely no 'hair' like you have on your current signal.
 

ronv

Joined Nov 12, 2008
3,770
In addition to the cap across the motor it is often good to add a pair from each motor lead to the frame of the motor. What you are seeing is brush noise.
 

Attachments

Thread Starter

bug13

Joined Feb 13, 2012
2,002
At some point, the two grounds need to be connected. If you isolate them, then measuring ground to ground is pointless....
Hi Gibson, my intention is to find the cause of the noise, is it mainly bad grounding or, EMI?(is it the right term to use?)
 
Top