Code: Select all
/* The following features are enabled for this PDE File:
#define DisplayImages
#define DisplayLEDPWM
#define DateTimeSetup
#define DirectTempSensor
#define StandardLightSetup
#define wifi
#define SIMPLE_MENU
*/
#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>
#include <ReefAngel_Colors.h>
#include <ReefAngel_CustomColors.h>
//Actinic and Daylight PMW are on the LED moonlights
byte ActinicPWMValue=0;
byte DaylightPWMValue=0;
byte wmport=Port5;
boolean wmdelay=false;
byte wmpulse=0;
#include <avr/pgmspace.h>
#define Phillips6610LCDInv Phillips6610LCDInv
#ifdef Phillips6610LCDInv
#include <Phillips6610LCDInv.h>
#endif
#ifdef Phillips6610LCDInv2
#include <Phillips6610LCDInv2.h>
#endif
// T5 1
// FAN 2
// FUGE 3
// ALK 4
// PH1 5
// HEAT 6
// ATO 7
// SKIM 8
void setup()
{
ReefAngel.Init(); //Initialize controller
ReefAngel.OverheatShutoffPorts = B10100001;
ReefAngel.FeedingModePorts = B10010000;
ReefAngel.WaterChangePorts = B11111001;
ReefAngel.LightsOnPorts = B00000011;
ReefAngel.PHMin=529;
ReefAngel.PHMax=819;
ReefAngel.Relay.On(Port8);
}
void loop()
{
// Specific functions
ReefAngel.StandardLights(Port1,11,0,21,00); // T5 Lights
ReefAngel.StandardLights(Port2,11,0,21,00); // Light Fan
//Powerhead On Every 4 Hours With 30 Min Pause
if (now()%1800<12600) ReefAngel.Relay.On(Port5); else ReefAngel.Relay.Off(Port5);
//Heater Control on at 76.0F and off at 76.8F
ReefAngel.StandardHeater(Port6,760,768);
//Alk Dosing Pump 1 Minute Every 16 Minutes
if (now()%960<60) ReefAngel.Relay.On(Port4); else ReefAngel.Relay.Off(Port4);
//Reverse Photoperiod Refugium Lighting (Port 3 as compared to Port0)
if (!bitRead(ReefAngel.Relay.RelayData,Port1)) ReefAngel.Relay.On(Port3);
else ReefAngel.Relay.Off(Port3);
//Moonlight Both PWM Ports; Using Actinic
ReefAngel.PWM.SetActinic(MoonPhase());
ReefAngel.PWM.SetDaylight(MoonPhase());
//Old ATO{Port 7)
// if (ReefAngel.HighATO.IsActive()) ReefAngel.SingleATOLow(ATO);
// else ReefAngel.Relay.Off(ATO);
if ( ReefAngel.LowATO.IsActive() )
{
ReefAngel.LowATO.StartTopping();
ReefAngel.Relay.On(Port7);
}
else
{
ReefAngel.LowATO.StopTopping();
ReefAngel.Relay.Off(Port7);
}
if ( ReefAngel.LowATO.IsTopping() && ! ReefAngel.HighATO.IsActive() )
{
ReefAngel.Relay.Off(Port7);
}
ReefAngel.Relay.Write(); // Make relay changes effective
ReefAngel.ShowInterface();
}