Page 1 of 1

ATO flag

PostPosted: Tue Mar 10, 2015 5:35 pm
by vvjosh06
Okay everyone im not very techincal when it comes to programming so bear with me. I used the wizard to program my reef angel+. It's currently programmed for standard ato with a timer of 255. my problem is that when the low sensor is actuated and the pump turns on, its only on for a brief moment. its not on for 255 secs. i've tried changing the time from 5-255 on the app but still only on for a few seconds at a time, i have to clear the ato flag several times before enough water gets into the sump to turn the low sensor off. i'm currently away from my house for another 30 days so i cant hard code anything besides what i can do from the app, dont worry my tank is being cared for ;) here is my current code.

#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 <PAR.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.Use2014Screen(); // Let's use 2014 Screen
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = 0;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port8Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port7Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;


// Ports that are always on
ReefAngel.Relay.On( Port1 );
ReefAngel.Relay.On( Port2 );
ReefAngel.Relay.On( Port8 );

////// Place additional initialization code below here


////// Place additional initialization code above here
}

void loop()
{
ReefAngel.DayLights( Port3 );
ReefAngel.ActinicLights( Port4 );
ReefAngel.StandardATO( Port5 );
ReefAngel.MoonLights( Port6 );
ReefAngel.StandardHeater( Port7 );
////// Place your custom code below here


////// Place your custom code above here

// This should always be the last line
ReefAngel.AddWifi();
ReefAngel.ShowInterface();
}

Re: ATO flag

PostPosted: Tue Mar 10, 2015 8:23 pm
by lnevo
You're using StandardATO it relies on both float switches. Can you describe the status for the high float switch?

Re: ATO flag

PostPosted: Wed Mar 11, 2015 2:20 pm
by vvjosh06
right now the status for the high switch is off and the status for the low switch is off, which tells me that the water level is in between the switches. correct?

Re: ATO flag

PostPosted: Wed Mar 11, 2015 3:04 pm
by rimai
Are they mounted opposite from each other?
viewtopic.php?f=7&t=240&p=3175

Re: ATO flag

PostPosted: Thu Mar 12, 2015 8:46 am
by vvjosh06
yes they are mounted opposite of each other. last night i cleared my ato flag before going to bed and this morning i woke up and the high switch was on and the ato was flagged. maybe the app isnt writing the code to the RA? or app isnt updating correctly? i dunno but atleast it topped off last night.

Re: ATO flag

PostPosted: Thu Mar 12, 2015 8:54 am
by rimai
Here is what the controller is going to do with the StandardATO.
When water level drops all the way down to where the bottom switch is not floating, which needs to be connected to the Low ATO port, it will turn on port 5 and it will only turn off when it reaches the top switch and it is floating.
If you connected the float switches in the wrong order, it won't work this way.
Also, I would recommend using hard code, so we know exactly what parameters you are using. With internal memory, we can't see what you have in there.