For some reason, I need a Time-Variable DC power source that changes it's value according to time. I need this changing of value to be controllable. I'll put it this way : Say I have a 12 volt DC power source like a car battery. In some point of time I need this value to be changed to 11 volts, then to 9 volts...etc to zero volts. Then start the cycle backwards from zero to 1 volt, then it increases to reach 12 volts and this process is time-controlled and time-based. I am somehow familiar with buck converters, and I know they step down the supplied voltage, but I want this step down and then backward cycle of reaching up the supplied voltage to be time-controlled. I need to be able to control the whole cycle of this time-variable DC source.

The question is: Does such a circuit exist? And if yes what are those circuits called?

Notice that I didn't specify any info about wattage or ampere for the circuit, but if this was a problem then I guess the example I presented gives some hints: 12 volts source power varying to zero then cycles backwards from zero to 12 volts. Efficiency is needed as high as possible.

Thanks for contributing in any ideas that helps design or clarify the nature of the required circuit.

  • \$\begingroup\$ If the circuitry requiring this type of voltage input is high-impedance then you could write a simple program to drive a DAC to generate any arbitrary voltage. You could also write the code such that you take serial commands and drive it on-demand. If this will not work for you, then see Arbitrary Waveform Generator. \$\endgroup\$
    – sherrellbc
    Feb 9, 2015 at 3:02
  • \$\begingroup\$ There is a special term for time varying DC. It is called AC. If the waveform ramps up and down in linear fashion and is fixed in period, this is actually a low frequency triangle wave. Depending on what you want it for there are a lot of ways to generate it. You could create a low-voltage replica using a microcontroller DAC, then play it into a class D amplifier, for example. \$\endgroup\$
    – mkeith
    Feb 9, 2015 at 3:54
  • \$\begingroup\$ By time controlled do you mean the power is changed in constant time increments, like AC? Is it a stepped (e.g. 1V to 2V) or continuous (e.g. sinusoidal) waveform? Can you post an example voltage vs time plot to make it more clear? \$\endgroup\$ Feb 9, 2015 at 4:29
  • \$\begingroup\$ @sherrellbc I am not looking for a waveform generator! If I was I would clearly say it. I want a Time-Variable DC "Power Source" not a "Waveform Generator" , thank you so much. \$\endgroup\$ Feb 9, 2015 at 11:42
  • \$\begingroup\$ @mkeith Well I am aware of the existence of AC power sources! Thanks for the hint. What I asked for was a DC Time-Variable Controllable Power source, so I can control it's value in the whole cycle time. Thank you so much. \$\endgroup\$ Feb 9, 2015 at 11:44

2 Answers 2


It sounds like you want a power supply that can be controlled externally. Fortunately, these exist, and they are called programmable power supplies. You can connect a laptop to them and send them commands using MATLAB or another scripting language through a GPIB interface. For example check out these power supplies, and this GPIB cable.

The company I work at uses a lot of programmable instruments combined with MATLAB to automate hardware tests.

  • \$\begingroup\$ I checked the links @pikafu yes this is somehow similar to what I want. But the example I presented is clear I think. I have the voltage "steady" source all I want is a circuit that would vary it with time like explained previously. Thanks for your answer \$\endgroup\$ Feb 9, 2015 at 11:53
  • \$\begingroup\$ Thanks for clarifying. In that case I don't have the expertise to recommend a solution now. I will do some research and update my answer if I find anything new! \$\endgroup\$ Feb 9, 2015 at 13:44
  • \$\begingroup\$ Update: electronics-lab.com/projects/power/020 shows how to build a microcontroller controlled power supply. However as mkeith pointed out, it doesn't go all the way to 0V. I recommend searching for "microcontroller controlled power supply" and see what you get. \$\endgroup\$ Feb 9, 2015 at 13:53
  • \$\begingroup\$ Answer was accepted for the update link in the comment. It's very useful @pikafu Thank you for everything you did. If you figure out further solutions I will appreciate it so much :-). \$\endgroup\$ Feb 9, 2015 at 18:31

You could use an SMPS with external feedback, and modify the feedback setpoint to adjust the output voltage. Typically the external feedback is a resistor divider that divides the output voltage down to the reference voltage (when output voltage is at the correct setpoint). However this won't support using an output voltage less than the reference.

You could control a DAC to make the 0-12V control signal (at low current), then drive an output stage to increase the available drive current. An emitter follower would be pretty simple (and being NPN avoids thermal runaway), though the DAC will need to drive about 0.7V higher to account for the Vbe voltage drop. Or you could use an opamp driving a FET, using negative feedback to ensure the output voltage matches the DAC output.

  • \$\begingroup\$ Emitter follower is a linear circuit. OP said as efficient as possible, so that would not qualify. The SMPS idea is better, but it is usually not possible to ramp it down to zero. \$\endgroup\$
    – mkeith
    Feb 9, 2015 at 3:56
  • \$\begingroup\$ Can you provide some links for the schematic design ? And what type is that "output stage" after creating the DAC signal ?@MarkU \$\endgroup\$ Feb 9, 2015 at 11:57
  • 1
    \$\begingroup\$ @Billo the output stage MarkU is suggesting is a BJT current gain stage which will provide the necessary current for your load. You can read about it here: hyperphysics.phy-astr.gsu.edu/hbase/electronic/emitfol.html#c1 \$\endgroup\$ Feb 9, 2015 at 13:42
  • \$\begingroup\$ @pikafu Man you are awesome! I deeply admire this effort that you're doing. You've clarified enough about the power stage that Marku is talking about, but still I need a design for the circuit that does the variable part. Thank you so much \$\endgroup\$ Feb 9, 2015 at 18:23
  • \$\begingroup\$ @Billo, maybe this would suit your needs: hameg.com/0.271.0.html \$\endgroup\$
    – mkeith
    Feb 14, 2015 at 8:19

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.