Electronic – arduino – Relay takes time to close


I am trying to control a relay from an Arduino compatible board. When I try to activate the relay from the Arduino it takes at least a second to switch closed and sometimes does not switch closed at all.

I am using this relay board. Here is the circuit diagram:
Yourduino Relay Circuit Diagram

Digital pin 2 of the Arduino is connected to IN0 of this circuit (bottom left). I set it low to switch on the relay. VCC and ground on the low-voltage side are connected to ground and 5V pins of the Arduino. The high-voltage side (JD-VCC) is connected to a 5V 1A power adapter which also powers the Arduino. The jumper on the top left of the circuit connecting the high-voltage and low-voltage sides has been removed.

A photo of the assembled circuit is here.

Could someone please help me with the possible reasons why the relay switches with a delay?

One reason I suspected is that I have connected the power supply to the relay coils by thin jumper wires. But the specification says that the relay draws a current of 80 mA. So I was hoping that the wires would be good enough.

Best Answer

Assuming your supply isn't collapsing somehow, to me it's most likely that the CTR of the opto isn't sufficient to saturate Q1 and meet the pull-in voltage requirement of the relay:

  • The typical forward drop of an optoisolator photodiode is on the order of 1.5V
  • There's another LED in series with the path, dropping at least another 0.7V

The photodiode current is going to be on the order of:

\$I_D = \dfrac{5V - 1.5V - 0.7V}{1k\Omega} = 2.8mA\$

The vast majority of optoisolators that I know of only guarantee their CTR at 5mA current or higher. Even a high gain opto (100-300% CTR) will underperform at this current level. It's quite possible that many optos in this application will tend towards higher CTR and work without circuit modification. Also, some Q1s may have much higher \$H_{FE}\$ and handle the weak drive.

I would consider soldering another 1k in parallel with the existing R1 and see if the relay performance improves. Most optoisolators can handle up to 50mA photodiode current; that being said, the diode current should be set to the lowest possible current that allows your application to operate robustly, since optoisolators do age (the CTR degrades over time: faster as the photodiode current increases).