DC MOTORS —Against Back-EMF
How to Prepare your DC Motor — Quick Advice— Ardu_Serie#50
What is Back-EMF?
When a motor rotates in the reverse direction, stops or slows down abruptly, a current flow back to the motor’s power supply due to the effect of back-EMF. If the current sink capability of the power supply is small, the device’s motor power supply and output pins might be exposed to conditions beyond maximum ratings. To avoid this problem, take the effect of back-EMF into consideration in system design.
Motors do have a blowback voltage, a back-EMF that is usually addressed by adding a reverse-biased fast diode, sometimes in addition to a capacitor, across the motor’s supply wires. Without such protection, there is a high chance of this voltage destroying the individual GPIO line or more likely the entire microcontroller on the Arduino.
[TODO: VIDEO GOES HERE!]
Just as audio noise can make it difficult to hear what we want to hear (such as our conversation partner in the midst of a crowd), electrical noise makes it difficult for our microcontroller to hear the signal from our firmware.
Sources of Noise
As the motor’s armature turns and different windings are energized and de-energized, sparks are generated between the commutator and the brushes. A perfect motor, with infinitely small brushes and commutator gaps, perfectly timed for the load and speed it is being used at, might possibly not produce any sparks, but any real motor will always exhibit some amount of sparking.
Noise Suppression Methods
To stop electrical noise from interfering with microcontrollers, we have to determine how the noise is getting from the motor to the Arduino’s pin, and then how to reduce the noise level to the point where it’s low enough that does not interfere with the commands sent to the microcontroller.
There are basically 3 techniques for noise suppression methods, among others: Tuning, Filtering, and Shielding.
The most important factor in motor timing. The position of a motor’s brushes relative to the magnets needs to be set properly for the conditions under which the motor is operating. One way to set the timing is to start at neutral, and then advance it until the no-load current increases by 10% of the expected operating current.
In order to better understand the behavior of the motor, it’s great to studying PID tuning. I’ve programmed PID controller algorithms for other applications, so this tutorial shows a pretty good method to get you started in PID Control with Arduino.
Even a motor in perfect condition will produce some electrical noise, so some form of filtering is needed to keep that noise from getting to the microcontroller.
The simplest filters consist of one, two, or three capacitors.
A capacitor is an electronic component that will conduct only currents that are changing at a high frequency. A single capacitor wired across the motor terminals will act as a short circuit for high-frequency electrical noise, while not affecting the power to the motor at all. This reduces the conduction of noise along with the motor wiring.
When two capacitors are used, each one is connected between the motor casing and one motor terminal. This has the effect of shorting the casing and terminals together from the noise’s point of view. Including the casing in the circuit will reduce radiated noise by making the casing a shield.
The three-capacitor filter is just a combination of the one- and two-capacitor versions. One capacitor is connected across the motor terminals and one is connected to each terminal and the motor casing. This is the filter that I use on all my motors: use a 0.1µF (micro-Farad) capacitor across the terminals, and two 0.047µF capacitors between each terminal and the case.
When using a high-rate ESC never use electrolytic capacitors for noise filtering. The high switching frequency from the ESC will cause such capacitors to explode. Always use a ceramic disc or similar capacitors.
Some motors, such as the Graupner Speed 400 series, come with a two-capacitor filter already installed inside the motor. Additional filtering is often not necessary, although it would do no harm.
The material makes up of the motor housing is critical to reducing EMC emissions. The material should be made of metal or metalized to contain radiated waves.
The relative permeability of the metal should be considered.
The metal should reflect or absorb the incidental waves created by the aperture.
The material makes up for the end cap or end cover should also be metal or metalized:
Vent holes in the motor housing are the interruption of current can cause the slot to become an antenna and radiate noise. Vent holes should also be located as far away from the brushes as possible.
Joints in the motor housing or the connection between the motor housing and end cover can also be a source of radiated emissions.
Many modelers have solved their electrical noise problems by wrapping the receiver in aluminum foil, with only the antenna sticking out. This way, the only way for a signal to radiate into the receiver is via the antenna, and thus, only signals within the receiver’s frequency range will be accepted.
Best Practices with Motor
How far should you worry about the noise interference of the motors?
In general, not very far. I always use three capacitors and I do not have EMF problems burning my Arduino board ;)
I just trying to keep it simple.
Now follow the resources so you can further explore this issue.
Thanks and until the next adventure!
Credits & References
Edited @ dez2020 — minors text corrections:)