edge lab LIVE! starts Tuesday in Munich. Grab a workshop seat and take home the board you build on. Code FRIEND-HACKSTER saves 20%. () Learn more!
Tejeshw Vardhan
Created January 1, 2019 © GPL3+

Isolated DC Switch

The isloated DC switch is like a DC MCB. the user side input and low voltage controler are completely isolated from high voltage.

IntermediateProtip5 hours110
Isolated DC Switch

Things used in this project

Hardware components

acs 758
×1
2 Form A Photovoltaic Isolator
Infineon 2 Form A Photovoltaic Isolator
×1
IPT60R028G7XTMA1 Power MOSFET
Infineon IPT60R028G7XTMA1 Power MOSFET
×1
Arduino Nano R3
Arduino Nano R3
×1

Story

Read more

Schematics

DC MCB Schematic

Complete schematic for design of DC MCB

Code

Solid state DC MCB using Coolmos Mosfet

Arduino
This code is use to integrate the electronics. You can use this code to make a variable High voltage(500 volt) DC MCB.
/* This is a simple code for a programmable DC MCB Miniature Circuit Breaker using CoolMos 60r28 and acs758(100amp) */




const int analogIn = A0;
const int pot =A1;
int mVperAmp = 20;
int ACSoffset = 2492;
int RawValue= 0;
const int mosfet=9;
double Voltage = 0;
double Amps = 0;


void setup(){ 
 Serial.begin(9600);
 pinMode(mosfet,OUTPUT);
 delay(1000);


 
}



void loop(){

   
  RawValue = analogRead(analogIn);
 Voltage = (RawValue / 1023.0) * 4998; // Gets you mV
 Amps = ((Voltage - ACSoffset) / mVperAmp);
 Amps = Amps+0.016 ;

 int potval= analogRead(pot);
 potval= map(potval, 0,1023,0,100);

 Serial.print(" AMP SET=   " );
 Serial.print(potval );
 Serial.print("    " );

 Serial.print("Raw Value = " ); // shows pre-scaled value 

 Serial.print(RawValue); 
 Serial.print("\t mV = "); // shows the voltage measured 
 Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
 Serial.print("\t Amps = "); // shows the voltage measured 
 Serial.println(Amps,3); // the '3' after voltage allows you to display 3 digits after decimal point
 delay(1); 
 //if (Amps < 0.200)  // current ampre setting is 0.2AMP.   Set value in code or use potentiometer 
 if (Amps<potval)//  uncomment if you want to use potentiometer to set value 
 {
    digitalWrite(mosfet,HIGH);
 }
    else
    {
      digitalWrite(mosfet,LOW);
      delay (25200000UL);              // 7 hour delay.   just clear the fault and press the reset button of arduino to start the program again
  }


 

Credits

Tejeshw Vardhan
2 projects • 1 follower

Comments