| Electronics > Projects, Designs, and Technical Stuff |
| Massive EMI issues |
| (1/4) > >> |
| OM222O:
Hello everyone I'm working on a robotics project and I was having some really odd issues. Basically I have 2 DC motors that drive the robot and they are equipped with rotary encoder. I already had a 10A H bridge as well, so I decided to use two arduinos, dedicated to motion control for each wheel. I was only testing my code on the right side arduino and everything seemed fine but when I uploaded the code to the left one, nothing worked. arduino kept getting reset and go crazy, it would lose steps and position control was dodgy. I tried literally everything you can think of: - Swapped the motors around - Swapped which arduino was controlling which motor - Swapped the H bridge that was controlling the motor - Swapped the arduinos all together! but the only thing that seemed to actually help was wrapping aluminum foil around the cables. I have used this exact motors and an arduino before and never had EMI issues (mind you at lower power levels. they're rated for 12v but in this case I must use a 4s battery pack , hence 16V input, for which I'm currently using a wall adapter during the testing phase). I'm not sure where the source of the EMI is however, the motor windings? the wires that run next to each other? (the motor comes with a 6 pin header, 2 for motor, 2 for encoder phases and 2 for 5v and GND for encoders) I have wrapped the pairs separately in aluminum foil and then wrapped another layer of aluminum foil over all of those as well, which has mostly solved the issues. no more weird rests, no more going crazy, but the left motor still loses position sometimes so I'm assuming I didn't do a great job with wrapping it. Now to the main questions: 1) Is there a way to reduce the EMI? A ceramic capacitor soldered right at the motor terminals? perhaps some back to back zener diodes rated at let's say 20V? 2) Is there a better way to wrap the wires? does some sort of emi wrapping strip exist? the kitchen foil seems too stiff or perhaps my method isn't correct? 3) Does adding a capacitor to the arduino power lines stop the potential reset issues? Some extra information: The wheels are DFRobot KIT0085 The H bridge is the MDD10 A Arduinos are nano, purchased very recently (comes with the new bootloader) |
| Andreas:
Hello, 2) the main problem is that aluminium oxidizes and so gives no good contact between the layers. Assuming the EMI source is the motor and leaves the motor housing by the wires you might want to short it back to the motor housing before it spreads over your whole cirquit. So with a better conducting material you might have luck by contacting the shield back to the motor housing (and or to the metal plate below the PCBs). Yes there are EMI-Shields for this purpose but they are not cheap. 1) a 10-100nF capacitor across the terminals might help somewhat. But it is also possible that the H-bridge cannot handle capacitive loads. You need a path back to the motor housing. So additional to the 10-100nF across the pins you need 2 * 1-10 nF from the pins to the motor housing to prevent the EMI getting from the motor to the motor supply lines. Another possibility to prevent leaving the EMI from the motor housing would be adding some inductivity 10-470uH or EMI-Ferrites into the supply lines close to the motor pins. 3) This will most probably not help as there are already some capacitors. What I would try is a 1-10nF capacitor between reset and ground pin of the processor (shortest possible connection). with best regards Andreas |
| floobydust:
Where is the robot chassis ground connection? It should have continuity only to DC(-). |
| OM222O:
The chassis is not grounded, The only ground connection to the motor is for the encoder signals. Does grounding the motor housing reduce the noise? if so I can easily do it because the power distribution board has a lot of empty grounds. Correction: I checked with a DMM and the entire chassis as well as the motor housings are grounded. I think this is because I used brass inserts and the H bridge has exposed ground pads. Now I'm wondering if this could be a ground loop problem? That seems unlikely however, since adding foil around the cables shouldn't have fixed the issue if it was a ground loop problem? |
| OM222O:
--- Quote from: Andreas on June 01, 2020, 04:58:03 am ---Hello, 2) the main problem is that aluminium oxidizes and so gives no good contact between the layers. Assuming the EMI source is the motor and leaves the motor housing by the wires you might want to short it back to the motor housing before it spreads over your whole cirquit. So with a better conducting material you might have luck by contacting the shield back to the motor housing (and or to the metal plate below the PCBs). Yes there are EMI-Shields for this purpose but they are not cheap. 1) a 10-100nF capacitor across the terminals might help somewhat. But it is also possible that the H-bridge cannot handle capacitive loads. You need a path back to the motor housing. So additional to the 10-100nF across the pins you need 2 * 1-10 nF from the pins to the motor housing to prevent the EMI getting from the motor to the motor supply lines. Another possibility to prevent leaving the EMI from the motor housing would be adding some inductivity 10-470uH or EMI-Ferrites into the supply lines close to the motor pins. 3) This will most probably not help as there are already some capacitors. What I would try is a 1-10nF capacitor between reset and ground pin of the processor (shortest possible connection). with best regards Andreas --- End quote --- Thanks for your answer! How can I connect the shield back to the housing? It's not possible to solder to the aluminum foil. I will try adding some capacitors but unfrotunetly all I currently have are small SMD ones so can't test untill I get new parts. Unfortunately the wires are really close together and I can't use ferrite beads around them. Where can I find the shileding materials you mentioned? I also have some "space blankets" which are metal coated mylar. from what I see most insulation materials are the same thing. can I use that instead? |
| Navigation |
| Message Index |
| Next page |