Electronic – arduino – SSR ticking when controlling heater

arduinoesp8266solid-state-relay

Trying to control a 220v electric convection panel heater with a Fotek SSR (SSR-50DA http://akizukidenshi.com/download/ds/fotek/fotek_ssr.pdf) which is controlled by an nodemcu esp8266 (arduino).
It is a pretty straight forward setup, with a digital pin from the nodemcu is connected directly to the low voltage SSR terminal to trigger switching of the higher voltage SSR terminals.
Things kind of work as expected, in that the heater turns on and off when requested.
wiring diagram

However. The heater has a little LED light on it, and when it is turned on via the SSR it flickers. There is also a very slight ticking sound coming from the SSR. Both the LED and the ticking sound appear to be in sync and happen very fast. The heater still works during this. But if I turn the heater on and off, the LED light on it comes on strong, and there is no longer a ticking coming from the SSR. (note that the heater temperature control is set to max during this)

heater light

I'm not sure why the ticking is happening or if there is anything I can do to stop it?

Best Answer

I think that although some ESP8266 devices accept a \$5\:\textrm{V}\$ source voltage for operational purposes (they have a regulator on-board), pretty much all of them operate at \$V_{CC}=3.3\:\textrm{V}\$. I have one of them here that powers itself from the USB \$5\:\textrm{V}\$ port voltage. But it's I/O isn't \$5\:\textrm{V}\$ but is instead just at \$3.28\:\textrm{V}\$ when driving an LED light at \$1.5\:\textrm{mA}\$. (Some \$3.32\:\textrm{V}\$ unloaded.) That suggests a surprising \$30\:\Omega\$ for the output pin, which is actually pretty nice.

The picture you offer does show that the spec is \$3-32\:\textrm{V}\$ for the control input. I hope it meets its own labeled specification. The datasheet gives a trigger current of \$7.5\:\textrm{mA}\$ when applying \$12\:\textrm{V}\$. This isn't your circumstance, but you shouldn't expect less current, regardless. But assuming your ESP8266 is similar to mine (there are so many different incarnations out there), that level of current would yield a voltage drop of about \$250\:\textrm{mV}\$. This would put you very, very close to the minimum specified trigger voltage shown on the picture you gave. (The datasheet says \$2.4\:\textrm{V}\$.) So I would worry a bit that you are starting out very close to the limitations and, with loading, may be falling below them.

One thing you can do is measure the voltage right at the control input leads into your SSR, when activated. If that voltage is below \$3\:\textrm{V}\$, then you should fix this problem. Another thing to do is to try and hook up \$5\:\textrm{V}\$ directly to the control input and see if your problem goes away. If it does, then you can say you've tested the SSR and it works and that the problem is elsewhere.

Finally, and I've no reason to say this way or that about it, an SSR often requires a heat sink. They drop something like \$2\:\textrm{V}\$ across them (your datasheet says \$1.6\:\textrm{V}\$) and, with full current flowing -- especially to a high current heater, it's quite possible that the SSR is going through thermal shutdown (doing what it is supposed to do when you don't supply an adequate heat sink.)

If your electric convection panel heater is only \$400\:\textrm{W}\$, then you might be dissipating about 1% of that in your SSR. That may not be a problem. I'd guess that a simple brick like that could handle \$4\:\textrm{W}\$ into the air. But it's not in the datasheet. So I can't be entirely sure. Besides, I've no idea what your panel heater requires, since you didn't write about it.

So. Do those two tests. And tell me about the heater wattage. And tell me if you have used a heat sink.


I see that Tony brought up the idea about PWM. I don't expect the SSR is doing that. But if YOU are doing that with your ESP8266, then that certainly could be the problem. Are you doing that? Do you have some kind of closed loop control thing going on that you also didn't mention?