03/28/2024

How To Make 1.2-24V | 0-9A Power Supply Variable Voltage, Current. DIY Laboratory Adjustable PS 120W

Variable voltage and current power supply circuit. How to regulate amps and voltage.

This power supply has the ability to adjust 1.2 – 24 volts voltage, 0.2 – 9 Amps current. Maximum power 120W. The power supply also features a 5V constant current 75W power module and a maximum current rating of 5A.
I used 2 fans for cooling. One is for cooling the XL4016 module, which I use as the main regulator. When the temperature in the box exceeds 60 ° C, the first fan will work. If the temperature rises above 65 degrees, the second fan will be activated. The temperature measurument and fan control circuit with the Arduino Pro Mini . The temperature values ​​can be changed via the code. I used an 0.91-inch Oled display with this circuit. This display shows the temperature inside the box and indicates which fan is active. The fans operate with 12V. Arduino control circuit, OLED display operate with 5V. To supply them, I built a small power circuit that provides a constant voltage of 5V and 12V. The power supply consists of 4 circuits. 2 of them are ready regulator module and the other two are 5V & 12V power circuit and fan control circuit.

Max. Current calculation: A=W/V (Current=Watt/Voltage)

MUSTOOL MT8206 2 in 1 Intelligent Digital Oscilloscope Multimeter: https://ban.ggood.vip/RvRx
DANIU PX-988 90W Digital Thermostat Adjustable Iron Soldering: https://ban.ggood.vip/RvRz

5V & 12V Regulator Circuit Required materials:

1 x 7805 Integrated Regulator: https://www.banggood.com/custlink/3mK3adIGQ2

1 x 7812 Integrated Regulator: https://www.banggood.com/custlink/vGDDjYSGAu

2 x 0.33uF Capacitor
2 x 0.1uF Capacitor: https://www.banggood.com/custlink/mDKGOYZmM3

Two Level Fan Control Circuit Required Materials: 1 x Arduino Pro Mini https://www.banggood.com/custlink/vmDGoYZKSt

1 x 18B20 Temperature Sensor: https://www.banggood.com/custlink/G33KjhZD2J

2 x S8050 NPN Transistor:  https://www.banggood.com/custlink/3KGGLySvqi

2 x 270R Resistor: https://www.banggood.com/custlink/GGKDoYZG2w

1 x 0.91 inc Oled Display: https://www.banggood.com/custlink/K33Gjd8Gjk

1 x 8cm Fan 12V: https://www.banggood.com/custlink/K3mGly9mb0

1 x 5-6cm Fan 12V: https://www.banggood.com/custlink/mvGvldIDbA

Other Materials Required for Power Supply: 1 x Laboratory type power supply box – https://bit.ly/30TKE3Z

1 x Min. 24V 120W SMPS metal case adapter: https://www.banggood.com/custlink/KvDKOEIDld

1 x XL4016 300W Adjustable Regulator Module: https://www.banggood.com/custlink/K3vGoyZKls

1 x XL4005 75W Regulator Module https://www.banggood.com/custlink/Gv3Dah8DZa

1 x 100V & 10A Voltmeter: https://www.banggood.com/custlink/GKmvOYSmig

2 x 10K multi-turn potentiometer: https://www.banggood.com/custlink/GDGDly9KB8

4 x 4mm Banana type female socket: https://www.banggood.com/custlink/D3KmoY9K6m


Two Level Fan Control Code:

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DallasTemperature.h>
#define BUS 2
OneWire oneWire(BUS);
DallasTemperature sensor(&oneWire); 
Adafruit_SSD1306 display; 

String Durum; 

void setup ()
{
  pinMode(8, OUTPUT); // S8050 Transistor Port (Fan 1)
  pinMode(6, OUTPUT); // S8050 Transistor Port (Fan 2)

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
  display.clearDisplay();
  display.display();
}
void loop ()
{
  float temp;
  sensor.requestTemperatures();
  temp = sensor.getTempCByIndex(0);
 
  display.setTextColor(WHITE);  

if (temp > 60){                      // Kutu içerisi 60 °C üzerine çıkınca 1. Fan soğutması aktif olacak 
         Durum = "   FAN 1 ";           // When the inside of the box exceeds 60 degrees, the fan number 1 will operate.
         digitalWrite(8, HIGH);
    }
         else {                   
         Durum = "  NORMAL";
         digitalWrite(8, LOW);
    }
          
if (temp > 65){                      // Sıcaklık seviyesi 65 °C de 2 . Fan soğutması aktif olacak 
          digitalWrite(6, HIGH);        // When the temperature exceeds 65 degrees, fan 2 will also operate.
          Durum = "   FAN 2";
                    
    }
    else { 
         digitalWrite(6, LOW);                  
         if (temp > 29) Durum = "   FAN 1"; else Durum = "  NORMAL" ;        
    }
    
  display.setTextSize(2);
  display.drawRect(84, 0, 5, 5, WHITE);
  display.setCursor(91,0);
  display.print("C");
  display.setTextSize(2);
  display.setCursor(20,0);
  display.print(temp);
  display.setCursor(1,19);
  display.setTextSize(2);
  display.print(Durum);  

  display.display();
  display.clearDisplay();
delay (1000);
}

Fan Circuit:

Power Supply Circuit: