parin euron arduinolla ja 100A-SCT-013-000 ehkä vitosen maksaa ja tällä koodilla saa hyvän portaallisen säädön
vertiltä tulo ja kulus kun laittaa ristiin niin hukkaa jää vain maximissaa pienimmän vastuksen verran ja sen voi sitten poimia kokonaan ssr ällä talteen joten kaikki käyttöön
#include "EmonLib.h" // Include Emon Library
EnergyMonitor emon1; // Create an instance
int upPin7 = 7;
int upPin8 = 8;
int upPin9 = 9;
void setup()
{
pinMode(upPin7,OUTPUT);
pinMode(upPin8,OUTPUT);
pinMode(upPin9,OUTPUT);
Serial.begin(9600);
emon1.voltage(2, 150, 1.7); // Voltage: input pin, calibration, phase_shift
emon1.current(1, 12.7); // Current: input pin, calibration.
}
void loop()
{
emon1.calcVI(20,2000); // Calculate all. No.of half wavelengths (crossings), time-out
emon1.serialprint(); // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
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
if ((realPower >= 1350) && (realPower < 2700))
{
digitalWrite(upPin7, HIGH);
digitalWrite(upPin8, LOW);
digitalWrite(upPin9, LOW);
}
else if ((realPower >= 2700) && (realPower < 3800))
{
digitalWrite(upPin7, LOW);
digitalWrite(upPin8, HIGH);
digitalWrite(upPin9, LOW);
}
else if ((realPower >= 3800) && (realPower < 5020))
{
digitalWrite(upPin7, HIGH);
digitalWrite(upPin8, HIGH);
digitalWrite(upPin9, LOW);
}
else if ((realPower >= 5020) && (realPower < 5750))
{
digitalWrite(upPin7, LOW);
digitalWrite(upPin8, HIGH);
digitalWrite(upPin9, HIGH);
}
else if ((realPower >= 5750) && (realPower < 8800))
{
digitalWrite(upPin7, HIGH);
digitalWrite(upPin8, HIGH);
digitalWrite(upPin9, HIGH);
}
else
{
digitalWrite(upPin7, LOW);
digitalWrite(upPin8, LOW);
digitalWrite(upPin9, LOW);
}
}