I am currently using port 8 to power my skimmer. I am using the single ATO function for top ups...
I am using the high ato float switch to turn off my skimmer if ther sump water level rises.
The problem I am experiencing is that port 8 relay which my skimmer is connected to, switched on and off for a split second ever few seconds.
Sometimes even port 6 which is fo rmy ato pump switched on and off quickly...not sure whats happening
Below is my code...hope someone can point out where the problem is or is it a faulty relay box?
Code: Select all
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <ReefAngel.h>
////// Place global variable code below here
////// Place global variable code above here
void setup()
{
// This must be the first line
ReefAngel.Init(); //Initialize controller
ReefAngel.SetTemperatureUnit( Celsius ); // set to Celsius Temperature
ReefAngel.AddStandardMenu(); // Add Standard Menu
ReefAngel.Use2014Screen(); // Let's use 2014 Screen
ReefAngel.AddPHExpansion(); // pH Expansion Module
ReefAngel.AddWaterLevelExpansion(); // Water Level Expansion Module
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port6Bit | Port7Bit | Port8Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port7Bit | Port8Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = Port1Bit;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port3Bit | Port4Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write( 280 );
// Feeeding and Water Change mode speed
ReefAngel.DCPump.WaterChangeSpeed=0;
// Ports that are always on
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop()
{
ReefAngel.StandardLights( Port1,6,45,19,15 );
ReefAngel.StandardLights( Port2,11,45,17,30 );
ReefAngel.StandardHeater( Port3,240,255 );
ReefAngel.StandardHeater( Port4,240,255 );
ReefAngel.StandardFan( Port5,260,265 );
ReefAngel.CO2Control( Port7,650,660 );
////// Place your custom code below here
static unsigned long atoTimer;
if (ReefAngel.DisplayedMenu==FEEDING_MODE) atoTimer=now();
if (now()-atoTimer < 300) { //300 second delay (five minutes)
ReefAngel.Relay.Off(Port6);
} else {
ReefAngel.SingleATO( true,Port6,20,0 );
}
if (hour()>=7 && hour()<10)
{
ReefAngel.PWM.SetDaylight( LongPulseMode(0,80,5,true) ); // Ramp from 0% to 80% with 5 second duration in antisync mode
ReefAngel.PWM.SetActinic( LongPulseMode(0,80,5,false) );
}
if (hour()>=10 && hour()<17)
{
ReefAngel.PWM.SetDaylight( ElseMode(80,20,true) ); // ReefCrest at 80% +/- 20% on antisync mode
ReefAngel.PWM.SetActinic( ElseMode(80,20,false) );
}
else if (hour()>=17 && hour()<20)
{
ReefAngel.PWM.SetDaylight( LongPulseMode(0,80,10,true) ); // Ramp from 0% to 80% with 10 second duration in antisync mode
ReefAngel.PWM.SetActinic( LongPulseMode(0,80,10,false) );
}
else if (hour()>=20 || hour()<7)
{
ReefAngel.PWM.SetDaylight( ElseMode(30,10,true) ); // ReefCrest at 80% +/- 20% on antisync mode
ReefAngel.PWM.SetActinic( ElseMode(30,10,false) );
}
if(ReefAngel.HighATO.IsActive())
{
ReefAngel.Relay.Off(Port8);
}
else
{
ReefAngel.Relay.On(Port8);
}
if( ReefAngel.DisplayedMenu==FEEDING_MODE )
{
ReefAngel.PWM.SetActinic(0);
ReefAngel.PWM.SetDaylight(0);
}
////// Place your custom code above here
// This should always be the last line
ReefAngel.ShowInterface();
}