I have designed a circuit board for my Arduino controlled dishwasher, using the following circuit taken from the MOC3043 datasheet. I have used a BTA 16-600BW snubberless TRIAC with a 100 ohms and 10 nF snubbing circuit. I have seen Electrolux boards use snubberless TRIACs and this combination of resistor and snubber network for inductive loads while powering the heater with a relay.
I am controlling a total of 6 loads, mostly inductive: 3 solenoids (water softener, fill, detergent dispenser), drain pump, washing pump, heater. For this reason, I have employed TRIACs rather than relays as the latter ones would give me Arduino reset issues when powering the inductive loads.
Now, the problem is: everything works fine when I use it at home, but if I take it to a different house (I have given the machine to a dear friend of mine who doesn't own a dishwasher in order to test it) where there is electrical noise on the network, the heater TRIAC self triggers and ends up burning the heater. It's already happened twice, so I am thinking to revert back to a relay in order to power the heater (resistive load + removal of the Arduino inbuilt voltage regulator + shielding of the microcontroller shouldn't give me reset issues.)
Why does the self trigger happen? Is my idea of electrical noise correct? How can I improve my design so that my other loads do not risk undergoing the same treatment? (Thid has not happened yet.)
I have seen some datasheets for the MOC3021 recommend using a snubbing circuit for the TRIAC gate but have not seen this in any MOC3043 datasheets so I wouldn't know what to do.