Transistor Gain/Saturation question

Transistor in question: 2N3904 TO-92 package
Datasheet: HTTP 301 This page has been moved

Forgive me for asking such a simple question....

According to the datasheet under ON CHARACTERISTICS the DC Current Gain should be between 100 and 300 when the current at the base is 1.0mA?

The hfe (called Beta in my circles) of a transistor is the ratio of base current to collector current and is a movable feast. The ratio will change due to heat and/or current.

It looks like you are looking at Vce which is the voltage drop across the transistor from the emitter to the collector when the transistor has been driven into saturation. It is implying that the the transistor's hfe will drop to 10:1 when driven hard. But this is a worst-case scenario, methinks. The 2n3904, in my experience, almost never has it's Beta drop to 10.

What is it that you want to do?

Primarily I want to use one as a switching transistor to turn a positive DC signal into a Negative or ground. Another transistor I want to use as a means to provide a stronger ground path for an LED circuit, mainly so I can adjust the amount of current to the LED. Sort of like fading without PWM.

should be between 100 and 300

Saying "should be" is slightly the wrong connotation, more correctly it "will be". You
don't try to set hFE, rather you end up getting a value of hFE which is roughly related
to the ultimate Ic, but with great variability. [sound confusing, yet?].

You might try to sort this out be looking at the following thread, although there are
a lot of confusing answers there. Reply #26 pretty much straightens a lot of it out.
hFE is a characteristic of the transistor itself, and not really of the external cktry,
which wasn't quite made clear on a number of the posts. You want to choose the
external components to set Ib and Ic, and ratio of this should have relationship to
hFE as indicated in #26 [see how this plays, LOL].

http://arduino.cc/forum/index.php/topic,147852.15.html

The logic inversion is simple. I have attached a simple schematic.

The LED dimmer is a little harder for the Arduino because, while there is A2D pins, there are no D2A pins. Two ideas would be to use a dedicated D2A chip like the AD558.

Another simpler/cheaper option would be using a digital pot. Look here http://arduino.cc/en/Tutorial/DigitalPotentiometer

trinvert.gif

oric_dan:

should be between 100 and 300

Saying "should be" is slightly the wrong connotation, more correctly it "will be". You
don't try to set hFE, rather you end up getting a value of hFE which is roughly related
to the ultimate Ic, but with great variability. [sound confusing, yet?].

You might try to sort this out be looking at the following thread, although there are
a lot of confusing answers there. Reply #26 pretty much straightens a lot of it out.
hFE is a characteristic of the transistor itself, and not really of the external cktry,
which wasn't quite made clear on a number of the posts. You want to choose the
external components to set Ib and Ic, and ratio of this should have relationship to
hFE as indicated in #26 [see how this plays, LOL].

http://arduino.cc/forum/index.php/topic,147852.15.html

Thank you so much for that link! Found some great stuff there and despite having 'learned' about BJTs in school this link ( BJT H ) I found in that thread cleared up things SO much better.

MaJiG:
The logic inversion is simple. I have attached a simple schematic.

The LED dimmer is a little harder for the Arduino because, while there is A2D pins, there are no D2A pins. Two ideas would be to use a dedicated D2A chip like the AD558.

Another simpler/cheaper option would be using a digital pot. Look here http://arduino.cc/en/Tutorial/DigitalPotentiometer

Thank you too, I really appreciate the schematic.

If I've got this right.....

Hfe = Ic/Ib (ratio of collector and base current)
Base Voltage - 0.7V (or whatever the base Voltage drop [Vbe] is according to datasheet) ÷ base resistor = Ib
Collector voltage - Vce (collector emitter voltage drop) ÷ collector resistor = Ic

crossing my fingers :cold_sweat:

LockDots:

oric_dan:

should be between 100 and 300

Saying "should be" is slightly the wrong connotation, more correctly it "will be". You
don't try to set hFE, rather you end up getting a value of hFE which is roughly related
to the ultimate Ic, but with great variability. [sound confusing, yet?].

You might try to sort this out be looking at the following thread, although there are
a lot of confusing answers there. Reply #26 pretty much straightens a lot of it out.
hFE is a characteristic of the transistor itself, and not really of the external cktry,
which wasn't quite made clear on a number of the posts. You want to choose the
external components to set Ib and Ic, and ratio of this should have relationship to
hFE as indicated in #26 [see how this plays, LOL].

http://arduino.cc/forum/index.php/topic,147852.15.html

Thank you so much for that link! Found some great stuff there and despite having 'learned' about BJTs in school this link ( BJT H ) I found in that thread cleared up things SO much better.

MaJiG:
The logic inversion is simple. I have attached a simple schematic.

The LED dimmer is a little harder for the Arduino because, while there is A2D pins, there are no D2A pins. Two ideas would be to use a dedicated D2A chip like the AD558.

Another simpler/cheaper option would be using a digital pot. Look here http://arduino.cc/en/Tutorial/DigitalPotentiometer

Thank you too, I really appreciate the schematic.

If I've got this right.....

Hfe = Ic/Ib (ratio of collector and base current)
Base Voltage - 0.7V (or whatever the base Voltage drop [Vbe] is according to datasheet) ÷ base resistor = Ib
Collector voltage - Vce (collector emitter voltage drop) ÷ collector resistor = Ic

crossing my fingers :cold_sweat:

Nope, not quite.
Ib depends on voltage available from the driver, in this case the Arduino output, and the base resistor. You would usually calculate the base resistor value based on how much base current you want. Let's say you want an Ib of 1mA. If your Arduino output is 5V at that current then the voltage drop across the base resistor will be 5V - 0.7V (the BE drop) = 4.3V. Then you can calculate the base resistor value, Rb = 4.3V / 0.001A = 4K3 ohms. Use the standard resistor value nearest that value.

Calculating the correct Ic is left as an exercise. :slight_smile:

Isn't that what I said? Assuming I'm using 5V outputs from the Arduino and 220Ω resistors:

Base Voltage - 0.7V (or whatever the base Voltage drop [Vbe] is according to datasheet) ÷ base resistor = Ib

is the same as

5.0V - 0.65V ÷ 220Ω = 19.7mA
therefore Ib = 19.5mA

Assuming the collector is connected to a +5V rail using the same resistor value (impractical I know, but just for sake of keeping numbers easy to work with):

Collector voltage - Vce (collector emitter voltage drop) ÷ collector resistor = Ic

is the same as:

5.0V - 0.2V ÷ 220Ω = 21.8mA

So now, if I want 1mA at the base like you suggested:

Base Voltage - Vbe drop x Rbase = 1mA ~~> rearranged ~~> Rbase = (Base Voltage - Vbe Drop) ÷ 1mA = Rbase = 4.3kΩ resistor, no?

That's not how I read it.

Base Voltage - 0.7V (or whatever the base Voltage drop [Vbe] is according to datasheet) ÷ base resistor = Ib

is the same as

5.0V - 0.65V ÷ 220? = 19.7mA
therefore Ib = 19.5mA

Base voltage is defined as the voltage on the base of the transistor. In the case of the common emitter configuration, it would be approximately 0.7V. The 5.0V in your example is the driver voltage. Plus, one usually calculates the base resistor value based on the desired base current, not the other way around as you have done.

PapaG:
Base voltage is defined as the voltage on the base of the transistor. In the case of the common emitter configuration, it would be approximately 0.7V. The 5.0V in your example is the driver voltage. Plus, one usually calculates the base resistor value based on the desired base current, not the other way around as you have done.

What I meant by Base Voltage was the driver voltage or rather, the voltage out of the Arduino pin (+5V). I used the wrong words, but I think you know what I meant now. And yes, you're right in saying that you pick a desired current and then figure out the resistor. I was just using a random resistor value to test my math :).

LockDots:

PapaG:
Base voltage is defined as the voltage on the base of the transistor. In the case of the common emitter configuration, it would be approximately 0.7V. The 5.0V in your example is the driver voltage. Plus, one usually calculates the base resistor value based on the desired base current, not the other way around as you have done.

What I meant by Base Voltage was the driver voltage or rather, the voltage out of the Arduino pin (+5V). I used the wrong words, but I think you know what I meant now. And yes, you're right in saying that you pick a desired current and then figure out the resistor. I was just using a random resistor value to test my math :).

Yes, I know what you meant now. :slight_smile: I think proper terminology is important when trying to communicate.

Absolutely, sorry about that! And most of all thank you!

LockDots:
Absolutely, sorry about that! And most of all thank you!

No problem! You're welcome!

The LED dimmer is a little harder for the Arduino because, while there is A2D pins, there are no D2A pins.

Usually method for dimming LED is to use PWM signal to switch them on.quickly. Eye sees it as full on (persistence of vision) while average on-time is conrolled by PWM width.

CrossRoads:

The LED dimmer is a little harder for the Arduino because, while there is A2D pins, there are no D2A pins.

Usually method for dimming LED is to use PWM signal to switch them on.quickly. Eye sees it as full on (persistence of vision) while average on-time is conrolled by PWM width.

Yup, I was just using that as an example. I'm intending to play around with BJTs to get a little more familiar with them (hands-on has always worked better for me than just reading) and eventually use them to "fade" or adjust current or voltage levels to something a little higher powered.

Up next, H-Bridges 101 :smiley: