Arduino Amperage Sensor

So I think the thing that excited me the most about getting into making circuits was trying to get a handle of the things all around me, trying to grasp what is accepted and start to understand it. This for me, started with the essentials, bills that no matter how much money or who you knew you had to pay, Like for example electricity.

It all actually started when I wanted to put a windmill generator in, but I really wanted to get a grasp of how we used power at my house, was it a straight draw or did it get higher and lower. I struggled a lot with this I saw lots of payed for solutions online, but they all were expensive and most required a monthly fee, I of course didn’t want to do this since I was trying to get a handle on my expenses. The first thing I wanted to to when I got my arduino is figure out how man kwh I was using. I found the perfect article of people excited like me. http://openenergymonitor.org/emon/buildingblocks/how-to-build-an-arduino-energy-monitor, but when I saw this circuit I freaked out, why is the resistor going across the positive and negative leads, this makes no sense. So I shelved the project to do some easier projects that allowed for me to start to understand circuit design, and what was happening. Today I thought I would tackle it, and it worked surprisingly well, it took me longer to figure out where I stashed my 10uF capacitors, then to build the whole circuit. See Attached videos…

#include "EmonLib.h"             // Include Emon Library
EnergyMonitor emon1;             // Create an instance
 
void setup()
{  
  Serial.begin(9600);
 
  emon1.voltage(2, 208, 1.7);  // Voltage: input pin, calibration, phase_shift I have ~ 208 volt at my house adjust for you
  emon1.current(1, 111.1);       // Current: input pin, calibration.
}
 
void loop()
{
  emon1.calcVI(20,2000);         // Calculate all. No.of wavelengths, time-out
  //emon1.serialprint();           // Print out all variables
  //double Irms = emon1.calcIrms(1480);  // Calculate Irms only
  float apparentPower   = emon1.apparentPower;
  float amps = apparentPower/208; //I have ~208 volts Adjust for you
  Serial.print(amps);
  Serial.println();
  delay(1000);
}

See Ya Later,

–John sixxxx sixxxx sixxxxxx tttttttttyyyyyy siixxxxxx sixxxxx times Hass. <- Hope you get the reference 🙂 P.S. Keep in mind playing with power can be dangerous, so use caution.

Leave a Reply

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