0
\$\begingroup\$

I am using an 8 Relay module, bought from dx.com. It has no instruction manual...

This board has 8 inputs (IN1,...,IN8) to control each relay, 1 VCC pin that requires 5V and 1 GND pin.

I connected the VCC to the 5V pin of the raspberry and the GND to the ground of the raspberry. After that I tested each relay by connecting them to a GPIO-pin as I saw other people doing it: video

But only 2 of the 8 relays seem to work fine. The indication lights of the other 6 do change, but the relays don't 'click'.

Is somebody experiencing the same problem, or does anybody know how to fix this? Thanks in advance!

\$\endgroup\$
3
\$\begingroup\$

You're using a board that was designed for Arduino, which has 5V GPIO signals, on a RaspberryPi, which has 3.3V GPIO signals.

Looking at the relay board, I see driver transistors for the relays, but they do not have base resistors, which means that they're probably MOSFETs. There's a good chance that these MOSFETs have a threshold voltage that works fine for 5V signals, but does not provide adequate drive to the relays when given 3.3V signals.

Try connecting the control inputs of the relay board one at a time directly to the 5V supply pin and see if they all operate solidly that way. If so, then you'll need to find a way to translate from the lower voltage to the higher voltage.

BTW, I would normally expect to see resistors even with MOSFET drivers — pulldown resistors on the gates that keep them from "floating" and providing some resilience against ESD. Treat those inputs as being very static-sensitive!

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Thanks for your comment Dave! Do you understand why it does work for 2 of the 8 relays? Also, what would be a good way to 'translate the lower voltage to the higher voltage'? \$\endgroup\$ – Jens-Joris Decorte Mar 22 '15 at 14:44
  • \$\begingroup\$ Threshold voltage is not a tightly-controlled parameter on a MOSFET. A lot of "logic-level" MOSFETs specify a range of 2 to 4 volts. It's entirely possible that two of your transistors have a slightly lower value, and so turn on strong enough to drive their relays with a 3.3V signal. For the other part, search for "level shifter". One easy way to do it is to get an octal buffer chip such as a 74HCT244 that can be connected to the 5.0V supply, but has a logic threshold of 2.0V and will accept the 3.3V signals as inputs. \$\endgroup\$ – Dave Tweed Mar 22 '15 at 15:21
  • \$\begingroup\$ I see resistors on the pictures - 8 of them right behind the input header. Hard to tell if they're in-line with the input or pull-down. \$\endgroup\$ – Majenko Mar 22 '15 at 16:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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