- #define Level 50
#define MinPWM 50
#define OperatingPWM 66
Code: Select all
#include <Salinity.h>
#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 <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <ReefAngel.h>
#define Level 50
#define MinPWM 50
#define OperatingPWM 66
long nummillis=5000;
byte PWMValue=0;
unsigned long lastmillis=millis();
boolean override=false;
void setup()
{
ReefAngel.Init(); //Initialize controller
InternalMemory.WaterLevelMax_write(1800);
}
void loop()
{
PWMValue=OperatingPWM;
if (ReefAngel.WaterLevel.GetLevel()<Level-2)
{
override=true;
lastmillis=millis();
PWMValue+=2;
}
if (ReefAngel.WaterLevel.GetLevel()>Level+2)
{
override=true;
lastmillis=millis();
PWMValue-=2;
}
if (millis()-lastmillis>nummillis && override)
{
override=false;
}
if (!override) PWMValue=OperatingPWM;
if (ReefAngel.WaterLevel.GetLevel()>Level+10) PWMValue=MinPWM;
PWMValue=constrain(PWMValue,MinPWM,100);
ReefAngel.PWM.SetActinic(PWMValue);
ReefAngel.ShowInterface();
}
void DrawCustomMain()
{
// the graph is drawn/updated when we exit the main menu &
// when the parameters are saved
ReefAngel.LCD.DrawDate(6, 122);
pingSerial();
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor(15, 60, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue());
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor(15, 60, ReefAngel.Params);
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();
char text[10];
ConvertNumToString(text, ReefAngel.WaterLevel.GetLevel(), 1);
strcat(text," ");
ReefAngel.LCD.DrawText(DefaultFGColor,DefaultBGColor,15,93,"Water Level:");
ReefAngel.LCD.DrawText(DefaultFGColor,DefaultBGColor,88,93,text);
pingSerial();
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox(12, 103, TempRelay);
}
void DrawCustomGraph()
{
ReefAngel.LCD.DrawGraph(5, 5);
}