Files
Arduino/EMONLIB_DEMUX/EMONLIB_DEMUX.ino
Jérôme Delacotte 7b30d6e298 first commit
2025-03-06 11:15:32 +01:00

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