I am having an issue with my code ,
I have ct sensor connected to my board which is also connected to 1 channel relay model . The CT sensor reads current (irms). Which turns a relay on and off ,
Meaning if the current is greater than a set value then turn off relay and if its below value turn on relay .
I had everything working with the on and off section of the relay however I wanted to add if the sensor reads greater than set value then off relay for 10 sec after 10 sec it recheck if the sensor if is greater or less than set value. if greater than set value then turn off relay for 20sec then after 20 sec recheck if the sensor is greater or less than set value if greater than set value then turn off relay for 1 min if after 1 min start over using value of 10sec
While rechecking set value if the sensor is less than set value turn on relay
Please help
I have been working for days and cant get it to work
//*****************Temperature*******************
#include "DHT.h"
#define DHTPIN A0 //Analog 0
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
//************************************
#include "EmonLib.h" // Include Emon Library
EnergyMonitor emon1; // Create an instance
//***************LookUp Table Current Draw*************
float LightSensorA = .10;
float LightSensorB = .55;
float LightSensorC = .70;
float LightSensorD = .90;
float LightSensorE = 1.00;
float LightSensorF = 1.20;
//***************LookUp Table RelayDelay*********
int RelayDelayA = 1000;
int RelayDelayB = 5000;
int RelayDelayC = 9000;
//***************RGB LED Indicator**************
int PowerBlue = A5; // the board the On
int PowerGreen = A3; // Irms Sensor below Value (Relay Off - High State
int PowerRed = A2;// Irms Sensor Above Value (Relay Off - High State
//*****************Relay *******************
int relay = A4; // relay pin connection (connect NC)
void setup()
{
Serial.begin(9600);
dht.begin();
pinMode(PowerBlue, OUTPUT);
digitalWrite(PowerBlue, HIGH);
digitalWrite(relay, HIGH); // On Boot keep Relay curcuit closed
pinMode(relay, OUTPUT);
pinMode(PowerRed, OUTPUT);
pinMode(PowerGreen, OUTPUT);
emon1.current(1, 111.1); // Current: input pin, calibration.
}
void loop()
{
double Irms = emon1.calcIrms(1480); // Calculate Irms only
float h = dht.readHumidity();
float t = dht.readTemperature();
int triggered=0;
Serial.print(Irms*120); //serial print watts (formula amps X 119.5v)
Serial.print(" * Watts\t");
Serial.print(Irms); // serial print Current Irms
Serial.print(" * amps\t");
Serial.print(h);
Serial.print(" % Humidity\t"); // serial print Humidity
Serial.print(t);
Serial.print(" * Temperature\t"); //serial print Temperature
Serial.println("");
if (Irms < LightSensorC)// must be lower than the current load
{
digitalWrite(relay, LOW); // switch on relay
digitalWrite(PowerGreen, HIGH); // Turn Blue RGB Light Trigger On
digitalWrite(PowerRed, LOW); // Turn Red RGB Light Trigger Off
digitalWrite(PowerBlue, LOW); //Turn Blue RGB ligght Trigger Off
delay(1000); // wait for 10 seconds
if ( triggered == 1 )
triggered = 0;
}
else (Irms > LightSensorB);// be the trigger
digitalWrite(relay, HIGH); // switch off relay
digitalWrite(PowerRed, HIGH); // Turn Red RGB Light Trigger On
digitalWrite(PowerBlue, LOW); // Turn Blue RGB Light Trigger Off
digitalWrite(PowerGreen, LOW); // Turn Green RGB ligght Trigger Off
if ( triggered == 0 )
{
triggered=1;
delay(RelayDelayA); // wait for 20 seconds be checking state of current
Serial.println("delay1 Test");
}
if (Irms < LightSensorC)// must be lower than the current load
{
digitalWrite(relay, LOW); // switch on relay
digitalWrite(PowerGreen, HIGH); // Turn Blue RGB Light Trigger On
digitalWrite(PowerRed, LOW); // Turn Red RGB Light Trigger Off
digitalWrite(PowerBlue, LOW); //Turn Blue RGB ligght Trigger Off
delay(1000); // wait for 10 seconds
if ( triggered == 1 )
triggered = 0;
}
else (Irms > LightSensorB);// be the trigger
{
digitalWrite(relay, HIGH); // switch off relay
digitalWrite(PowerRed, HIGH); // Turn Red RGB Light Trigger On
digitalWrite(PowerBlue, LOW); // Turn Blue RGB Light Trigger Off
digitalWrite(PowerGreen, LOW); // Turn Green RGB ligght Trigger Off
if ( triggered == 0 )
{
triggered=1;
delay(RelayDelayB); // wait for 20 seconds be checking state of current
Serial.println("delay2 Test");
}}
if (Irms < LightSensorC)// must be lower than the current load
{
digitalWrite(relay, LOW); // switch on relay
digitalWrite(PowerGreen, HIGH); // Turn Blue RGB Light Trigger On
digitalWrite(PowerRed, LOW); // Turn Red RGB Light Trigger Off
digitalWrite(PowerBlue, LOW); //Turn Blue RGB ligght Trigger Off
delay(10000); // wait for 10 seconds
if ( triggered == 1 )
triggered = 0;
}
else (Irms > LightSensorB);// be the trigger
digitalWrite(relay, HIGH); // switch off relay
digitalWrite(PowerRed, HIGH); // Turn Red RGB Light Trigger On
digitalWrite(PowerBlue, LOW); // Turn Blue RGB Light Trigger Off
digitalWrite(PowerGreen, LOW); // Turn Green RGB ligght Trigger Off
if ( triggered == 0 )
{
triggered=1;
delay(RelayDelayC); // wait for 20 seconds be checking state of current
Serial.println("delay3 Test");
}
}