# convert output pin arduino to higher voltage and current

Discussion in 'Embedded Systems and Microcontrollers' started by mohammad2050, Aug 9, 2015.

Nov 14, 2014
56
1
hi,
i want to convert output pin of arduino (5 vdc , 40 mA) to 24 vdc, 200 mA .i can not use transistor for saturation problem , please suggest appropriate circuit ?

2. ### kubeek AAC Fanatic!

Sep 20, 2005
4,851
859
what saturation problem are you talking about?

Nov 14, 2014
56
1
because:
Ib= (5-0.7)/2.15 = 2mA ,,, Ic = B*Ib=200 mA ,,, if load be 1k=> VCE= 24-200==SATURATION
so
VCE=0.2 => IC= 24-0.2/1=23.8 mA no 200mA

4. ### MikeML AAC Fanatic!

Oct 2, 2009
5,451
1,070
So use a Darlington,

or an NFet

Last edited: Aug 9, 2015

Nov 14, 2014
56
1
so i must calculate parameters for that , in your opinion how much load can support Darlington or NFet for 24 Vdc,200 mA?

6. ### ScottWang Moderator

Aug 23, 2012
5,437
856
If the output of arduino is 5V/40mA and add a npn and pnp then you can get the current close to 4A.

Nov 14, 2014
56
1
but this is not possible because occur satturation before it reach to higher current .

8. ### djsfantasi AAC Fanatic!

Apr 11, 2010
3,486
1,245
For my own curiosity, where did the value 2.15 come from when calculating Ib? From that point on, I am confused where the equations are coming from. Did you mean to divide by 1000 instead of 1? And Vce=24-200? Are you mixing units and precision?

Nov 14, 2014
56
1
excuse me ,
Ib= (5v-0.7v)/2.15k = 2mA ,,, 5v is arduino output, vbe=0.7 ,Rb=2.15k ...because beta is 100 and i want to reach 200 mA
Ic = B*Ib=200 mA ,,, if load be 1k=> VCE= 24v-200v==SATURATION
so
VCE=0.2v => IC= (24v-0.2v)/1k=23.8 mA no 200mA

djsfantasi likes this.
10. ### MikeML AAC Fanatic!

Oct 2, 2009
5,451
1,070
Go back and look at post #4

However, here is the Arduino pin driving a 2n2222 directly. Note that I set the base drive to be 20mA (within the capability of the Arduino pin). This guarantees saturation of the 2N2222, minimizing its power dissipation when on.

Last edited: Aug 9, 2015
11. ### kubeek AAC Fanatic!

Sep 20, 2005
4,851
859
Beta is not a constant and gets lower with higher current. Usually you want to use Ib=0.1 Ic in switch application. So just use 120 ohm base resistor and be done with it.

Nov 14, 2014
56
1
thanks a lot MikeML

Nov 14, 2014
56
1
thanks a lot kubeek , you right, i was in wrong.

14. ### ScottWang Moderator

Aug 23, 2012
5,437
856
When the bjt get into the saturation status, the hFE as 10 and then the current will be like this:
Arduino (40mA) → NPN (400mA) → PNP (4A)

15. ### ScottWang Moderator

Aug 23, 2012
5,437
856
So if you want to get a 200 mA current from Arduino 5V/40mA then you can do as this:
Arduino 5V/40mA → R_limit (2mA) → NPN (20mA) → PNP (200mA)

NPN can be use as 2N3904, PNP can be use as 2SA684(1A) or similar.

Nov 14, 2014
56
1
thanks ScottWang, in your opinion, how much maximum load without any problem in this case?

17. ### ScottWang Moderator

Aug 23, 2012
5,437
856
The normally you will need to add some more current at least add about 20%, so the calculation will be as:
Arduino 5V/40mA → R_limit (2.4mA) → NPN (24mA) → PNP (240mA)
That will be enough for many applications.

You have to test how is the real current for the load needs and not just look at infos from the datasheet.

Nov 14, 2014
56
1
ok, thanks.

19. ### ScottWang Moderator

Aug 23, 2012
5,437
856
What you need is just like the circuit shows in Fig-07, the values of resistors will be change according to the current.