I have an earbone microphone connected to a couple of op amps which then connect to a microcontroller. When the input reaches a certain level, the microcontroller turns ON a vibrating motor via a motor driver.
However, when this happens, the input spikes a little. I'm not very familiar with motors, but I'm guessing that it's electromagnetic field is producing some kind of noise at the input. Is this assumption correct? If so, how can I remedy the situation? If not, what else could be happening?
'Shielding' is where you try to block an electromagnetic field, usually with some kind of conductor. If you've ever seen a coaxial or TV cable cut open you see there's a metal mesh just under the plastic sheathe, this is in an attempt to 'shield' the cable to reduce interference. See here for more:
Lighty is suggesting you take some steps to reduce the electromagnetic interference (EMI). There can be a couple of things that lead to noise with the DC motor, have you tried reading this guide to reducing EMI:
It's on the same site as where you purchased the motor. You can even try moving the motor further away from the circuit (the terminals are a significant source of EMI).
In order to determine the effects of the actual EM field, I placed a different motor (not connected to the circuit) near the circuit and turned it ON. I observed absolutely no interference. So, it has to be something within the circuit itself and MarkT you're suggestion makes sense because it doesn't seem possible for the motor to feedback through the motor driver, the microcontroller, the op amps, and still show up at the microphone.
So, when you say "on a separate wire" what exactly do you mean? Two different grounds?
Just ensure that the ground connection to the microphone does use the same wire as the ground current return from the motor - so definitely different wires, only one common ground point that’s not at a high-current point of the circuit. The best way to think of this is first build the high current circuitry, then build the sensors, then common the two with one ground wire and whatever signal wires are needed for the motor controller. The wires joining the two parts then only carry signal currents, and the sensor circuit is in no place common with any high-current paths.
You need to keep the wire or pcb trace between the positive side of C2 and the Vin pin of MDR as short as possible. Similarly, the wire from the negative side of C2 and motor negative side/D1 anode needs to be a short as possible. No part of these wires or pcb traces should be in the supply or ground path to any of the sensors or the mcu. Follow MarkT's advice as well.
I'm sorry for my lack of intelligence on the subject, but I'm a bit confused. MarkT I don't quite get this:
Signal ground is not power ground....
So, are the microphone ground and the motor ground connected or not?
The circuit is on a PCB, and I placed a ground plane on the top of the board and a power plane on the bottom of the board. So, everything that says 5V is connected to the bottom, and everything that has a ground symbol is connected to the top of the board.
dc42 I did this:
pcb trace between the positive side of C2 and the Vin pin of MDR as short as possible
But I didn't do this:
the wire from the negative side of C2 and motor negative side/D1 anode needs to be a short as possible
I simply connected both the negative side of C2 and the motor negative side to the top plane. What does making this path short actually do?
Also, can you explain this a little more:
No part of these wires or pcb traces should be in the supply or ground path to any of the sensors or the mcu
Simply do not connected everything that goes to GND directly to your ground plane. Keep a different set of ground traces for the power signals (for the motor and the 1749) and join the “two grounds” (the power and signal ones) just in one point, being the best point as close to the GND input connection as possible.
It would also be a good option to place an RLC filter between the 5V input and the 5V connection of the 1749, or even to power the 1749 (and therefore also the motor) from a separate regulator (like another 7805 connected directly to the power input, not to the +5V of the Arduino).
It could also helps a lot to put a small ceramic capacitor (1nF, for instance) in parallel to C3 and connected directly to the motor pads. This will suppress better the spikes that a DC motor generates when the reel is disconnected abruptly by the brushes.
All this reduces the noise in the power lines … although you never can remove the 100% of them.
For sure! It could induce even several hundreds milivolts AC signal into the power lines. This could be easily multiplied by several orders by any OpAmp and be clearly audible in any speaker. SO that is o important to keep the power lines (but positive and GND) separated from analogic and digital/power blocks.