51 lines
1.2 KiB
C++
51 lines
1.2 KiB
C++
// EmonLibrary examples openenergymonitor.org, Licence GNU GPL V3
|
|
|
|
#include "EmonLib.h" // Include Emon Library
|
|
EnergyMonitor emon1; // Create an instance
|
|
|
|
// DEMUX
|
|
#define MUX_A D5
|
|
#define MUX_B D6
|
|
#define MUX_C D7
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(9600);
|
|
pinMode(MUX_A, OUTPUT);
|
|
pinMode(MUX_B, OUTPUT);
|
|
pinMode(MUX_C, OUTPUT);
|
|
emon1.current(0, 60); // Current: input pin, calibration.
|
|
}
|
|
void changeMux(int c, int b, int a) {
|
|
digitalWrite(MUX_A, a);
|
|
digitalWrite(MUX_B, b);
|
|
digitalWrite(MUX_C, c);
|
|
delay(200);
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
changeMux(LOW, LOW, LOW);
|
|
delay(1000);
|
|
|
|
double Irms = emon1.calcIrms(1480); // Calculate Irms only
|
|
Serial.print(" 1 === ");
|
|
Irms = emon1.calcIrms(1480);
|
|
Irms = emon1.calcIrms(1480);
|
|
Serial.print(Irms*230.0); // Apparent power
|
|
Serial.print(" === ");
|
|
Serial.println(Irms); // Irms
|
|
changeMux(HIGH, HIGH, HIGH);
|
|
|
|
delay(1000);
|
|
|
|
Irms = emon1.calcIrms(1480); // Calculate Irms only
|
|
Serial.print(" 2 === ");
|
|
Irms = emon1.calcIrms(1480);
|
|
Irms = emon1.calcIrms(1480);
|
|
Serial.print(Irms*230.0); // Apparent power
|
|
Serial.print(" === ");
|
|
Serial.println(Irms); // Irms
|
|
delay(1000);
|
|
}
|