PaulTurner911 Code

Share you PDE file with our community

Posts: 278
Joined: Wed Jan 23, 2013 12:36 pm
PostPosted: Thu Jul 25, 2013 6:06 am
lnevo wrote:
lnevo wrote:
Changed extension of feeding mode to 15 minutes so total duration is 30. Feel free to make the 900 back to 1800.

Fixed the timer issue you had as well...sorry bout that one.
Force night mode to Constant instead of whatever is default mode (NTM was today's mode.)


Ok, so we changed to 1800 to 900 but never changed the comment line?
Image
User avatar
Posts: 5403
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Thu Jul 25, 2013 7:51 am
Correct. Was trying to match up with what you were trying to do. I didn't change the comments.

Posts: 278
Joined: Wed Jan 23, 2013 12:36 pm
PostPosted: Thu Jul 25, 2013 7:55 am
Thanks Bud!!!!
Image

Posts: 278
Joined: Wed Jan 23, 2013 12:36 pm
PostPosted: Tue Jul 30, 2013 6:42 pm
Any chance you had time to revise the code and implement the boolean?
Image
User avatar
Posts: 5403
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Tue Jul 30, 2013 7:28 pm
Sorry i haven't yet, it fell off my radar. Give me a bit still, been super busy and tomorrow I am picking up my new mandarin! Nice and fat and trained to eat frozen! So I'll be busy holding the fish bag on the train home :)

Posts: 278
Joined: Wed Jan 23, 2013 12:36 pm
PostPosted: Wed Jul 31, 2013 7:09 am
Thanks! No rush by any means.
I guess Ive been lucky, my mandrin eats ANYTHING!!
TRAIN?!? Where do you live?
Image
User avatar
Posts: 5403
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Wed Jul 31, 2013 9:36 am
Long Island Rail Road to manhattan every day. Fun. Not.
User avatar
Posts: 5403
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Thu Aug 01, 2013 3:04 pm
Ok, so this should do...

0:00 Feeding Mode Start (all pumps off)
0:15 Smart_NTM
0:30 Feeding Mode End (return pump on)
1:15 Smart_NTM end / Resume previous mode

Good Luck, keep me posted.

Code: Select all
// Set timer when in feeding mode
static boolean feedingStarted;
static unsigned long feeding;
if (ReefAngel.DisplayedMenu==FEEDING_MODE && !feedingStarted) {
    feedingStarted=true;
    feeding = now();
} else {
  feedingStarted=false;
}

// Feeding Mode is 30 minutes
if (now()-feeding<=900) {
  // First 15 minutes after feeding mode. Pump is off
  ReefAngel.DCPump.UseMemory=false;
  ReefAngel.DCPump.Speed=0;
} else if (now()-feeding<=(900+3600)) {
  // NTM after 15 minutes for the next 60 minutes
  ReefAngel.DCPump.UseMemory=false;
  ReefAngel.DCPump.Mode=NutrientTransport;
  ReefAngel.DCPump.Speed=InternalMemory.DCPumpSpeed_read(); // Resume previous speed

Posts: 278
Joined: Wed Jan 23, 2013 12:36 pm
PostPosted: Thu Aug 01, 2013 3:19 pm
Im getting an error 'redeclaration of long unsinged in feeding.

Here is my complete code


Code: Select all
#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 <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <ReefAngel.h>

////// Place global variable code below here


////// Place global variable code above here


void setup()
{
// This must be the first line
ReefAngel.Init(); //Initialize controller
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port1Bit | Port2Bit | Port7Bit | Port8Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port2Bit | Port7Bit | Port8Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = Port2Bit | Port3Bit | Port7Bit | Port8Bit;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port3Bit | Port7Bit | Port8Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;

// Feeeding and Water Change mode speed
ReefAngel.DCPump.FeedingSpeed=0;
ReefAngel.DCPump.WaterChangeSpeed=0;


// Ports that are always on

////// Place additional initialization code below here


////// Place additional initialization code above here
}

void loop()
{
ReefAngel.DayLights( Port1 ); // Return Pump
ReefAngel.StandardFan( Port2 ); // Canopy Fans
ReefAngel.ActinicLights( Port3 ); // Actinic LEDS
//Port4 Kalk/ATO
//Port5 Kalk Stir
//Port 6 NOT USED (Possibly Skimmer)
ReefAngel.DayLights( Port7 ); // MH 1
ReefAngel.DayLights( Port8 ); //MH 2
//Moonlight Phase 9pm-10am (CH4-CH5)
if ( (hour() >=10) && (hour() <21) )
ReefAngel.PWM.SetChannel( 4,(0) );
else
ReefAngel.PWM.SetChannel( 4, MoonPhase() );
if ( (hour() >=10) && (hour() <21) )
ReefAngel.PWM.SetChannel( 5,(0) );
else
ReefAngel.PWM.SetChannel( 5, MoonPhase() );

//Over Flow Protection
if (ReefAngel.HighATO.IsActive())
ReefAngel.Relay.On(Port1);
else
ReefAngel.Relay.Off(Port1);

//ATO Protection
if (ReefAngel.LowATO.IsActive())
ReefAngel.Relay.On(Port4);
else
ReefAngel.Relay.Off(Port4);

//Kalk Dose 60sec @ 11pm-12pm (every 15min)
if (hour() >=23 || hour() < 12)
ReefAngel.Relay.Set(Port4, now()%900<60);
else
ReefAngel.Relay.Off(Port4);

//Kalk Stir 12pm-1pm
if (hour() >=12 & hour() < 13)
ReefAngel.Relay.On(Port5);
else
ReefAngel.Relay.Off(Port5);


ReefAngel.DCPump.UseMemory = true;
ReefAngel.DCPump.DaylightChannel = Sync;
////// Place your custom code below here

///// Place your custom code below here

// Add random mode if we set to Mode to Custom in portal
static int rmode;
static boolean changeMode=true;

// These are the modes we can cycle through. You can add more and even repeat...
byte modes[] = { ReefCrest, TidalSwell, ShortPulse, NutrientTransport };

if (now()%SECS_PER_DAY==0 || changeMode==true) { // Change at midnight or if controller rebooted
rmode=random(100)%sizeof(modes); // Change the mode once per day to pick from our array
changeMode=false;
}

// Set timer when in feeding mode
static unsigned long feeding;
if (ReefAngel.DisplayedMenu==FEEDING_MODE) {
feeding = now();
}

// Set timer when in feeding mode
static boolean feedingStarted;
static unsigned long feeding;
if (ReefAngel.DisplayedMenu==FEEDING_MODE && !feedingStarted) {
    feedingStarted=true;
    feeding = now();
} else {
  feedingStarted=false;
}

// Feeding Mode is 30 minutes
if (now()-feeding<=900) {
  // First 15 minutes after feeding mode. Pump is off
  ReefAngel.DCPump.UseMemory=false;
  ReefAngel.DCPump.Speed=0;
} else if (now()-feeding<=(900+3600)) {
  // NTM after 15 minutes for the next 60 minutes
  ReefAngel.DCPump.UseMemory=false;
  ReefAngel.DCPump.Mode=NutrientTransport;
  ReefAngel.DCPump.Speed=InternalMemory.DCPumpSpeed_read(); // Resume previous speed
  // Night mode (go to 30%)
  ReefAngel.DCPump.UseMemory=false;
  ReefAngel.DCPump.Mode=Constant;
  ReefAngel.DCPump.Speed=30;
} else if (InternalMemory.DCPumpMode_read()==11) {
  // Custom Mode and nothing else going on
  ReefAngel.DCPump.UseMemory=false;
  ReefAngel.DCPump.Mode=modes[rmode];  // Put the mode to the random mode :)
  ReefAngel.DCPump.Speed=InternalMemory.DCPumpSpeed_read(); // Set speed from portal
} else {
  ReefAngel.DCPump.UseMemory=true; // Will reset all values from memory
}

////// Place your custom code above here

// This should always be the last line
ReefAngel.Portal( "paulturner911" );
ReefAngel.ShowInterface();
}

void DrawCustomMain()
{
int x,y;
char text[10];
// Dimming Expansion
x = 15;
y = 2;
for ( int a=0;a<6;a++ )
{
if ( a>2 ) x = 75;
if ( a==3 ) y = 2;
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,x,y,"Ch :" );
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,x+12,y,a );
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,x+24,y,ReefAngel.PWM.GetChannelValue(a) );
y += 10;
}
pingSerial();

// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 43, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 43, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();

// Main Relay Box
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox( 12, 84, TempRelay );
pingSerial();

// Date and Time
ReefAngel.LCD.DrawDate( 6, 122 );
pingSerial();
}

void DrawCustomGraph()
{
}
Image
User avatar
Posts: 5403
Joined: Fri Jul 20, 2012 9:42 am
PostPosted: Thu Aug 01, 2013 3:21 pm
You didn't delete this part...

// Set timer when in feeding mode
static unsigned long feeding;
if (ReefAngel.DisplayedMenu==FEEDING_MODE) {
feeding=now();
}
PreviousNext

Return to My PDE/INO file

Who is online

Users browsing this forum: No registered users and 1 guest

cron