vortech programming

Basic / Standard Reef Angel hardware
Post Reply
Addicted2Coral
Posts: 30
Joined: Wed Jul 04, 2012 11:52 am

vortech programming

Post by Addicted2Coral »

i am having issues with how my vortechs are controlled... here is my code for them..

ReefAngel.Relay.Set(Port8,!ReefAngel.HighATO.IsActive());
if (hour()>=11 && hour()<13) //
{
ReefAngel.RF.SetMode( Lagoon,60,100 );
}
if (hour()>=13 && hour()<15) //
{
ReefAngel.RF.SetMode( LongPulse,100,50 );
}
if (hour()>=15 && hour()<17) //
{
ReefAngel.RF.SetMode( ReefCrest,60,100 );
if (hour()>=17 && hour()<18) //
{
ReefAngel.RF.SetMode( Lagoon,60,50 );
}
if (hour()>=18 && hour()<23) //
{
ReefAngel.RF.SetMode( Lagoon,40,100 );
}
if (hour()>=23 && hour()<11) //
{
ReefAngel.RF.SetMode( Constant,25,100 );
}}
// Constant
// Lagoon
// ReefCrest
// ShortPulse 1=10ms
// LongPulse 1=1s
// NutrientTransport 1=10ms
// TidalSwell

it stays in the same mode 24/7 long pulse 100 percent power half time.. the way i wanted it was to be kind of idle at night, and slowly pic up in the day until it gets kinda rough in the evening and then slow back down.. they are not doing this they just stay at 100, 50 long pulse all the time..
Addicted2Coral
Posts: 30
Joined: Wed Jul 04, 2012 11:52 am

Re: vortech programming

Post by Addicted2Coral »

also can i change setting from the portal or my phone?? say if i wanted to just change my color to blue for a sec and then change back to normal...
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: vortech programming

Post by rimai »

Can I see the entire code?
You must set the controller to use the code functions instead of memory.

Code: Select all

ReefAngel.RF.UseMemory=false;
Roberto.
Addicted2Coral
Posts: 30
Joined: Wed Jul 04, 2012 11:52 am

Re: vortech programming

Post by Addicted2Coral »

#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 <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 | Port7Bit | Port8Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port1Bit | Port2Bit | Port3Bit | Port4Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit | Port3Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write( 840 );


// Ports that are always on
ReefAngel.Relay.On( Port1 );
ReefAngel.Relay.On( Port2 );

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


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

void loop()
{
ReefAngel.StandardHeater( Port3,785,790 );
ReefAngel.DosingPumpRepeat( Port4,0,60,60 );
ReefAngel.DosingPumpRepeat( Port5,10,120,60 );
ReefAngel.WavemakerRandom( Port6,60,120 );
ReefAngel.StandardFan( Port7,790,800 );
ReefAngel.SingleATO( true,Port8,300,0 );
ReefAngel.RF.UseMemory = false;
ReefAngel.RF.SetMode( ReefCrest,75,10 );
ReefAngel.RF.SetChannel( Radion_White, PWMParabola(11,30,22,30,0,75,0) );
ReefAngel.RF.SetChannel( Radion_RoyalBlue, PWMParabola(11,0,23,0,0,100,0) );
ReefAngel.RF.SetChannel( Radion_Red, PWMParabola(12,0,21,0,0,30,0) );
ReefAngel.RF.SetChannel( Radion_Green, PWMParabola(12,0,21,0,0,30,0) );
ReefAngel.RF.SetChannel( Radion_Blue, PWMParabola(11,0,23,0,0,100,0) );
ReefAngel.RF.SetChannel( Radion_Intensity, PWMSlope(11,0,23,0,75,75,60,75) );
if ( second()==0 ) ReefAngel.RF.RadionWrite();

////// Place your custom code below here
ReefAngel.Relay.Set(Port8,!ReefAngel.HighATO.IsActive());
if (hour()>=11 && hour()<13) // 3pm to 5pm
{
ReefAngel.RF.SetMode( Lagoon,60,100 );
}
if (hour()>=13 && hour()<15) // 3pm to 5pm
{
ReefAngel.RF.SetMode( NutrientTransport,60,100 );
}
if (hour()>=15 && hour()<17) // 3pm to 5pm
{
ReefAngel.RF.SetMode( ReefCrest,60,100 );
if (hour()>=17 && hour()<18) // 3pm to 5pm
{
ReefAngel.RF.SetMode( LongPulse,50,10 );
}
if (hour()>=18 && hour()<23) // 3pm to 5pm
{
ReefAngel.RF.SetMode( Constant,40,100 );
}
if (hour()>=23 && hour()<11) // 3pm to 5pm
{
ReefAngel.RF.SetMode( Constant,25,100 );
}
// Constant
// Lagoon
// ReefCrest
// ShortPulse 1=10ms
// LongPulse 1=1s
// NutrientTransport 1=10ms
// TidalSwell

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

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

void DrawCustomMain()
{
int x,y;
char text[10];
// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();

// Salinity
ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,15,66, "SAL:" );
ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,39,66, ReefAngel.Params.Salinity );
pingSerial();

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

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

void DrawCustomGraph()
{
}
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: vortech programming

Post by rimai »

Your code is not even compiling.
It's missing a closing bracket on one of your if statement.
Are you sure you uploaded this code?

Try this:

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 <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 | Port7Bit | Port8Bit;
  // Ports toggled in Water Change Mode
  ReefAngel.WaterChangePorts = Port1Bit | Port2Bit | Port3Bit | Port4Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
  // Ports toggled when Lights On / Off menu entry selected
  ReefAngel.LightsOnPorts = 0;
  // Ports turned off when Overheat temperature exceeded
  ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit | Port3Bit;
  // Use T1 probe as temperature and overheat functions
  ReefAngel.TempProbe = T1_PROBE;
  ReefAngel.OverheatProbe = T1_PROBE;
  // Set the Overheat temperature setting
  InternalMemory.OverheatTemp_write( 840 );


  // Ports that are always on
  ReefAngel.Relay.On( Port1 );
  ReefAngel.Relay.On( Port2 );

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


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

void loop()
{
  ReefAngel.StandardHeater( Port3,785,790 );
  ReefAngel.DosingPumpRepeat( Port4,0,60,60 );
  ReefAngel.DosingPumpRepeat( Port5,10,120,60 );
  ReefAngel.WavemakerRandom( Port6,60,120 );
  ReefAngel.StandardFan( Port7,790,800 );
  ReefAngel.SingleATO( true,Port8,300,0 );
  ReefAngel.RF.UseMemory = false;
  ReefAngel.RF.SetMode( ReefCrest,75,10 );
  ReefAngel.RF.SetChannel( Radion_White, PWMParabola(11,30,22,30,0,75,0) );
  ReefAngel.RF.SetChannel( Radion_RoyalBlue, PWMParabola(11,0,23,0,0,100,0) );
  ReefAngel.RF.SetChannel( Radion_Red, PWMParabola(12,0,21,0,0,30,0) );
  ReefAngel.RF.SetChannel( Radion_Green, PWMParabola(12,0,21,0,0,30,0) );
  ReefAngel.RF.SetChannel( Radion_Blue, PWMParabola(11,0,23,0,0,100,0) );
  ReefAngel.RF.SetChannel( Radion_Intensity, PWMSlope(11,0,23,0,75,75,60,75) );
  if ( second()==0 ) ReefAngel.RF.RadionWrite();

  ////// Place your custom code below here
  ReefAngel.Relay.Set(Port8,!ReefAngel.HighATO.IsActive());
  if (hour()>=11 && hour()<13) // 3pm to 5pm
    ReefAngel.RF.SetMode( Lagoon,60,100 );
  if (hour()>=13 && hour()<15) // 3pm to 5pm 
    ReefAngel.RF.SetMode( NutrientTransport,60,100 );
  if (hour()>=15 && hour()<17) // 3pm to 5pm
    ReefAngel.RF.SetMode( ReefCrest,60,100 );
  if (hour()>=17 && hour()<18) // 3pm to 5pm
    ReefAngel.RF.SetMode( LongPulse,50,10 );
  if (hour()>=18 && hour()<23) // 3pm to 5pm
    ReefAngel.RF.SetMode( Constant,40,100 );
  if (hour()>=23 || hour()<11) // 3pm to 5pm
    ReefAngel.RF.SetMode( Constant,25,100 );
  // Constant
  // Lagoon
  // ReefCrest
  // ShortPulse 1=10ms
  // LongPulse 1=1s
  // NutrientTransport 1=10ms
  // TidalSwell

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

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

void DrawCustomMain()
{
  int x,y;
  char text[10];
  // Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
  ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params,
  ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
  ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
  pingSerial();

  // Salinity
  ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,15,66, "SAL:" );
  ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,39,66, ReefAngel.Params.Salinity );
  pingSerial();

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

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

void DrawCustomGraph()
{
}
Roberto.
Addicted2Coral
Posts: 30
Joined: Wed Jul 04, 2012 11:52 am

Re: vortech programming

Post by Addicted2Coral »

No that is not the exact code. I had to make a new code because I didn't like what it did with my radions. I redone it and left the radion set to none. I only want my vortexes to be controlled. I didn't save the latest code for the reefangel so I geuss I have to redo it again. Which mean taking it all apart and taking it back to the computer.

What do u suggest.
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: vortech programming

Post by rimai »

You can use the one I posted above. It should be doing what you mentioned earlier.
Roberto.
Addicted2Coral
Posts: 30
Joined: Wed Jul 04, 2012 11:52 am

Re: vortech programming

Post by Addicted2Coral »

in the code you post it is gonna mess with my current programming with my radions.. can you tell what to change..

you said to add the line ReefAngel.RF.UseMemory=false;

its in there already....

i bet i am your worst customer..

i just need to bring it all in here to the computer.. again... i can get the code out of the reef angel and send it to you right?? all i want controlled is the vortechs not the radions.. in the code you want me to load it has set for the radions to be controlled.. dont want that...
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: vortech programming

Post by rimai »

Ah, ok...
Use this then:

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 <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 | Port7Bit | Port8Bit;
  // Ports toggled in Water Change Mode
  ReefAngel.WaterChangePorts = Port1Bit | Port2Bit | Port3Bit | Port4Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
  // Ports toggled when Lights On / Off menu entry selected
  ReefAngel.LightsOnPorts = 0;
  // Ports turned off when Overheat temperature exceeded
  ReefAngel.OverheatShutoffPorts = Port1Bit | Port2Bit | Port3Bit;
  // Use T1 probe as temperature and overheat functions
  ReefAngel.TempProbe = T1_PROBE;
  ReefAngel.OverheatProbe = T1_PROBE;
  // Set the Overheat temperature setting
  InternalMemory.OverheatTemp_write( 840 );


  // Ports that are always on
  ReefAngel.Relay.On( Port1 );
  ReefAngel.Relay.On( Port2 );

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


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

void loop()
{
  ReefAngel.StandardHeater( Port3,785,790 );
  ReefAngel.DosingPumpRepeat( Port4,0,60,60 );
  ReefAngel.DosingPumpRepeat( Port5,10,120,60 );
  ReefAngel.WavemakerRandom( Port6,60,120 );
  ReefAngel.StandardFan( Port7,790,800 );
  ReefAngel.SingleATO( true,Port8,300,0 );
  ReefAngel.RF.UseMemory = false;

  ////// Place your custom code below here
  ReefAngel.Relay.Set(Port8,!ReefAngel.HighATO.IsActive());
  if (hour()>=11 && hour()<13) // 3pm to 5pm
    ReefAngel.RF.SetMode( Lagoon,60,100 );
  if (hour()>=13 && hour()<15) // 3pm to 5pm 
    ReefAngel.RF.SetMode( NutrientTransport,60,100 );
  if (hour()>=15 && hour()<17) // 3pm to 5pm
    ReefAngel.RF.SetMode( ReefCrest,60,100 );
  if (hour()>=17 && hour()<18) // 3pm to 5pm
    ReefAngel.RF.SetMode( LongPulse,50,10 );
  if (hour()>=18 && hour()<23) // 3pm to 5pm
    ReefAngel.RF.SetMode( Constant,40,100 );
  if (hour()>=23 || hour()<11) // 3pm to 5pm
    ReefAngel.RF.SetMode( Constant,25,100 );
  // Constant
  // Lagoon
  // ReefCrest
  // ShortPulse 1=10ms
  // LongPulse 1=1s
  // NutrientTransport 1=10ms
  // TidalSwell

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

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

void DrawCustomMain()
{
  int x,y;
  char text[10];
  // Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
  ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params,
  ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
  ReefAngel.LCD.DrawMonitor( 15, 20, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
  pingSerial();

  // Salinity
  ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,15,66, "SAL:" );
  ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,39,66, ReefAngel.Params.Salinity );
  pingSerial();

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

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

void DrawCustomGraph()
{
}
Roberto.
Addicted2Coral
Posts: 30
Joined: Wed Jul 04, 2012 11:52 am

Re: vortech programming

Post by Addicted2Coral »

i can handle that.. i changed the ports around from when you set that code for me( i know i am a pain) but i see what i need to change to get the ports right...

the reason i changed is because the doser i just got does its own thing... i dont need dosing ports so i went thru and changed the ports to do other things.. but i can fix that,... i think...
rimai
Posts: 12857
Joined: Fri Mar 18, 2011 6:47 pm

Re: vortech programming

Post by rimai »

Cool.
Roberto.
Post Reply