here is my PDE i think i am close :D
Re: here is my PDE i think i am close :D
OK so my code posted correct? Daylight on post 1,2, 3 to start ramp up at 8am and ramp down at 8pm and off at 9pm. And actinics on port 4,5, 6 ramp up at 7am and ramp down at 9pm and off at 10pm?
Re: here is my PDE i think i am close :D
i'm back
ok i am trying to get my fans to come on with temp readings. but the fans just stay on and never go off. 1 is for my led fans the other is my hood fan to cool down the water. here is the code:
// Autogenerated file by RAGen (v1.0.4.92), (10/05/2011 22:47)
// RA_100511_1921.pde
//
// This version designed for v0.8.5 Beta 12 or later
/* The following features are enabled for this PDE File:
#define DisplayImages
#define DisplayLEDPWM
#define wifi
#define RelayExp
*/
#include <ReefAngel_CustomColors.h>
#include <ReefAngel_Colors.h>
#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>
void DrawCustomMain()
{
byte x = 6;
byte y = 2;
byte t;
ReefAngel.LCD.DrawDate(6, 2);
ReefAngel.LCD.Clear(COLOR_BLACK, 1, 11, 132, 11);
pingSerial();
x = 12;
y += MENU_START_ROW+1;
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.PWM.GetDaylightValue(),
DPColor, x, y, 1);
t = intlength(ReefAngel.PWM.GetDaylightValue()) + 1;
t *= 5;
ReefAngel.LCD.DrawText(DPColor, DefaultBGColor, x+t, y, "%");
t += 10;
x += t;
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.PWM.GetActinicValue(),
APColor, x, y, 1);
t = intlength(ReefAngel.PWM.GetActinicValue()) + 1;
t *= 5;
ReefAngel.LCD.DrawText(APColor, DefaultBGColor, x+t, y, "%");
t += 10;
x += t;
char text[7];
ConvertNumToString(text, ReefAngel.Params.PH, 100);
ReefAngel.LCD.Clear(DefaultBGColor, x+16, y, x+45, y+16);
ReefAngel.LCD.DrawLargeText(PHColor, DefaultBGColor, x+16, y, text,
Num8x16);
pingSerial();
ConvertNumToString(text, ReefAngel.Params.Temp1, 10);
y += MENU_START_ROW*2;
x = 10;
ReefAngel.LCD.Clear(DefaultBGColor,x,y,x+(16*4),y+16);
pingSerial();
ReefAngel.LCD.DrawHugeNumbers(T1TempColor, DefaultBGColor, x, y, text);
pingSerial();
x += (16*4) + 8;
ReefAngel.LCD.DrawText(T2TempColor,DefaultBGColor,x,y,"Hood:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.Temp2, T2TempColor,
x+18, y, 10);
ReefAngel.LCD.DrawText(T3TempColor,DefaultBGColor,x,y+10,"LED:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.Temp3, T3TempColor,
x+18, y+10, 10);
y += 16*2;
x = 12;
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox(x, y, TempRelay);
}
void DrawCustomGraph()
{
}
// Labels for the web banner
#include <avr/pgmspace.h>
prog_char id_label[] PROGMEM = "67_kevin";
prog_char probe1_label[] PROGMEM = "Water";
prog_char probe2_label[] PROGMEM = "Room";
prog_char probe3_label[] PROGMEM = "Lights";
prog_char relay1_label[] PROGMEM = "Day";
prog_char relay2_label[] PROGMEM = "Day";
prog_char relay3_label[] PROGMEM = "Day";
prog_char relay4_label[] PROGMEM = "Actinic";
prog_char relay5_label[] PROGMEM = "Actinic";
prog_char relay6_label[] PROGMEM = "Actinic";
prog_char relay7_label[] PROGMEM = "Hood Fan";
prog_char relay8_label[] PROGMEM = "Light Fan";
PROGMEM const char *webbanner_items[] = {
id_label, probe1_label, probe2_label, probe3_label, relay1_label, relay2_label,
relay3_label, relay4_label, relay5_label, relay6_label, relay7_label, relay8_label};
void setup()
{
ReefAngel.Init(); //Initialize controller
ReefAngel.OverheatShutoffPorts = B00000000;
ReefAngel.PHMin=529;
ReefAngel.PHMax=819;
// turn on port 7 when temp gets above 79.0 and turn off when temp gets below 76.0
if (ReefAngel.Params.Temp3 >= 770 && ReefAngel.Params.Temp3 > 0) ReefAngel.Relay.On(Port7);
if (ReefAngel.Params.Temp3 <= 740) ReefAngel.Relay.Off(Port7);
// turn on port 8 when temp gets above 90.0 and turn off when temp gets below 75.0
if (ReefAngel.Params.Temp2 >= 850 && ReefAngel.Params.Temp2 > 0) ReefAngel.Relay.On(Port8);
if (ReefAngel.Params.Temp2 <= 750) ReefAngel.Relay.Off(Port8);
// Initialize and start the web banner timer
ReefAngel.LoadWebBanner(pgm_read_word(&(webbanner_items[0])), SIZE(webbanner_items));
ReefAngel.Timer[4].SetInterval(180); // set interval to 180 seconds
ReefAngel.Timer[4].Start();
// Ports that are always on
}
void loop()
{
ReefAngel.ShowInterface();
// Specific functions
ReefAngel.StandardLights(Port1,8,0,21,0);
ReefAngel.StandardLights(Port2,8,0,21,0);
ReefAngel.StandardLights(Port3,8,0,21,0);
ReefAngel.StandardLights(Port4,7,0,22,0);
ReefAngel.StandardLights(Port5,7,0,22,0);
ReefAngel.StandardLights(Port6,7,0,22,0);
ReefAngel.StandardFan(Port7);
ReefAngel.StandardFan(Port8);
ReefAngel.PWM.SetActinic(PWMSlope(7,0,22,0,0,100,60,ReefAngel.PWM.GetActinicValue()));
ReefAngel.PWM.SetDaylight(PWMSlope(8,0,21,0,0,100,60,ReefAngel.PWM.GetDaylightValue()));
// Web Banner stuff
if(ReefAngel.Timer[4].IsTriggered())
{
ReefAngel.Timer[4].Start();
ReefAngel.WebBanner();
}
}
thanx for all the help
ok i am trying to get my fans to come on with temp readings. but the fans just stay on and never go off. 1 is for my led fans the other is my hood fan to cool down the water. here is the code:
// Autogenerated file by RAGen (v1.0.4.92), (10/05/2011 22:47)
// RA_100511_1921.pde
//
// This version designed for v0.8.5 Beta 12 or later
/* The following features are enabled for this PDE File:
#define DisplayImages
#define DisplayLEDPWM
#define wifi
#define RelayExp
*/
#include <ReefAngel_CustomColors.h>
#include <ReefAngel_Colors.h>
#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>
void DrawCustomMain()
{
byte x = 6;
byte y = 2;
byte t;
ReefAngel.LCD.DrawDate(6, 2);
ReefAngel.LCD.Clear(COLOR_BLACK, 1, 11, 132, 11);
pingSerial();
x = 12;
y += MENU_START_ROW+1;
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.PWM.GetDaylightValue(),
DPColor, x, y, 1);
t = intlength(ReefAngel.PWM.GetDaylightValue()) + 1;
t *= 5;
ReefAngel.LCD.DrawText(DPColor, DefaultBGColor, x+t, y, "%");
t += 10;
x += t;
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.PWM.GetActinicValue(),
APColor, x, y, 1);
t = intlength(ReefAngel.PWM.GetActinicValue()) + 1;
t *= 5;
ReefAngel.LCD.DrawText(APColor, DefaultBGColor, x+t, y, "%");
t += 10;
x += t;
char text[7];
ConvertNumToString(text, ReefAngel.Params.PH, 100);
ReefAngel.LCD.Clear(DefaultBGColor, x+16, y, x+45, y+16);
ReefAngel.LCD.DrawLargeText(PHColor, DefaultBGColor, x+16, y, text,
Num8x16);
pingSerial();
ConvertNumToString(text, ReefAngel.Params.Temp1, 10);
y += MENU_START_ROW*2;
x = 10;
ReefAngel.LCD.Clear(DefaultBGColor,x,y,x+(16*4),y+16);
pingSerial();
ReefAngel.LCD.DrawHugeNumbers(T1TempColor, DefaultBGColor, x, y, text);
pingSerial();
x += (16*4) + 8;
ReefAngel.LCD.DrawText(T2TempColor,DefaultBGColor,x,y,"Hood:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.Temp2, T2TempColor,
x+18, y, 10);
ReefAngel.LCD.DrawText(T3TempColor,DefaultBGColor,x,y+10,"LED:");
ReefAngel.LCD.DrawSingleMonitor(ReefAngel.Params.Temp3, T3TempColor,
x+18, y+10, 10);
y += 16*2;
x = 12;
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox(x, y, TempRelay);
}
void DrawCustomGraph()
{
}
// Labels for the web banner
#include <avr/pgmspace.h>
prog_char id_label[] PROGMEM = "67_kevin";
prog_char probe1_label[] PROGMEM = "Water";
prog_char probe2_label[] PROGMEM = "Room";
prog_char probe3_label[] PROGMEM = "Lights";
prog_char relay1_label[] PROGMEM = "Day";
prog_char relay2_label[] PROGMEM = "Day";
prog_char relay3_label[] PROGMEM = "Day";
prog_char relay4_label[] PROGMEM = "Actinic";
prog_char relay5_label[] PROGMEM = "Actinic";
prog_char relay6_label[] PROGMEM = "Actinic";
prog_char relay7_label[] PROGMEM = "Hood Fan";
prog_char relay8_label[] PROGMEM = "Light Fan";
PROGMEM const char *webbanner_items[] = {
id_label, probe1_label, probe2_label, probe3_label, relay1_label, relay2_label,
relay3_label, relay4_label, relay5_label, relay6_label, relay7_label, relay8_label};
void setup()
{
ReefAngel.Init(); //Initialize controller
ReefAngel.OverheatShutoffPorts = B00000000;
ReefAngel.PHMin=529;
ReefAngel.PHMax=819;
// turn on port 7 when temp gets above 79.0 and turn off when temp gets below 76.0
if (ReefAngel.Params.Temp3 >= 770 && ReefAngel.Params.Temp3 > 0) ReefAngel.Relay.On(Port7);
if (ReefAngel.Params.Temp3 <= 740) ReefAngel.Relay.Off(Port7);
// turn on port 8 when temp gets above 90.0 and turn off when temp gets below 75.0
if (ReefAngel.Params.Temp2 >= 850 && ReefAngel.Params.Temp2 > 0) ReefAngel.Relay.On(Port8);
if (ReefAngel.Params.Temp2 <= 750) ReefAngel.Relay.Off(Port8);
// Initialize and start the web banner timer
ReefAngel.LoadWebBanner(pgm_read_word(&(webbanner_items[0])), SIZE(webbanner_items));
ReefAngel.Timer[4].SetInterval(180); // set interval to 180 seconds
ReefAngel.Timer[4].Start();
// Ports that are always on
}
void loop()
{
ReefAngel.ShowInterface();
// Specific functions
ReefAngel.StandardLights(Port1,8,0,21,0);
ReefAngel.StandardLights(Port2,8,0,21,0);
ReefAngel.StandardLights(Port3,8,0,21,0);
ReefAngel.StandardLights(Port4,7,0,22,0);
ReefAngel.StandardLights(Port5,7,0,22,0);
ReefAngel.StandardLights(Port6,7,0,22,0);
ReefAngel.StandardFan(Port7);
ReefAngel.StandardFan(Port8);
ReefAngel.PWM.SetActinic(PWMSlope(7,0,22,0,0,100,60,ReefAngel.PWM.GetActinicValue()));
ReefAngel.PWM.SetDaylight(PWMSlope(8,0,21,0,0,100,60,ReefAngel.PWM.GetDaylightValue()));
// Web Banner stuff
if(ReefAngel.Timer[4].IsTriggered())
{
ReefAngel.Timer[4].Start();
ReefAngel.WebBanner();
}
}
thanx for all the help
Re: here is my PDE i think i am close :D
You've got the fan code in the wrong place. You are checking the temperature stuff for your fans in the setup() which only gets run once at controller startup. That code should be place inside the loop() function which runs continuously (hence the name, loop). Also, you have the function StandardFan that would interfere with anything else you will be doing with the fan ports.
I also cleaned up your condition checks. You don't need the >0 check when you are checking for temps above your max temp because that will always be true. However, you would want that when you are checking your lowest temp to ensure that the temp sensor isn't unplugged or getting a random/bad reading.
Here's what your setup() and loop() should look like:
curt
I also cleaned up your condition checks. You don't need the >0 check when you are checking for temps above your max temp because that will always be true. However, you would want that when you are checking your lowest temp to ensure that the temp sensor isn't unplugged or getting a random/bad reading.
Here's what your setup() and loop() should look like:
Code: Select all
void setup()
{
ReefAngel.Init(); //Initialize controller
ReefAngel.OverheatShutoffPorts = B00000000;
ReefAngel.PHMin=529;
ReefAngel.PHMax=819;
// Initialize and start the web banner timer
ReefAngel.LoadWebBanner(pgm_read_word(&(webbanner_items[0])), SIZE(webbanner_items));
ReefAngel.Timer[4].SetInterval(180); // set interval to 180 seconds
ReefAngel.Timer[4].Start();
}
void loop()
{
// Specific functions
ReefAngel.StandardLights(Port1,8,0,21,0);
ReefAngel.StandardLights(Port2,8,0,21,0);
ReefAngel.StandardLights(Port3,8,0,21,0);
ReefAngel.StandardLights(Port4,7,0,22,0);
ReefAngel.StandardLights(Port5,7,0,22,0);
ReefAngel.StandardLights(Port6,7,0,22,0);
// turn on port 7 when temp gets above 77.0 and turn off when temp gets below 74.0
if (ReefAngel.Params.Temp3 >= 770) ReefAngel.Relay.On(Port7);
if (ReefAngel.Params.Temp3 <= 740 && ReefAngel.Params.Temp3 > 0) ReefAngel.Relay.Off(Port7);
// turn on port 8 when temp gets above 85.0 and turn off when temp gets below 75.0
if (ReefAngel.Params.Temp2 >= 850) ReefAngel.Relay.On(Port8);
if (ReefAngel.Params.Temp2 <= 750 && ReefAngel.Params.Temp2 > 0) ReefAngel.Relay.Off(Port8);
ReefAngel.PWM.SetActinic(PWMSlope(7,0,22,0,0,100,60,ReefAngel.PWM.GetActinicValue()));
ReefAngel.PWM.SetDaylight(PWMSlope(8,0,21,0,0,100,60,ReefAngel.PWM.GetDaylightValue()));
// Web Banner stuff
if(ReefAngel.Timer[4].IsTriggered())
{
ReefAngel.Timer[4].Start();
ReefAngel.WebBanner();
}
ReefAngel.ShowInterface();
}