this is a very specific question and i'm unsure if this is the right place to ask. I am constructing a battery discharge circuit. The discharge circuit specifications:

  • To be able to discharge battery's (voltages ranging from 10V batterys to 50V batterys)
  • To be able to support a discharge current between close to 0A and 5A

Because of the wide range voltages and currents i'm having a hard time finding the right variable resistor element. The solution I've arrived to is using a transistor (with high power dissipating capabilities (which i can further enhance by attaching to a heat sink)) with a high precision DAC placed at the base/gate effectively giving me digital control of the respective resistance between the collector-emitter/drain-source.

I understand operating the transistor in this non-linear region can be difficult, however if i correctly apply the mathematics inside the PIC which controls the DAC via SPI, and if i take into account the voltage across the resistor, it may be possible to map the gate/base voltage to the resistance between the two terminals (collector-emitter/drain-source).

enter image description here Circuit Diagram Attached.

Is this a good cost-effective method of solving this variable resistor element problem? If so, i don't know enough about respective transistor families (BJT, MOSFET, JFET) to know which would be the best to use. Furthermore, temperature variation in the transistor could greatly change the desired resistance and i'm unsure how to tackle this.

Notes: regarding the circuit diagram attached: - Q1 is the transistor (variable resistor element) controlled by a precision DAC at the base/gate respectively. - R8 is a high side current shunt element - V2 is the battery to be discharged (ranging from 10V - 50V) - U16A is a non-inverting rail to rail single supply amplifier with the purpose of copying the voltage with attenuating it 10. The voltage follower (U17B) then copy's the signal with respect to a 5V power supply while ensuring U16A draws an insignificant amount of current.

  • \$\begingroup\$ Can you specify the minimum current you would like to see. How many bits do you need from the DAC? Eg if 12 bits and 5A full scale then the minimum would 1.2 mA. At 50V 5A the power would be 250W. At 10V 1.2mA the power would be 12mW. These seems like an extraordinary range for simply discharging a battery? \$\endgroup\$
    – scorpdaddy
    Commented May 13, 2020 at 13:32

1 Answer 1


Don't try and mimic a resistor. Design a voltage controlled constant current sink. It will be much easier and more exact. Here is a brief idea: -

enter image description here

If you choose \$R_R\$ to be 1 ohm, with 5 volts at \$V_{IN}\$, the current drawn from the battery will be 5 amps. However, \$R_R\$ will dissipate 25 watts so it can be scaled down using a 0.1 ohm resistor.

However, the circuit is linear and either the resistor gets warm or the transistor gets warm or both. It will need significant heat-sinking.

  • \$\begingroup\$ At 50V 5A the power to dissipate is 250W. It seems unlikely that the circuit above could be passively cooled enough to handle 250W even with heat sinks etc. \$\endgroup\$
    – scorpdaddy
    Commented May 13, 2020 at 13:34
  • \$\begingroup\$ It'll need a fan for sure. \$\endgroup\$
    – Andy aka
    Commented May 13, 2020 at 13:50
  • \$\begingroup\$ You may also need to parallel-up multiple transistors to split the heat between them? \$\endgroup\$
    – scorpdaddy
    Commented May 13, 2020 at 18:05
  • \$\begingroup\$ It doesn't seem like a good idea to connect the output of the opamp directly to the base, without a series resistor, as Rr has to be quite small to accommodate 5A. \$\endgroup\$
    – scorpdaddy
    Commented May 13, 2020 at 18:07
  • \$\begingroup\$ The op-amp will supply only enough current to the base to deliver the voltage at the emitter. As I said in my answer "Here is a brief idea". @scorpdaddy did you deliver the downvote? \$\endgroup\$
    – Andy aka
    Commented May 13, 2020 at 18:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.