// 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); }