ATO Timeout
ATO Timeout
I used RAGen to change the ATO Timeout to 600 seconds but when i upload the code i go in the ATO menu and it says 88s... i try to increase it but it only goes to the 200s... Am i missing something? I need the ATO to run longer since my pump is slow.
Last edited by Threedo on Tue Apr 10, 2012 7:09 pm, edited 1 time in total.
Re: ATO Timeout
// Autogenerated file by RAGen (v1.2.2.171), (04/10/2012 20:15)
// Memory_041012_2015.ino
//
// This file sets the default values to the Internal Memory
//
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <Time.h>
#include <OneWire.h>
#include <RA_NokiaLCD.h>
#include <avr/pgmspace.h>
#include <InternalEEPROM.h>
#include <Wire.h>
#include <Memory.h>
RA_NokiaLCD e;
void setup()
{
e.Init();
e.Clear(COLOR_WHITE,0,0,132,132);
e.BacklightOn();
InternalMemory.MHOnHour_write(16);
InternalMemory.MHOnMinute_write(30);
InternalMemory.MHOffHour_write(22);
InternalMemory.MHOffMinute_write(30);
InternalMemory.StdLightsOnHour_write(16);
InternalMemory.StdLightsOnMinute_write(0);
InternalMemory.StdLightsOffHour_write(23);
InternalMemory.StdLightsOffMinute_write(30);
InternalMemory.WM1Timer_write(200);
InternalMemory.WM2Timer_write(354);
InternalMemory.DP1Timer_write(10);
InternalMemory.DP2Timer_write(10);
InternalMemory.FeedingTimer_write(900);
InternalMemory.LCDTimer_write(600);
InternalMemory.OverheatTemp_write(815);
InternalMemory.LEDPWMDaylight_write(50);
InternalMemory.LEDPWMActinic_write(50);
InternalMemory.HeaterTempOn_write(780);
InternalMemory.HeaterTempOff_write(785);
InternalMemory.ChillerTempOn_write(810);
InternalMemory.ChillerTempOff_write(785);
InternalMemory.ATOTimeout_write(600);
InternalMemory.PHMax_write(840);
InternalMemory.PHMin_write(550);
InternalMemory.MHDelay_write(2);
InternalMemory.DP1OnHour_write(20);
InternalMemory.DP1OnMinute_write(0);
InternalMemory.DP2OnHour_write(22);
InternalMemory.DP2OnMinute_write(30);
InternalMemory.ATOHourInterval_write(0);
InternalMemory.ATOHighHourInterval_write(0);
InternalMemory.ATOHighTimeout_write(600);
InternalMemory.DP1RepeatInterval_write(0);
InternalMemory.DP2RepeatInterval_write(0);
InternalMemory.SalMax_write(2550);
InternalMemory.PWMSlopeStartD_write(15);
InternalMemory.PWMSlopeEndD_write(100);
InternalMemory.PWMSlopeDurationD_write(60);
InternalMemory.PWMSlopeStartA_write(15);
InternalMemory.PWMSlopeEndA_write(100);
InternalMemory.PWMSlopeDurationA_write(60);
InternalMemory.RFMode_write(0);
InternalMemory.RFSpeed_write(100);
InternalMemory.RFDuration_write(10);
InternalMemory.PWMSlopeStart0_write(15);
InternalMemory.PWMSlopeEnd0_write(100);
InternalMemory.PWMSlopeDuration0_write(60);
InternalMemory.PWMSlopeStart1_write(15);
InternalMemory.PWMSlopeEnd1_write(100);
InternalMemory.PWMSlopeDuration1_write(60);
InternalMemory.PWMSlopeStart2_write(15);
InternalMemory.PWMSlopeEnd2_write(100);
InternalMemory.PWMSlopeDuration2_write(60);
InternalMemory.PWMSlopeStart3_write(15);
InternalMemory.PWMSlopeEnd3_write(100);
InternalMemory.PWMSlopeDuration3_write(60);
InternalMemory.PWMSlopeStart4_write(15);
InternalMemory.PWMSlopeEnd4_write(100);
InternalMemory.PWMSlopeDuration4_write(60);
InternalMemory.PWMSlopeStart5_write(15);
InternalMemory.PWMSlopeEnd5_write(100);
InternalMemory.PWMSlopeDuration5_write(60);
InternalMemory.IMCheck_write(0x5241494D);
}
void loop()
{
// display success screen
e.DrawText(COLOR_BLACK, COLOR_WHITE, MENU_START_COL, MENU_START_ROW*2, "Internal Memory Set");
e.DrawText(COLOR_BLACK, COLOR_WHITE, MENU_START_COL, MENU_START_ROW*4, "Now load your");
e.DrawText(COLOR_BLACK, COLOR_WHITE, MENU_START_COL, MENU_START_ROW*5, " RA code file");
delay(5000);
}
// Memory_041012_2015.ino
//
// This file sets the default values to the Internal Memory
//
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <Time.h>
#include <OneWire.h>
#include <RA_NokiaLCD.h>
#include <avr/pgmspace.h>
#include <InternalEEPROM.h>
#include <Wire.h>
#include <Memory.h>
RA_NokiaLCD e;
void setup()
{
e.Init();
e.Clear(COLOR_WHITE,0,0,132,132);
e.BacklightOn();
InternalMemory.MHOnHour_write(16);
InternalMemory.MHOnMinute_write(30);
InternalMemory.MHOffHour_write(22);
InternalMemory.MHOffMinute_write(30);
InternalMemory.StdLightsOnHour_write(16);
InternalMemory.StdLightsOnMinute_write(0);
InternalMemory.StdLightsOffHour_write(23);
InternalMemory.StdLightsOffMinute_write(30);
InternalMemory.WM1Timer_write(200);
InternalMemory.WM2Timer_write(354);
InternalMemory.DP1Timer_write(10);
InternalMemory.DP2Timer_write(10);
InternalMemory.FeedingTimer_write(900);
InternalMemory.LCDTimer_write(600);
InternalMemory.OverheatTemp_write(815);
InternalMemory.LEDPWMDaylight_write(50);
InternalMemory.LEDPWMActinic_write(50);
InternalMemory.HeaterTempOn_write(780);
InternalMemory.HeaterTempOff_write(785);
InternalMemory.ChillerTempOn_write(810);
InternalMemory.ChillerTempOff_write(785);
InternalMemory.ATOTimeout_write(600);
InternalMemory.PHMax_write(840);
InternalMemory.PHMin_write(550);
InternalMemory.MHDelay_write(2);
InternalMemory.DP1OnHour_write(20);
InternalMemory.DP1OnMinute_write(0);
InternalMemory.DP2OnHour_write(22);
InternalMemory.DP2OnMinute_write(30);
InternalMemory.ATOHourInterval_write(0);
InternalMemory.ATOHighHourInterval_write(0);
InternalMemory.ATOHighTimeout_write(600);
InternalMemory.DP1RepeatInterval_write(0);
InternalMemory.DP2RepeatInterval_write(0);
InternalMemory.SalMax_write(2550);
InternalMemory.PWMSlopeStartD_write(15);
InternalMemory.PWMSlopeEndD_write(100);
InternalMemory.PWMSlopeDurationD_write(60);
InternalMemory.PWMSlopeStartA_write(15);
InternalMemory.PWMSlopeEndA_write(100);
InternalMemory.PWMSlopeDurationA_write(60);
InternalMemory.RFMode_write(0);
InternalMemory.RFSpeed_write(100);
InternalMemory.RFDuration_write(10);
InternalMemory.PWMSlopeStart0_write(15);
InternalMemory.PWMSlopeEnd0_write(100);
InternalMemory.PWMSlopeDuration0_write(60);
InternalMemory.PWMSlopeStart1_write(15);
InternalMemory.PWMSlopeEnd1_write(100);
InternalMemory.PWMSlopeDuration1_write(60);
InternalMemory.PWMSlopeStart2_write(15);
InternalMemory.PWMSlopeEnd2_write(100);
InternalMemory.PWMSlopeDuration2_write(60);
InternalMemory.PWMSlopeStart3_write(15);
InternalMemory.PWMSlopeEnd3_write(100);
InternalMemory.PWMSlopeDuration3_write(60);
InternalMemory.PWMSlopeStart4_write(15);
InternalMemory.PWMSlopeEnd4_write(100);
InternalMemory.PWMSlopeDuration4_write(60);
InternalMemory.PWMSlopeStart5_write(15);
InternalMemory.PWMSlopeEnd5_write(100);
InternalMemory.PWMSlopeDuration5_write(60);
InternalMemory.IMCheck_write(0x5241494D);
}
void loop()
{
// display success screen
e.DrawText(COLOR_BLACK, COLOR_WHITE, MENU_START_COL, MENU_START_ROW*2, "Internal Memory Set");
e.DrawText(COLOR_BLACK, COLOR_WHITE, MENU_START_COL, MENU_START_ROW*4, "Now load your");
e.DrawText(COLOR_BLACK, COLOR_WHITE, MENU_START_COL, MENU_START_ROW*5, " RA code file");
delay(5000);
}
Re: ATO Timeout
I did it with mine and i just add this code:
300 is the time in seconds.
Code: Select all
ReefAngel.StandardATO(Port1,300)
Re: ATO Timeout
With the ATO functions there are some limits with the values. When using the StandardATO function, you can use a max of 32767 seconds. To be able to use this value, you must hard code it in your PDE/INO file (like symon_say did). If you use the InternalMemory functions and the menu, the max value you can use is 255. This is a limitation that I imposed on it to match up with the SingleATO function.
When using the SingleATO function, you can use a max of 255 seconds. The max value is the same using the hard coded values and menu system.
When using the SingleATO function, you can use a max of 255 seconds. The max value is the same using the hard coded values and menu system.
Re: ATO Timeout
I found this to be a problem for me also so I modified SingleATO itself to multiply the value by 60, causing the timeout to be specified in minutes instead of seconds. I did this because I use an Aqualifter pump for ATO, which just trickles in the make up water. I had to set mine to 30 minute. I also only allow it to run every 60 minutes which prevents it from running in tiny little bursts everytime a little wave wiggles the ATO switch. Since it doesn't hurt an Aqualifter at all to run it dry it is not an issue if it runs for a full 1/2 hour before the ATO gives up.
Re: ATO Timeout
How did you code the Single ATO to multiply by 60?
Re: ATO Timeout
We extended the timeout on libraries version v0.9.5 and created a new function.
Which function are you using?
Which function are you using?
Roberto.
Re: ATO Timeout
The single ATO function. I was using standard but I am using the high ATO to control my AI Sol which works amazingly by way!!!!
I need a time out of 30 minutes because I use an Aqualifter pump on a Single ATO switch. 255 seconds isn't long enough.
I need a time out of 30 minutes because I use an Aqualifter pump on a Single ATO switch. 255 seconds isn't long enough.
Re: ATO Timeout
Try this:
true = Low ATO port
Port1 = port you are using for ATO pump
600 = timeout in seconds
1 = run only once per hour. To have it run many times per hour, just put 0.
Code: Select all
SingleATO(true,Port1,600,1);
Port1 = port you are using for ATO pump
600 = timeout in seconds
1 = run only once per hour. To have it run many times per hour, just put 0.
Roberto.
Re: ATO Timeout
I get an error in compile
No matching function for call to 'reefangelclass::SingleATOLow(int,int,int,int)'
No matching function for call to 'reefangelclass::SingleATOLow(int,int,int,int)'
Re: ATO Timeout
Disregard I was using Reefangel.SingleatoLow not ReefAngel.SingleATO