Controlling a 5v relay, only getting 2.4v?

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.

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.

pwillard:
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?

RPCoyle:
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:

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?

tocpcs: What's going on at A1 ?

A1 is a 12 volt source going through a diode and a 750 mA polyfuse for some 12 volt electronics and a motor. Negative terminals are both connected to gnd, left side positive rail has +12.2V supplied by Vin, right positive rail has +4.85V supplied by arduino 5V out.

tocpcs: 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 am measuring from Collector to Emitter. I also measured across the relay coil and got about 2.3 - 2.4v

tocpcs: I wonder if the current to initially pull the relay in is too great? And 42mA is the current to hold it in?

I hadn't thought about the pull-in current, however I measured the coil's resistance to be 121 ohms, which still works out to 5V / 121 = 0.0413 or 41.3 mA. That is just math though, and stupid reality is never as easy. :0 Do relays normally draw more current while pulling in?

Slightly more, not major.

Attached drawing. Is yours set up accordingly?

huigang.JPG

560 ohm instead of 470, but otherwise identical

Have you measured the coil resistance (out of circuit) with an ohmmeter?

121 ohms. Just did some poking and prodding with the voltmeter and discovered that I'm only getting 0.7 volts out of my digital pin when its connected, and only 4.3 volts unconnected. 5 volt rail is still solid at 4.95V

4.3/0.7 = OK

The resistor, 560?, is green-blue-brown, verified with ohmmeter?

Yep. And it had nothing to do with the problem whatsoever. Turns out I forgot to set pinMode(dirPin, OUTPUT). :P

Oops.

All is well now. I guess the lesson is, don't give a pin a name that sounds like derpin' ;)

The way to do something like this is in 3 steps:

  1. check relay directly with 5V.
  2. check NPN driver ckt exclusive of Arduino - connect base R to 5V.
  3. hook to Arduino I/O pin.

Then you know exactly where the problem comes in.

aj88keys: Yep. And it had nothing to do with the problem whatsoever. Turns out I forgot to set pinMode(dirPin, OUTPUT). :P

Oops.

All is well now. I guess the lesson is, don't give a pin a name that sounds like derpin' ;)

Carumba.

You know, the stupid thing is, I was thinking of trying to connect the transistor base directly to 5v to see if the Arduino was the problem, I really don't know why I didn't do that. I guess that's why my profile says "Newbie" :grin:

I was thinking of trying to connect the transistor base directly to 5v

I was thinking of trying to connect the transistor base resistor directly to 5v ;)

What's the 1K resistor there for? Can someone more experienced than I explain why it would be needed? I could be wrong.....probably am (so someone please verify?)....but if the Arduino is putting 5V @ 20-30mA through a 1000 Ohm resistor.....wouldn't that limit current to the transistor to only like a half a mA?

Personally, I'd try it without the resistor. But, I'm a bit of a risk-taker. Maybe try a smaller resistor?

Anyone else have an opinion on this?

Where do you see a 1K resistor?

[quote author=Nick Gammon link=topic=174122.msg1296879#msg1296879 date=1372480473] Where do you see a 1K resistor? [/quote]

On base of transistor. In the photo he posted. And the schematic.

I didn't see the whole second page of the conversation until after I asked about the 1K though. Guess it's working now.

I am a little curious about it though.

Risktaker is always fun, but with electronics you need to learn a little theory,
although the good thing is, when you make a bad, something usually smokes
as a result. Or just stops working, so then you can sit there and 2nd guess the
universe.

You ALWAYS need a series base R with an NPN inverter, as it sets the actual current
into the base.

Ib = (5V - 0.7V) / 1K = 4.3mA.

Do a google search on NPN inverter, and read a bit.

aj88keys: Yep. And it had nothing to do with the problem whatsoever. Turns out I forgot to set pinMode(dirPin, OUTPUT). :P

Oops.

All is well now. I guess the lesson is, don't give a pin a name that sounds like derpin' ;)

Do you see now why the guidelines say "post all of your code"?