Pages: [1] 2 3   Go Down
Author Topic: Controlling a 5v relay, only getting 2.4v?  (Read 1990 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Im trying to switch on a 5v relay (Huigang HRS2H-S-DC5V) using a digital pin on my Uno, and for some reason when I set the control pin high, I only get about 2.4 volts across the relay, the rest is getting burnt across the collector-emitter of a 2n3904 transistor. I have everything wired up according to http://playground.arduino.cc/uploads/Learning/relays.pdf, the only difference is that I'm using a 3904 instead of a 2222 and Relay Power+ is connected to the arduino 5v supply pin. I have tried playing around with different base resistors to no avail. What could be going on?
Logged

Chicago
Offline Offline
Sr. Member
****
Karma: 5
Posts: 456
With every answer comes more questions.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Check your DATASHEETS to be sure...
Small signal transistors like those vary how much voltage they allow through the collector-emitter based on how much current they get at their base. Since, I believe, Arduino's digital pins only put out something like 40mA of current, your 3904 may not be getting fully turned on. Therefore, it's letting less than full rail voltage pass through.

I would try setting up two 3904's together (like a Darlington pair) and see how much voltage that gives you....?

Good luck!
Logged

Global Moderator
Offline Offline
Brattain Member
*****
Karma: 474
Posts: 18696
Lua rocks!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

40 mA absolute maximum rating. Aim for 20 mA.

Logged

Chicago
Offline Offline
Sr. Member
****
Karma: 5
Posts: 456
With every answer comes more questions.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

40 mA absolute maximum rating. Aim for 20 mA.



Right. So the question is....will 20mA (up to 40mA) fully turn on a 3904 transistor?  And if not, what to do?
Again, I'm too lazy to check the Datasheet for ya, so find out how much current you need.

If Arduino can (safely) source ~20mA per pin, could one use more than one pin to equal required current? Say, if 60mA is needed, could one use three pins to source that to the transistor?

(I'm still a bit new to Arduino myself, so I'm sorta spit-balling here.)
Thanks!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alright so I got it going, hooking up two 3904's in a darlington config seems to do the trick, and with a 1k resistor on the base of the first transistor I (should) only be drawing 5 mA, right?

If Arduino can (safely) source ~20mA per pin, could one use more than one pin to equal required current? Say, if 60mA is needed, could one use three pins to source that to the transistor?

I would think that you probably wouldn't be able to do it directly. You might be able to connect a resistor between each pin and the base, but then not only are you using three pins for one transistor but I would also worry that you could accidentally connect two output pins together, and I'm not sure how much the micro would like that.
Logged

Earth
Offline Offline
Edison Member
*
Karma: 52
Posts: 1738
My browser no longer is binding static IP, Floating is the way to go.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Huigang HRS2H-S-DC5V;-

  • COIL VOLTAGE : 5 V
  • COIL RESISTANCE +/-10% : 120 Ω

The current to drive relay : 5/120= 41.7 mA

A 2N3904 transistor’s beta max value is 150 and min value is 100.  When figuring out DC current gain, the beta value is part of the formula.  In the sheet above, it is also known as as hFE.  (hFE = beta = gain for easier understanding)

The transistor drive current= 41.7/100= 0.417 mA.  Your circuit is fine. Replace an other 2N3904 or check connection might be the way to go.

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I had figured that maybe the transistor was to blame, so before wiring up the darlington I tried replacing the transistor but got the same result. I have also noticed that sometimes when the pin is low, the relay buzzes quietly, what would be causing that?
Logged

Earth
Offline Offline
Edison Member
*
Karma: 52
Posts: 1738
My browser no longer is binding static IP, Floating is the way to go.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



don't forget diode, double check  transistor connection or change an other type one.
Logged

the land of sun+snow
Offline Offline
Faraday Member
**
Karma: 158
Posts: 2879
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The problem is the 3904 was not driven into saturation. 5mA drive on the 3904 base
should have been adequate, if the relay current was 40 mA.  Possibly you had the
transistor wired backwards, so the current gain was low. Easy to do.
Logged

0
Offline Offline
Shannon Member
****
Karma: 199
Posts: 11650
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Don't forget that the flyback diode is absolutely required - otherwise the relay coil inductance
can easily destroy the transistor, and possibly other parts of the circuit.

I'd suggest not using a darlington for low voltage switching like this - a darlington costs at least a volt,
sometimes 2V, so your 5V supply is only 3V at the relay winding.  Or use a 6V supply, darlington
and 5V relay...  Darlington's tend to run hot because of the wasted power too.

A single switching transistor, if saturated, only costs 0.05 to 0.2V lost, shouldn't get very warm.
Make sure it has plenty of current overhead (so for a 200mA load use at least a 500mA transistor,
otherwise its hard to get good saturation).
Logged

[ I won't respond to messages, use the forum please ]

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I wired it up with the exact same circuit sonnyyu posted, no luck. sometimes get a very quiet tick out of the relay, but it doesnt get enough to switch over. Tried replacing with 4 other 3904s, could it be the difference between the 3904's and the 2222's thats doing it? (What exactly is the difference, anyway? From what I have read, the 2222 is just able to handle higher current, is that true?) I do have the flyback diode (1N4004) in place, and according to my tests when connected directly to 5v, the coil draws about 41-43mA.
Logged

Cumming, GA
Offline Offline
Edison Member
*
Karma: 20
Posts: 1643
Ultimate DIY: Arduino
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Depending on the package metal or epoxy, the 2n2222a can handle between 500 and 800 mA through emitter-collector and the base is quite happy with 5mA to turn on fully.  You are not *burning* current in the transistor unless you wired it wrong.
Logged

Santa Fe
Offline Offline
Full Member
***
Karma: 1
Posts: 201
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It's such a simple circuit. seems like something must be mis-wired. make sure you don't have the transistor hooked up backwards. In bread boarding, I've done that more than once. check the ohms on your resistor, it's easy to mistake orange for red. Not much else could be wrong.
« Last Edit: June 28, 2013, 01:30:58 pm by RPCoyle » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Depending on the package metal or epoxy, the 2n2222a can handle between 500 and 800 mA through emitter-collector and the base is quite happy with 5mA to turn on fully.

If the only difference between the 3904 and 2222 is power handling, I should be just fine using a 3904 for driving a 42mA relay, no?

It's such a simple circuit.

That's what's got me so f%$@#&* confused, what am I doing wrong? I have tried replacing the transistor, connecting it both ways, replacing the relay, different resistor values, reversing the diode, replacing the diode, even changing the digital pin on the arduino, but yet I still end up losing half the voltage over the transistor. The only thing that works right now is the darlington, which I'd rather not use because it uses up 2 transistors. Here's how it's all wired with just the single transistor, maybe someone will see something that I've overlooked:


* Arduino Relay Circuit.jpg (730.53 KB, 1301x800 - viewed 50 times.)
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 151
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What's going on at A1 ?
Can I suggest checking voltage across the left side  + / - to ensure you have 5V there?
You say you are losing 2.5V through the transistor, it's connecting to ground, so are you measuring from the E pin to ground? (after the 5V has passed through the relay coil)..?
I wonder if the current to initially pull the relay in is too great? And 42mA is the current to hold it in?
Logged

Pages: [1] 2 3   Go Up
Jump to: