Arduino DC-DC Boost Converter Design Circuit with Control Loop
This post will cover how to use an Arduino Uno to easily control a 10W+ boost converter.
A discrete boost converter can be built by using just a few parts, namely an inductor, capacitor, diode, and a FET. Please see the Wikipedia page for how the circuit works. It works off of the premise that an inductor will store energy in its magnetic field and then when it collapses (switch opens), it will resist the current change and reverse its magnetic field polarity so as to keep current moving. The voltage at the switch node can then be summed from the input to output to create a higher voltage at the output.
Keeping the switch closed 100% of the time will merely charge the inductor and the output will equal 0V. Keeping the switch open 100% of the time will cause the inductor to act as a resistor at steady-state and the output will approximately equal the input voltage. Turning the switch OFF and ON rapidly will allow the inductor to charge itself when the switch is closed and then dump energy into the output capacitor when the switch is opened. Care must be taken into choosing how long to keep the switch closed since you do not want to saturate the inductor and cause the current to drop to 0A. The two different modes of operation, continues and discontinuous, refer to the current through the inductor. See this paper for more information on the two modes. Essentially you will want your circuit to operate in continues mode so that the the output voltage does not droop below the intended target and it lessen the effect on radiated emissions which will need to be mitaged to pass CE certification.
Here is the circuit I made in LTspice, a popular and free SPICE simulation software. Another option is to use the Lite version OrCAD PSpice Designer. I’ve used both and the OrCAD one seems less clunky than the LTspice version.
|L1||811-1335-ND||IND 330UH 2.8A 150 MOHM|
|Q1||IRLI640GPBF-ND||MOSFET N-CH 200V 9.9A TO220FP|
|D1||497-3216-1-ND||DIODE SCHOTTKY 150V 3A|
|C1||493-1164-ND||CAP ALUM 47UF 20% 160V RADIAL|
|R1||150W-5-ND||RES 150 OHM 5W 5% AXIAL|
This boost converter can safely boost a small voltage of a few volts to a larger voltage of 100V+ as long as the absolute maximums of the parts listed above are not violated. The converter is most efficient when the delta between output to input voltage is small. For example, boosting a 5V input to 80V will not be as efficient as going from 40V to 80V. You will need to experiment with the simulation in order to determine the output vs input curve without saturating the inductor. A 5V to 100V boost is obtainable at high loads with this design, but it will consume too much input current at lower loads.
As a safety precaution, get a power supply that is capable of current limiting to 2.5A. This will ensure that the inductor and schottky diode are not damaged. The output voltage must also not exceed ~140V since the blocking voltage of the schottky is rated up to 150V and the capacitor is 160V.
Before I purchased the above parts I did some simple simulations inside of LTspice. I need the input current to be less than 2A and output voltage to be between 24V-100V. The square wave input to the FET simulates the Arduinio PWM. I fixed that to a frequency of 62KHz which is what the max PWM frequency of the Arduino is. The on time was adjusted to achieve various voltage points and to operate in continuous conduction mode (current does not fall to 0A).