Hi, I have searched this forum on this topic but didn't find the answer I was looking for. I have two Relay boards, one with a single relay and one with two relays. Both of these boards activate the relay when the 'IN' input is set to LOW. I.E I have to supply a 5 volt feed to deactivate the relays. To me this seems strange since outside of Arduino every relay I have ever used works in the opposite way i.e. with no feed to the activation circuit the relay is 'off'. I double checked my pin out and confirmed when set to LOW there was no voltage and when HIGH was getting 5 volts.
One relay is made by Tonglin and the other by Songle.
So my question comes in two parts.
a) is this normal behaviour for Arduino relays or have I somehow managed to get a weird pair? (from what I've read I suspect it is).
b) are the relays available in either flavor i.e. relay active when IN is LOW and relay active when IN is HIGH? I did check some local sellers of relays but they don't mention this aspect in the specs.
BTW I realize I can still get the desired outcome via my code but it feels janky.
Hopefully my question is different enough not to get me banned on my first post!
kind regards
Lex
It’s not unheard of, depends on the relay you get. Some boards do have a way to select active LOW or HIGH.
If the seller does not mention anything, then don’t buy from them…
(See an explanation on where this comes from arduino - Why is designed active low? - Electrical Engineering Stack Exchange)
You are thinking like a human, ie HIGH must mean ON, but the Arduino and the relay don't care and just do what they are told. Do you feel the same way about using INPUT_PULLUP on button inputs where LOW means that the button is pushed ?
The relay will activate when power is applied through its coil. The relay board will have a number of components that could be anything but are commonly a way to isolate the uC (microcontroller) from the coil side of the circuit. It is very common to have LOW being active and this does not make any significant difference. If it confuses you just code define ON as LOW. And then write ON from then on in your code.
It is not Janky but is pretty standard due to the way the commonly used components end up with LOW = ON logic. It is actually the easiest way.
As pointed out above you are just getting stuck in the human intuitive idea that high is better than low.