stop noise from motor to Arduino/MCU

Discussion in 'General Electronics Chat' started by bug13, Oct 25, 2013.

  1. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    Hi guys

    I have this problem, I got a lot of noise from the motor to my Arduino board, how can I stop this? It some time reset the board as well. my 9V supply is from a switch mode power supply.

    I am just assuming the noise is from my DC motor, I don't know what else it would from.

    H-Bridge L9110H : http://nvhs.files.wordpress.com/2013/02/datasheet-l9110.pdf

    [​IMG]
     
  2. wmodavis

    Well-Known Member

    Oct 23, 2010
    737
    150
    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.
     
  3. GopherT

    AAC Fanatic!

    Nov 23, 2012
    5,984
    3,722
    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.
     
  4. tubeguy

    Well-Known Member

    Nov 3, 2012
    1,157
    197
    Also, try using separate ground wires for the arduino and the Motor/H-Bridge.
     
  5. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    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.

    [​IMG]
     
  6. russ_hensel

    Well-Known Member

    Jan 11, 2009
    818
    47
    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?
     
  7. TorontoBob

    New Member

    Oct 5, 2013
    15
    4
    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.
     
    bug13 and GopherT like this.
  8. GopherT

    AAC Fanatic!

    Nov 23, 2012
    5,984
    3,722
    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.
     
    bug13 likes this.
  9. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    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???


    [​IMG]
     
  10. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    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!!
     
  11. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    I think it's intereing to upload the picture too

    [​IMG]
     
  12. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    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??
     
  13. GopherT

    AAC Fanatic!

    Nov 23, 2012
    5,984
    3,722
    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.
     
  14. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    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:


    [​IMG]
     
  15. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    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:


    [​IMG]
     
  16. Gibson486

    Member

    Jul 20, 2012
    199
    12
    At some point, the two grounds need to be connected. If you isolate them, then measuring ground to ground is pointless....
     
  17. GopherT

    AAC Fanatic!

    Nov 23, 2012
    5,984
    3,722
    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.
     
  18. ronv

    AAC Fanatic!

    Nov 12, 2008
    3,281
    1,232
    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.
     
  19. tubeguy

    Well-Known Member

    Nov 3, 2012
    1,157
    197
    And for good measure, ground the motor case to the common ground point.
     
  20. bug13

    Thread Starter Well-Known Member

    Feb 13, 2012
    1,208
    38
    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?)
     
Loading...