Page 1 of 1

Delayed Chiller/Fan startup

Posted: Tue Sep 20, 2011 12:20 am
by chase
I've noticed a significant amount of toggling as the temp bounces between the on value and below on value for my fans. Is there a way to put a delay on the standardfan option so it comes on 15 mins later or so? I was thinking about using the MH function to try and substitute but couldn't really make sense of it.
Thanks in advance!

Re: Delayed Chiller/Fan startup

Posted: Tue Sep 20, 2011 8:06 am
by rimai
Can you post the function you are using?
You have to make sure to leave a certain difference for histerisys.

Re: Delayed Chiller/Fan startup

Posted: Tue Sep 20, 2011 7:26 pm
by chase
I'm just using code from the Tutorial: http://www.reefangel.com/Support.Relay- ... rdFan.ashx

Code: Select all

ReefAngel.StandardFan(Chiller,775,783);  // Setup Chiller to turn on at 78.3F and off at 77.5F
I've noticed the fan toggles on and off (as a result of the temp probe reporting between 78.3 (on) and 78.2 (off). I assume the way it should work is once the temp reaches 78.3 the fans should turn on and stay on until the temp reaches 77.5?

Re: Delayed Chiller/Fan startup

Posted: Wed Sep 21, 2011 1:18 pm
by rimai
Yes, that's how it should work.
Maybe you have something else in your code. Can you post it?

Re: Delayed Chiller/Fan startup

Posted: Thu Sep 22, 2011 12:17 am
by chase
Sure thing-

Code: Select all

// Autogenerated file by RAGen (v1.0.4.92), (09/08/2011 09:54)
// RA_090811_0954.pde
//
// This version designed for v0.8.5 Beta 12 or later

/* The following features are enabled for this PDE File: 
#define DisplayImages
#define WavemakerSetup
#define DateTimeSetup
#define VersionMenu
#define DirectTempSensor
#define DisplayLEDPWM
#define StandardLightSetup
*/

#include <ReefAngel_Features.h>
#include <ReefAngel_Globals.h>
#include <ReefAngel_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <ReefAngel_EEPROM.h>
#include <ReefAngel_NokiaLCD.h>
#include <ReefAngel_ATO.h>
#include <ReefAngel_Joystick.h>
#include <ReefAngel_LED.h>
#include <ReefAngel_TempSensor.h>
#include <ReefAngel_Relay.h>
#include <ReefAngel_PWM.h>
#include <ReefAngel_Timer.h>
#include <ReefAngel_Memory.h>
#include <ReefAngel.h>

#define Daylight            1
#define Chiller             2
#define Heater              3
#define Return              4
#define WavemakerL          5
#define WavemakerR          6
#define ATO                 7
#define Refugium            8

void setup()
{
   randomSeed(analogRead(0)); //wm stuff  
    ReefAngel.Init();  //Initialize controller   
    ReefAngel.FeedingModePorts = B00001000;
    ReefAngel.WaterChangePorts = B00000000;
    ReefAngel.OverheatShutoffPorts = B00000101;
    ReefAngel.LightsOnPorts = B00000001;
    // Ports that are always on
    ReefAngel.Relay.On(Return); //port 4
   //wm stuff
    ReefAngel.Timer[1].SetInterval(random(15,35));
    ReefAngel.Timer[1].Start();  
    ReefAngel.Relay.On(WavemakerL);
}

void loop()
{
    ReefAngel.ShowInterface();
    // Specific functions
    ReefAngel.StandardFan(Chiller,775,783);
    ReefAngel.StandardHeater(Heater,768,775);
    ReefAngel.StandardLights(Daylight,9,0,21,0);  //Daylight schedule 9:00am - 9:00pm
    ReefAngel.StandardLights(Refugium,21,0,9,0);  //Refugium schedule 9:00pm - 9:00am
     
    //Wavemaker stuff
    if ( ReefAngel.Timer[1].IsTriggered() )
      {
        ReefAngel.Timer[1].SetInterval(random(15,35));
        ReefAngel.Timer[1].Start();
        ReefAngel.Relay.Toggle(WavemakerL); //port 5
        ReefAngel.Relay.Toggle(WavemakerR); //port 6
       }
    ReefAngel.Relay.Write();       
    
    //ATO stuff
    if(ReefAngel.LowATO.IsActive())
        {
            ReefAngel.Relay.On(ATO); //port 7
        }
        else
        {
            ReefAngel.Relay.Off(ATO);
        }    
}
It's been cooler lately so the fans haven't kicked in. When I get off work I'll setup borderline temps with the ambient reading to make sure it's still happening.
As always, thanks for the help!

Re: Delayed Chiller/Fan startup

Posted: Thu Sep 22, 2011 8:06 am
by rimai
Working as intended here.
This line is redundant though.

Code: Select all

    ReefAngel.Relay.Write();       
The function ShowInterface() calls it in every loop.