1
\$\begingroup\$

I need to control 8 12V automotive relays with an arduino. I have two PS2502-4 optoisolators. The relays are 12V with a coil current of 75mA. The transistor side of the optoisolator can handle 160mA/ch and 160mW/ch and has a Vce(sat) of 1V so the power dissipation through each channel of the optoisolator should be 75mW. This is well within the 160mW rated value. Pretty much every example circuit on the Internet uses an optoisolator to drive a separate transistor for the actual switching though.

Is there a reason to use a second transistor if the optoisolator can handle the power dissipation directly? Are these second transistors serving another purpose? The only thing I can think of is a lower Vce(sat) which means more voltage across the relay.

Thanks

\$\endgroup\$
3
  • \$\begingroup\$ To be fair a lot of opto isolators are used in PWM circuits etc. that require a much high switching capacity than the opto isolator is capable of. Its probably just down to thoughtlessness/laziness/habit - why calculate current/load/ saturation values for the opto tisolator to directly drive the load when you know a 'standard' solution using a transistor will work. \$\endgroup\$ Commented Jul 7, 2013 at 19:18
  • \$\begingroup\$ Have a look at the schematics in this thread (another one with a transistor). \$\endgroup\$ Commented Jul 7, 2013 at 22:39
  • \$\begingroup\$ The coil is usually isolated from the contacts in the relay. Why do you need an opto-isolator in addition to that? Is it to stop the EMI? \$\endgroup\$ Commented Jul 7, 2013 at 22:40

1 Answer 1

0
\$\begingroup\$

Maybe you have a special reason for using opto-isolators but assuming that the 12V supply to the relay coils can have a common 0V or ground with the Arduino's 0V then using regular BJTs would seem more sensibile and of course will be more efficient. Below is not the exact circuit because it shows a motor but substitute the motor with the relay coil and this works: -

enter image description here

The supply shown (5V) can reasonably be anything such as 24V (if you had 24V relays). 12V is no problem of course. The transistor is an NPN and something like a BC547 is ideal. The base current should be designed to be about 5mA for decent saturation of the transistor.

If your MCU runs from 3V3 then approximately 2.7V will drop across the resistor at 5mA and this implies a resistance of 540ohms. A 470ohm or 560ohm will be fine.

Note that the diode across the motor/relay is always required to protect against back-emfs when the transistor turns off. For the relay current you have a BAS16 or 1N4148 will be fine.

If you have a reason to use an opto and you are happy with its current transfer ratio and power dissipation then using the opto will work too.

\$\endgroup\$
2
  • \$\begingroup\$ I realize they are not strictly necessary but a significant number of example circuits online use them. I also have a couple commercial relay boards that have them. My understanding is its just to provide protection to the arduino which is important with an inductive load. I do have protection diodes in parallel with the terminals that the relays will get attached to as well to minimize the risk. I am still interested in the answer to my original question regardless if they are not necessary or not. \$\endgroup\$ Commented Jul 7, 2013 at 19:23
  • \$\begingroup\$ @digitaladdictions Hopefully i allayed any concerns you had in my final paragraph. \$\endgroup\$
    – Andy aka
    Commented Jul 7, 2013 at 20:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.