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
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:
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 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.