Tuesday 19 June 2018

microcontroller - Why are relays so frequently driven by optocouplers?


Since the advent of the many microcontroller development boards, like Arduino, there have been a number of relay modules sold to drive mains AC loads.


A lot of these seem to use an optocoupler, driver transistor and a relay to drive the load (example on Amazon)


Why are they implemented like this?


Some of my thoughts:



  • Relays provide as good or better isolation than most optocouplers


  • There is still a driver transistor present, so it is not component saving

  • There is still inductive kickback protection, so it is not component saving

  • Optocouplers are not as cheap as transistors, so additional cost compared to just a driver transistor

  • There is no need to meet any regulatory requirements as these are DIY products

  • I have never seen small mains relays driven by optocouplers in commercial equipment

  • A number of these boards don't seem to be designed brilliantly (no regard to clearance or creepage), so even if the optocoupler is simply to provide two layers of isolation, the board fails at this.



Answer



First, a possibly more permanent link to this product is here. And the schematic is here. (Edit 7/29/2015: Ironically my two links are now broken and OP's Amazon link is still useful)


Two reasons it makes sense to use optoisolators here:





  • The controlling device might be very far away so that it doesn't share a common ground reference with the relay board (except as connected through a long cable). Using the optoisolator means the control signal is used purely as a differential signal between Vcc and the control signal, both sourced from the controller circuit; ground potential differences won't affect the operation.




  • The relay coil voltage is not necessarily the same as the controller's Vcc. It could even be generated by an off-line (unisolated) supply. The optoisolator then provides isolation between the potentially unisolated JD-VCC supply and the controller circuits.




No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...