Arduino, AC motors and noise

Hi all,

what I'm trying to do is to automate a household coffee grinder.

This is what I put together:

an Arduino nano drives two power relays, one of which controls a small DC motor for the ground coffee dispenser, and one controls the grinder's large 110 W AC motor

(not depicted: a TFT screen hooked via i2c bus)

The low voltage section is powered by a AC-DC converter such as this

And this is what the innards of the grinder look like now:

As I should have expected, the board picks up a f-load of electric noise and does not work properly (program hangs, leaving the grinder running indefinitely).

What can I do to mitigate this?

Shielding the board with a grounded metal plate?
Grounding the motor's body? (there is a point marked "ground" with a green-yellow wire, but it's not really grounded as the appliance casing is full plastic and thus grounding is not mandatory)
What else?

There are lots of problems with that circuit, and electrical noise may not be the most important. The relays appear to lack inductive voltage spike protection diodes, the transistors lack base resistors, etc. The PNP base connection shown above is a good way to destroy output pins.

Example bipolar transistor motor or relay driver circuit:

NPN_motor_driver

1 Like

If the motor is completely covered with metal, then you can add a .01mf capacitor between each motor lead and the metal case. Use as short leads on the capacitors as possible. Then ground the motor case to the ground lead of your mains power.
How old is the grinder? If not fairly new, then the motor brushes may be worn down until they make little contact with the armature of the motor and you need to start with a new unit.
I once bid on manufacturing a similar kitchen appliance and the motor spec required the motor to have a life of at least 15 minutes continuous running. Yours may be similar.

Ok, thanks.
Should have tought of the resistance and I get why the diode is needed; what is the capacitor for?

C1 reduces radio frequency noise generated by DC motor brushes.

Ok... thanks for the replies, I added the snubber and the much needed base resistor.... unfortunately my error was far less interesting.

I underestimated the power consumption of the relays; that puny 600 mA converter can not provide enough current for arduino + 2x relays + chute motor.
Will try again wit a reasonable power supply.