• Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Need circuit help? Post them in the comments! I've answered over 50,000!

Blog | Categories | About | Contact | Calculators-online
You are here: Home / Arduino Projects / 100A AC Load Monitoring Circuit using Arduino, Watt Limit, LCD, Alarm, Auto Shutdown

100A AC Load Monitoring Circuit using Arduino, Watt Limit, LCD, Alarm, Auto Shutdown

Last Updated on June 3, 2025 by Swagatam 2 Comments

In this project we are going to make one very useful grid power protection circuit. This will be like a power guard system which we can use in homes or apartments to monitor the wattage of the load and also to cut off the load automatically if it starts taking too much wattage, more than what we allowed. This circuit is very good if we want to protect our wiring or prevent overloading in rented flats or inside any inverter output etc.

Table of Contents
  • What this project will do?
  • Parts we need for building this project
  • Complete Circuit Diagram
  • How to connect everything
  • How this circuit works in step-by-step logic
  • Full Arduino Code
  • A few Ideas to Improve the Project (Optional)
  • What happens after shutdown?
  • So is this shutdown permanent?
  • Can we reset the overload lock just by switching OFF/ON the power?
  • Conclusion:

What this project will do?

Let us first understand that what exactly this project will be doing for us. So this Arduino project will do these main things:

First it will read the current of the AC load using a 100A current sensor, like ACS758 or SCT-013.

Then it will multiply the current with the voltage to calculate the power in watts. Because as we know Power = Voltage × Current, right?

After that, it will show this power value on an LCD display with I2C so we can see how many watts are being used.

Now we will have two push buttons, one for increasing and one for decreasing the power limit in watts. So we can set the max wattage we want to allow.

Then if the load starts taking more than this wattage limit, then system will start warning using a buzzer alarm.

After the limit is crossed 3 times, then system will switch OFF the relay and cut off load automatically to protect.

All the process like watt, limit, shutdown etc. will be shown on the LCD screen so that we can know what is going on.

Parts we need for building this project

Let us now see what parts we must collect to build this full circuit.

warning message: electricity is dangerous, proceed with caution
Part NameQuantityWhat it does
Arduino UNO1Main brain, controller
ACS758 100A or SCT-0131Current sensor to sense high amps
16x2 LCD with I2C1To show the wattage, limit, and messages
Push buttons2To increase and decrease the watt limit
5V Relay module1To cut the AC load if power goes high
Buzzer1To give warning beep sound
Power supply 5V1For giving power to Arduino and others
Jumper wires, resistorsAs neededTo connect everything properly

Complete Circuit Diagram

How to connect everything

Now let us try to understand how we are going to connect all these components together with Arduino:

We take the output pin of ACS758 current sensor and connect it to A0 analog pin of Arduino.

Then we take SDA and SCL pins of LCD I2C module and connect them to A4 and A5 of Arduino respectively.

We take the push button for UP and connect one side to D2 pin, and the other side to GND. We also connect one 10K pull-up resistor to make it work correctly.

Same way, we connect DOWN push button to D3 of Arduino.

Then we connect the IN pin of relay module to D7 pin, so that Arduino can control the relay.

For the buzzer, we connect positive side to D8 and negative to GND.

The ACS758 sensor VCC pin we connect to 5V, and GND to GND.

Load wires must go through the sensor so that it can sense correct current.

How this circuit works in step-by-step logic

Now let me explain the main working logic of this project in a super simple way:

First when we switch ON everything, Arduino starts reading the analog value from the current sensor.

This analog value tells how much current is flowing in the load wires.

We already know the voltage of AC mains, like 220V or 110V, so Arduino multiplies Current × Voltage to get the Power in Watts.

Arduino then shows the live wattage on LCD. So we can see how much power the load is taking right now.

Now we can use UP and DOWN buttons to set a Watt limit, like 500W or 1000W or whatever we want.

This limit value is also shown on LCD, so we can know what limit is set.

Then if the load power crosses this watt limit, then Arduino will ring the buzzer to give warning.

Arduino will count how many times the power crossed the limit.

If it happens 3 times then Arduino will turn OFF the relay and the load will be shut down to avoid damage.

LCD will now show “LOAD SHUTDOWN” so we know it is OFF.

This is how the full system works in loop.

Full Arduino Code

Now here is the full Arduino code which we can upload directly into the Arduino UNO board.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int currentSensorPin = A0;
const int buttonUp = 2;
const int buttonDown = 3;
const int relayPin = 7;
const int buzzerPin = 8;

float current = 0.0;
float voltage = 220.0; // Fixed AC voltage
float power = 0.0;
int wattLimit = 500; // Starting default limit
int warningCount = 0;
bool relayOn = true;

void setup() {
  pinMode(buttonUp, INPUT_PULLUP);
  pinMode(buttonDown, INPUT_PULLUP);
  pinMode(relayPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);

  lcd.begin();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("AC Load Monitor");
  delay(2000);
  lcd.clear();
}

void loop() {
  readCurrent();
  power = current * voltage;

  lcd.setCursor(0, 0);
  lcd.print("Pwr:");
  lcd.print(power, 1);
  lcd.print("W  ");

  lcd.setCursor(0, 1);
  lcd.print("Limit:");
  lcd.print(wattLimit);
  lcd.print("W ");

  if (digitalRead(buttonUp) == LOW) {
    wattLimit += 50;
    delay(300);
  }
  if (digitalRead(buttonDown) == LOW) {
    wattLimit -= 50;
    if (wattLimit < 0) wattLimit = 0;
    delay(300);
  }

  if (power > wattLimit && relayOn) {
    warningCount++;
    beepWarning();
    if (warningCount >= 3) {
      digitalWrite(relayPin, LOW);
      relayOn = false;
      lcd.setCursor(0, 1);
      lcd.print("Load SHUTDOWN   ");
    }
  }

  if (relayOn) {
    digitalWrite(relayPin, HIGH);
  }

  delay(1000);
}

void readCurrent() {
  int sensorValue = analogRead(currentSensorPin);
  float voltageReading = (sensorValue / 1023.0) * 5.0;

  float offset = 2.5;
  float sensitivity = 0.04;

  current = (voltageReading - offset) / sensitivity;
  if (current < 0.3) current = 0; // remove noise
}

void beepWarning() {
  digitalWrite(buzzerPin, HIGH);
  delay(300);
  digitalWrite(buzzerPin, LOW);
}

A few Ideas to Improve the Project (Optional)

If we want to save the watt limit even after power goes OFF then we can use EEPROM in Arduino to store it.

We can add one reset button to turn ON the load again if it goes OFF after shutdown.

If we want real-time voltage also then we can use ZMPT101B voltage sensor and multiply real voltage × current to get full accurate power.

We can also add LCD scrolling or extra rows to show more messages like warning, counter value etc.

What happens after shutdown?

So in our current code, after 3 warnings, Arduino cuts the relay by doing digitalWrite(relayPin, LOW);, and then sets relayOn = false;.

Now because relayOn = false, Arduino will never turn ON the relay again even if the power becomes zero.

Then every time the loop runs, this line:

if (relayOn) {
  digitalWrite(relayPin, HIGH);
}

will not activate because relayOn = false. So Arduino keeps the load OFF permanently.

So is this shutdown permanent?

Yes bro, this shutdown is permanent in our current code. Once it shuts down the load after 3 warnings, it will stay OFF forever.

This is actually good for safety because it means some human must check what went wrong, fix the overload and then manually reset the system.

Can we reset the overload lock just by switching OFF/ON the power?

Yes we can do that easily.

So what happens is:

  • When Arduino is running, it stores all values like warningCount, relayOn, etc. only inside RAM (temporary memory).
  • This RAM gets erased the moment you cut the power to Arduino.
  • So now when we switch ON power again, then Arduino starts from the top, like fresh baby, with all values reset to default.

Conclusion:

So friends, this is how we can build one smart and powerful AC Load Monitoring System using Arduino with full wattage calculation, limit setting, warning alarm, and auto shut down feature. We used 100A sensor so we can handle big current loads also. And the LCD shows everything live.

If anybody wants to protect their AC wiring or apartment or inverter from overload, this is the best project to try.

You'll also like:

  • 1.  Arduino IR Remote Control Circuit
  • 2.  Real MPPT Solar Charger Circuit Using Arduino, LCD, and Manual/Auto Switch
  • 3.  Introduction to RGB Colour sensor TCS3200
  • 4.  Automatic Street Light Dimmer Circuit
  • 5.  Make this 7 Segment Digital Clock with Beep Alert Circuit
  • 6.  SMS Based Water Supply Alert System

Filed Under: Arduino Projects Tagged With: 100A, AC, Arduino, Load, Monitoring, Watt

About Swagatam

I am an electronics engineer and doing practical hands-on work from more than 15 years now. Building real circuits, testing them and also making PCB layouts by myself. I really love doing all these things like inventing something new, designing electronics and also helping other people like hobby guys who want to make their own cool circuits at home.

And that is the main reason why I started this website homemade-circuits.com, to share different types of circuit ideas..

If you are having any kind of doubt or question related to circuits then just write down your question in the comment box below, I am like always checking, so I guarantee I will reply you for sure!

Previous Post: « RC Snubber Calculator for MOSFETs, Relay Contacts and Triacs
Next Post: Explained: Snubber Circuit for MOSFET H-Bridge »

Reader Interactions

Comments

  1. MOSES says

    June 5, 2025 at 2:27 am

    I AM VERY PLEASED TO SEE THIS PROPOSITION QUICKLY IMPLEMENTED.I HAVE TRIED UPLOADING THE CODE WITH ARDUINO IDE SOFTWARE AND IT WAS SUCCESSFUL. YOU HAVE DONE WELL SIR. I WILL IMPLEMENT THIS SOON. STORING THE PROGRAM IN EEPROM WILL BE QUIET INTERESTING TO CREATE A MORE FRIENDLY USER INTERFACE. THAT WAY, THE SET INFORMATION WILL NOT BE LOST AND PUT THE END USER IN A SORT OF CONFUSION ON HOW TO GO ABOUT THE SETTING. I THINK IT WILL BE BETTER FOR THE USER’S LAST SETUP TO STILL REMAIN WHEN POWERED ON AFTER OVERLOAD SHUTDOWN. THE QUESTION I HAVE IS WHETHER THE OUTPUT IS NOT COMPARABLY ACCURATE WITHOUT ZMPT101B. I ANTICIPATE THAT IN NO DISTANT TIME THIS ARTICLE WILL BE UPDATED WITH ALL THE RECOMMENDATIONS YOU SUGGESTED INCLUDED.

    Reply
    • Swagatam says

      June 5, 2025 at 10:01 am

      Thanks Moses, glad you liked the post. You can test this basic version, if it works correctly then afterwards we can upgrade the code by adding further enhancements into…

      Reply

Need Help? Please Leave a Comment! We value your input—Kindly keep it relevant to the above topic! Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

circuit simulator image

Subscribe to get New Circuits in your Email



Categories

  • Arduino Projects (89)
  • Audio and Amplifier Projects (132)
  • Automation Projects (17)
  • Automobile Electronics (101)
  • Battery Charger Circuits (83)
  • Datasheets and Components (105)
  • Electronics Theory (143)
  • Free Energy (37)
  • Games and Sports Projects (11)
  • Grid and 3-Phase (19)
  • Health related Projects (25)
  • Home Electrical Circuits (12)
  • Indicator Circuits (14)
  • Inverter Circuits (88)
  • Lamps and Lights (142)
  • Meters and Testers (69)
  • Mini Projects (46)
  • Motor Controller (64)
  • Oscillator Circuits (28)
  • Pets and Pests (15)
  • Power Supply Circuits (108)
  • Remote Control Circuits (50)
  • Security and Alarm (64)
  • Sensors and Detectors (102)
  • Solar Controller Circuits (59)
  • Temperature Controllers (42)
  • Timer and Delay Relay (49)
  • Transmitter Circuits (29)
  • Voltage Control and Protection (40)
  • Water Controller (36)



Other Links

  • Privacy Policy
  • Cookie Policy
  • Disclaimer
  • Copyright
  • Videos
  • Sitemap

People also Search

555 Circuits | 741 Circuits | LM324 Circuits | LM338 Circuits | 4017 Circuits | Ultrasonic Projects | SMPS Projects | Christmas Projects | MOSFETs | Radio Circuits | Laser Circuits | PIR Projects |



Social Profiles

  • Twitter
  • YouTube
  • Instagram
  • Pinterest
  • My Facebook-Page
  • Quora
  • Stack Exchange
  • Linkedin


  • Recent Comments

    • Swagatam on 9 Simple Solar Battery Charger Circuits
    • Swagatam on Universal H-Bridge Circuit Module
    • Pravin Nagpure on Universal H-Bridge Circuit Module
    • Dan Biles on 9 Simple Solar Battery Charger Circuits
    • Swagatam on Universal H-Bridge Circuit Module

    © 2025 · Swagatam Innovations