can you help âŠwhen i use the same loads i have different current and power why?
and how i can save the value of relay in (if stetment)
this is the code
// EmonLibrary examples openenergymonitor.org, Licence GNU GPL V3
#include "EmonLib.h" // Include Emon LibrarEnergyMonitor emon1// Create an instance
EnergyMonitor emon1;
EnergyMonitor emon2;
EnergyMonitor emon3;
const int RELAY1_PIN = 3;
const int RELAY2_PIN = 4;
const int RELAY3_PIN = 5;
void setup()
{
Serial.begin(9600);
pinMode(RELAY1_PIN, OUTPUT);
pinMode(RELAY2_PIN, OUTPUT);
pinMode(RELAY3_PIN, OUTPUT);
emon1.voltage(A0, 650,1.7); // Voltage: input pin, calibration, phase_shift
emon1.current(A1,60); // Current: input pin, calibration.
emon2.voltage(A0, 650,1.7); // Voltage: input pin, calibration, phase_shift
emon2.current(A2,60); // Current: input pin, calibration.
emon3.voltage(A0, 650,1.7); // Voltage: input pin, calibration, phase_shift
emon3.current(A3,60);
}
void loop()
{
digitalWrite(RELAY1_PIN, HIGH);
digitalWrite(RELAY2_PIN, HIGH);
digitalWrite(RELAY3_PIN, HIGH);
emon1.calcVI(20,2000); // Calculate all. No.of half wavelengths (crossings), time-out
emon2.calcVI(20,2000); // Calculate all. No.of half wavelengths (crossings), time-out
emon3.calcVI(20,2000); // Calculate all. No.of half wavelengths (crossings), time-out
Serial.println("first load");// Calculate all. No.of half wavelengths (crossings), time-out
emon1.serialprint(); // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
Serial.println("second load ");// Calculate all. No.of half wavelengths (crossings), time-out
emon2.serialprint(); // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
Serial.println("third load");// Calculate all. No.of half wavelengths (crossings), time-out
emon3.serialprint(); // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
//Serial.println();
float realPower = emon1.realPower; //extract Real Power into variable
float apparentPower = emon1.apparentPower; //extract Apparent Power into variable
float powerFActor = emon1.powerFactor; //extract Power Factor into Variable
float supplyVoltage = emon1.Vrms; //extract Vrms into Variable
float Irms = emon1.Irms; //extract Irms into Variable
float realPower1 = emon2.realPower; //extract Real Power into variable
float apparentPower1 = emon2.apparentPower; //extract Apparent Power into variable
float powerFActor1 = emon2.powerFactor; //extract Power Factor into Variable
float supplyVoltage1 = emon2.Vrms; //extract Vrms into Variable
float Irms1 = emon2.Irms; //extract Irms into Variable
float realPower2 = emon3.realPower; //extract Real Power into variable
float apparentPower2 = emon3.apparentPower; //extract Apparent Power into variable
float powerFActor2 = emon3.powerFactor; //extract Power Factor into Variable
float supplyVoltage2 = emon3.Vrms; //extract Vrms into Variable
float Irms2 = emon3.Irms; //extract Irms into Variable
delay(5000);
if(Irms <2.0)
{
digitalWrite(RELAY1_PIN,LOW);
delay(500);
}
if(Irms1<0.5)
{
digitalWrite(RELAY2_PIN,LOW);
delay(500);
}
if(Irms2>100 )
{
digitalWrite(RELAY3_PIN,LOW);
delay(500);
}
}
[Edited for presentation - RW]