I am using an Arduino Uno board and R-2R DAC to obtain a signal which should vibrate a transducer connected across RL of common collector amplifier using TIP31C. I need around 300mA of current to vibrate the transducer which is much like speaker (resistance is about 10 ohms).

I have calculated the biasing resistor values, by using the link from guitarscience.net,(sorry forum is not allowing to insert the link) as R1=39ohm and R2=82ohms with Vcc=5Volts for all the components. But I dont get the waveform shown in the fig (1) instead output is always HIGH. I have measured the voltages for the above values using multimeter and they are, VBE = 3.7V, VCE = 1.8V, VRL(voltage across the load) = 3V

Then used the link available from hyperphysics (sorry forum is not allowing to insert the link) and used R1=31 kilo ohms and R2=55 kilo ohms upon measuring VBE = 0.5V, VCE = 4.8V, VRL(voltage across the load) = 0.4V and this time output is very much suppresed but has the same shape of the input.

Kindly help me to bias the bjt properly. The images are as below: enter image description here [![enter image description here][2]][2]

My first constraint is I have to work with 5 Volts for all the components.So arduino, LM358 and TIP31 are all at 5volts supply.

The previous ckt was incomplete and the complete ckt is as below (Fig 3), here the R1 to R11 = 20K ohms and R12 to R18 are 10K ohms and R19 is the load (of about 10 ohms). Upon measuring without connecting the transistor, i.e. with only arduino, R2R and LM358, I am getting 2.5 Volts at the point 'A' as well as 'B'.(seems to be working properly).

But when BJT anlong with the load is connected across TIP 31C (removed biasing resistors after the previous reply), the output at 'A' = 2.5Volts and But at 'B'=0.5 volts, VBE=0.5 Volts, VCE=5Volts, VRL=0 Volts.

Kindly tell me the mistake enter image description here

  • \$\begingroup\$ With your original 39 and 82 ohm resistors, the LM358 probably could not provide sufficient current to affect the base voltage of Q1. If you omit R1 and R2, the output of the LM358 will set the base voltage. Since Q1 is an emitter follower, the emitter voltage will be 0.7 volts below the base voltage. You will have to set the gain and offset of the LM358 to set the desired operating point and overall gain. \$\endgroup\$ – Peter Bennett Feb 2 '16 at 5:11

Assuming you are using multiple Arduino outputs to drive the ladder, the ladder output is attempting to drive a current into the LM358. This ensures that the - input will always be larger than ground, and the op amp output will always be zero, or whatever your - supply is (I'm assuming you're powering the LM358 from ground and +5). Your amplifier is faithfully trying to drive the load to ground as a result.

In addition to this, you have no feedback around the opamp, so there is no way for the load to follow the ladder in any proportional manner.

Since you have an op amp, there is no need to try to bias your output transistor. Instead, add another op amp and do something like


simulate this circuit – Schematic created using CircuitLab

And yes, this requires that you add a second, negative power supply.

Also, an opamp like an LM358 will not work well at +/- 5 volts, as it is only guaranteed to drive something like +/-2 volts on the output. You need to get some rail-to-rail op amps.

  • \$\begingroup\$ The LM358 is a cheap and grossly non-ideal Op-Amp, but it is not as bad as you make it sound. It's designed for single supply circuits, and delivers adequate performance at 5 volts. While its capability to sink the output to ground is "less than stellar", output voltages below 0.6 volts are unneeded and the load is quite capable of sinking base voltage itself. If steep downwards transients are still problematic, a shunt from base to ground should do. OTOH you are perfectly right that an inverting configuration with the non-inv input at ground is unable to work. \$\endgroup\$ – Michael Karcher Feb 4 '16 at 8:09
  • \$\begingroup\$ Thank you @WhatRoughBeast n Michael Karcher for the help. I have used the ckt suggested by WhatRoughBeast, I was geting 2.5V at the r-2r laddder network before but after using the above ckt the voltage at second opamp still saturates, the value are: With R1=R2=R3=20K Ohms, voltage at the output point of ladder=1V, at OA1= -2V, OA2= -4.6V and across the load is -50mv. Kindly tell me how do I overcome this problem \$\endgroup\$ – user96468 Feb 10 '16 at 10:47
  • \$\begingroup\$ @user96468 - most likely you've misconnected your OA2 or the transistor. Is your transistor lead pattern EBC or ECB? And what is your load resistance? Also, I made an error in the schematic - see the updated version. Load goes to ground. \$\endgroup\$ – WhatRoughBeast Feb 10 '16 at 15:08
  • \$\begingroup\$ @WhatRoughBeast thank you very much for the reply. I just rechecked the connections for the correctness and connected other end of the load to ground. OA1 and OA2 are LM358, bjt is TIP31C with lead pattern ECB. The load is a vibrator of reistance 10 ohms. As of now I am getting some waveform accross the load and its frequency is quite higher than what is it intended through Arduino board (not the required one as shown in my fig 1) So what should be the values of R1,R2,R3? \$\endgroup\$ – user96468 Feb 12 '16 at 5:08
  • \$\begingroup\$ @user96468 - Are your 9 volt sources batteries? \$\endgroup\$ – WhatRoughBeast Feb 12 '16 at 17:45

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.