SALES INQUIRIES: 1 (888) 767-9864

Arduino Circuit Breaker Simulator :: Student Project

Need to test some large circuit breakers?  You may have found your solution!  This Arduino circuit breaker simulator project was submitted by James, a student of the Arduino Course for Absolute Beginners.

Let me just say I am impressed – I wish I could build something half as cool!

James writes this about his project…

“I work at a power plant and we routinely test large circuit breakers. Because of the constant closing and tripping these breakers take a lot of needless wear and tear.

I decided to build a device that would simulate the breaker.

Large circuit breakers have several circuits that indicate open and close conditions, additionally they perform other functions like alarms and activating other relays.

Technicians needed a small lightweight device that could easily be plugged in and simulate all the same functions.”

Arduino Circuit Breaker Simlulator

James was kind enough to provide all the details of the project including the schematic and the code.

Schematic for the Arduino Circuit Breaker Simulator:

Breaker_Simulator_schem

Arduino Code:

// setting up LCD library

#include 

LiquidCrystal lcd(12,11,5,4,3,2);

//ENSURING PINS ARE NOT ACCIDENTLY CHANGED

const int closePin= 8;//close voltage

const int breakerRelay= 9; // close and trip relay

const int tripButton= A4; // trip voltage input, not actually a button

int battery;

int long calculated_battery;

int buttonstate;

int changestate;

int laststate;

int trip=0;

//FIRST PART LOOKS AT BATT VOLTS AND DISPLAYS. THEN EST BREAKER IS OPEN

void setup(){

  battery=analogRead(A0);

  calculated_battery=(battery/1023)*5.00;

  pinMode(closePin, INPUT_PULLUP);

  lcd.begin(16, 2);

  lcd.clear();

  pinMode(breakerRelay, OUTPUT);

  lcd.setCursor(5,0);

  lcd.print("Breaker");

  lcd.setCursor(0,1);

  lcd.print("Stimulator v1.1");

  delay(5000);

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print("5V supply:");

  lcd.setCursor(11,0);

  lcd.print(calculated_battery);

  lcd.setCursor(14,0);

  lcd.print("V");

  delay(5000);

  changestate = HIGH;

}

void loop(){

  buttonstate = digitalRead(closePin);

  laststate = changestate;

  trip = analogRead(tripButton);

  // delay was needed so text on LCD display would not flicker so badly

  delay(100);

  // TRIP BREAKER

  if (changestate == HIGH && laststate == HIGH && buttonstate == HIGH || buttonstate ==

    HIGH && trip < 335 && laststate == LOW){

    openBreaker();

  }

  // CLOSE BREAKER

  else if (changestate == LOW && laststate == LOW || buttonstate == LOW && trip <

    300){

    closeBreaker();

  }

}

// close breaker function

void closeBreaker(){

  changestate = LOW;

  lcd.clear();

  digitalWrite(breakerRelay, HIGH);

  lcd.setCursor(5,0);

  lcd.print("CLOSE ");

  if (trip < 335){     readymessage();   }   else if (trip >335){

    notreadymessage();

  }

}

// open breaker function

void openBreaker(){

  changestate = HIGH;

  lcd.clear();

  digitalWrite(breakerRelay, LOW);

  lcd.setCursor(3,0);

  lcd.print("TRIP/OPEN");

  lcd.setCursor(0,1);

}

// THE FOLLOWING SUBS ARE TO INFORM OPERATOR, WHEN BREAKER CAN BE

TRIPPED/OPENEND

void readymessage(){

  lcd.setCursor(6,1);

  lcd.print("ready");

}

void notreadymessage(){

  lcd.setCursor(3,1);

  lcd.print("standby");

}

James would love to hear your comments and suggestions in the comments.

4 Comments

  1. Avatar Ramesha Dasharatharam on January 10, 2016 at 8:03 am

    Hi: would need to understand what all conditions of the breakers are simulated, could it be used for Medium Voltage breakers of 11kV as well?

  2. Avatar Mahira Banu on February 28, 2017 at 12:21 am

    Hai i would like to control circuit breaker from web application wil you help me and this code giving error “REady message is not decared in the scope”
    Will you pls guide me to clear the work

  3. Avatar Dale on August 28, 2019 at 3:22 pm

    Do you have any more detail and pictures of this project?

    • Avatar Michael James on August 29, 2019 at 10:12 am

      Hi Dale! Outside of the schematic listed and the posted code, I do not have anything more. I’ll reach out to our student and see if he has more.

      Is there something specific you are looking for?

Leave a Comment