New System
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
I had a few questions about my ATO / water level setup. It seems to be overly sensitive. My aquarium is set up over a basement. When ever we walk by it trips the ATO pump. ALso during normal operation once the water level gets low. The ATO pump runs until it trips out. Is there a way to change that? Also the pump is very loud. Should it be so loud? My wife has asked me to get rid of it because of the noise and the constant running.
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
ReefAngel.WaterLevelATO(Port8,60,70,75); // 60 seconds timeout, turn on at 70% and turn off at 75%
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
Yes it turns on at 70. The problem is it times out before getting to 75.
Re: New System
Seems like you need to increase the timeout.
The 60 means 60 seconds timeout. Just increase it.
The 60 means 60 seconds timeout. Just increase it.
Roberto.
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
Are these pumps suppose to be so noisy?
New System
You could also increase the threshold between low and high and the pump would come on less.
You could also set it to only replenish overnight or restrict times so its not pumping when you are watching tv or trying to sleep or whatever...
I'm not sure which pump you are using...my dosing pumps are a bit noisy. But only when nearby them..
You could also set it to only replenish overnight or restrict times so its not pumping when you are watching tv or trying to sleep or whatever...
I'm not sure which pump you are using...my dosing pumps are a bit noisy. But only when nearby them..
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
I am using a Reef Angel ATO pump. Can you tell me how to program it to only come on from like 2 to 4 AM ? Thanks
New System
You just want to wrap that function with a conditional..smcglaughn wrote:ReefAngel.WaterLevelATO(Port8,60,70,75); // 60 seconds timeout, turn on at 70% and turn off at 75%
if ( (hour()>=2) && (hour()<4) ) {
WaterLevelATO....
}
That will turn your ato relay into an ato relay only during that time...
The main thing you'll want to do is adjust your timeout and levels accordingly...
You could do multiple if blocks if you want to do at other times a day ir we could come up with a better timing like every 4 hours or something... Up to you.
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
Where do I put this code?
New System
Where your current WaterLevelATO function is. You'll want to put the if statement above it and the } below...
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
Like this?
// Specific functions that use Internal Memory values
ReefAngel.Wavemaker(Port5,60);
ReefAngel.Wavemaker(Port6,120);
ReefAngel.StandardHeater(Port7,757,763);
// ReefAngel.StandardLights(Port8,17,0,13,0);
if ( (hour()>=2) && (hour()<4) ) {
ReefAngel.WaterLevelATO(Port8,60,70,75); // 60 seconds timeout, turn on at 70% and turn off at 75%}
ReefAngel.PWM.SetDaylight(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
ReefAngel.PWM.SetActinic(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
// Specific functions that use Internal Memory values
ReefAngel.Wavemaker(Port5,60);
ReefAngel.Wavemaker(Port6,120);
ReefAngel.StandardHeater(Port7,757,763);
// ReefAngel.StandardLights(Port8,17,0,13,0);
if ( (hour()>=2) && (hour()<4) ) {
ReefAngel.WaterLevelATO(Port8,60,70,75); // 60 seconds timeout, turn on at 70% and turn off at 75%}
ReefAngel.PWM.SetDaylight(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
ReefAngel.PWM.SetActinic(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
New System
The only thing you need to do different is put the } on the next line...
The way it is now, it's commented out by the //
And remember you may have to adjust the levels and timeout based on the new scheduling.
The way it is now, it's commented out by the //
And remember you may have to adjust the levels and timeout based on the new scheduling.
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
Like this then?
// Specific functions that use Internal Memory values
ReefAngel.Wavemaker(Port5,60);
ReefAngel.Wavemaker(Port6,120);
ReefAngel.StandardHeater(Port7,757,763);
// ReefAngel.StandardLights(Port8,17,0,13,0);
if ( (hour()>=2) && (hour()<4) ) {
ReefAngel.WaterLevelATO(Port8,360,70,75); // 360 seconds timeout, turn on at 70% and turn off at 75%
}
ReefAngel.PWM.SetDaylight(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
ReefAngel.PWM.SetActinic(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
// Specific functions that use Internal Memory values
ReefAngel.Wavemaker(Port5,60);
ReefAngel.Wavemaker(Port6,120);
ReefAngel.StandardHeater(Port7,757,763);
// ReefAngel.StandardLights(Port8,17,0,13,0);
if ( (hour()>=2) && (hour()<4) ) {
ReefAngel.WaterLevelATO(Port8,360,70,75); // 360 seconds timeout, turn on at 70% and turn off at 75%
}
ReefAngel.PWM.SetDaylight(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
ReefAngel.PWM.SetActinic(PWMSlopeOvernight(22,0,6,0,0,MoonPhase(),30,0));
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
I have a couple questions.
1) Since I have made this change 2 new items show on my LCD screen. DP 42 and AP 42. What is that for?
2) Can I change the salinity LCD color? It looks gold and is hard to see.
Now for a problem I have encountered. I can not get the "in water calibration to stabilize. The out of water works perfectly. I pull the PVC out of the water it stabilizes very quickly. When I put the PVC back in the water the first 3 numbers stabilize pretty quickly, but the fourth digit changes so rapidly up and down. I have a hard time seeing it. I actually thought it was stable until I put on my reading glasses.
Below is the current code I am using. Thanks for your help!
#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 <AI.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <Salinity.h>
#include <PH.h>
#include <WaterLevel.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
ReefAngel.WaterChangePorts= Port1Bit | Port2Bit | Port3Bit | Port5Bit | Port6Bit;
// Ports that are always on
ReefAngel.Relay.On(Port1);
ReefAngel.Relay.On(Port2);
ReefAngel.Relay.On(Port3);
ReefAngel.Relay.On(Port4);
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop()
{
// Specific functions that use Internal Memory values
ReefAngel.Wavemaker(Port5,60);
ReefAngel.Wavemaker(Port6,120);
ReefAngel.StandardHeater(Port7,757,763);
// ReefAngel.StandardLights(Port8,17,0,13,0);
if ( (hour()>=2) && (hour()<5) ) {
ReefAngel.WaterLevelATO(Port8,420,70,75); // 420 seconds timeout, turn on at 70% and turn off at 75%
}
ReefAngel.PWM.SetDaylight( MoonPhase() );
ReefAngel.PWM.SetActinic( MoonPhase() );
////// Place your custom code below here
////// Place your custom code above here
// This should always be the last line
ReefAngel.ShowInterface();
}
void DrawCustomMain()
{
int x,y;
char text[10];
// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 14, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 14, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();
// Salinity
ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,15,54, "SAL:" );
ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,39,54, ReefAngel.Params.Salinity );
pingSerial();
// Water Level
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,75,75, "WL:" );
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,99,75, ReefAngel.WaterLevel.GetLevel() );
pingSerial();
// Main Relay Box
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox( 12, 95, TempRelay );
pingSerial();
// Date and Time
ReefAngel.LCD.DrawDate( 6, 122 );
pingSerial();
}
void DrawCustomGraph()
{
}
1) Since I have made this change 2 new items show on my LCD screen. DP 42 and AP 42. What is that for?
2) Can I change the salinity LCD color? It looks gold and is hard to see.
Now for a problem I have encountered. I can not get the "in water calibration to stabilize. The out of water works perfectly. I pull the PVC out of the water it stabilizes very quickly. When I put the PVC back in the water the first 3 numbers stabilize pretty quickly, but the fourth digit changes so rapidly up and down. I have a hard time seeing it. I actually thought it was stable until I put on my reading glasses.
Below is the current code I am using. Thanks for your help!
#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 <AI.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <Salinity.h>
#include <PH.h>
#include <WaterLevel.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
ReefAngel.WaterChangePorts= Port1Bit | Port2Bit | Port3Bit | Port5Bit | Port6Bit;
// Ports that are always on
ReefAngel.Relay.On(Port1);
ReefAngel.Relay.On(Port2);
ReefAngel.Relay.On(Port3);
ReefAngel.Relay.On(Port4);
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop()
{
// Specific functions that use Internal Memory values
ReefAngel.Wavemaker(Port5,60);
ReefAngel.Wavemaker(Port6,120);
ReefAngel.StandardHeater(Port7,757,763);
// ReefAngel.StandardLights(Port8,17,0,13,0);
if ( (hour()>=2) && (hour()<5) ) {
ReefAngel.WaterLevelATO(Port8,420,70,75); // 420 seconds timeout, turn on at 70% and turn off at 75%
}
ReefAngel.PWM.SetDaylight( MoonPhase() );
ReefAngel.PWM.SetActinic( MoonPhase() );
////// Place your custom code below here
////// Place your custom code above here
// This should always be the last line
ReefAngel.ShowInterface();
}
void DrawCustomMain()
{
int x,y;
char text[10];
// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 14, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 14, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();
// Salinity
ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,15,54, "SAL:" );
ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,39,54, ReefAngel.Params.Salinity );
pingSerial();
// Water Level
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,75,75, "WL:" );
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,99,75, ReefAngel.WaterLevel.GetLevel() );
pingSerial();
// Main Relay Box
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox( 12, 95, TempRelay );
pingSerial();
// Date and Time
ReefAngel.LCD.DrawDate( 6, 122 );
pingSerial();
}
void DrawCustomGraph()
{
}
New System
The dp/ap is the pwm ports that it looks like you are using as moonlights. That is the dimming percentage. Ap is actinic port and dp is daylight port
As far as changing the color, the only way to do that is to write a custom display. Maybe you could redefine the color used. I'll let someone more familiar with that part of the library.
As far as the water level, this sounds like an issue I had. What is the calibration number when out of the water? It should be around 900...
What operating system are you using? I had to modify my waterlevel files in the library to use long instead of int. let's do some troubleshooting and I can give you the replacement files...
After you check the water level out of the water try blowing in the pvc...does the number stay 3 digits? Does it looks like it is bouncing back to 0, going up and resetting etc? If so then you might have the same issue I did.
As far as changing the color, the only way to do that is to write a custom display. Maybe you could redefine the color used. I'll let someone more familiar with that part of the library.
As far as the water level, this sounds like an issue I had. What is the calibration number when out of the water? It should be around 900...
What operating system are you using? I had to modify my waterlevel files in the library to use long instead of int. let's do some troubleshooting and I can give you the replacement files...
After you check the water level out of the water try blowing in the pvc...does the number stay 3 digits? Does it looks like it is bouncing back to 0, going up and resetting etc? If so then you might have the same issue I did.
Re: New System
Change this:
To this:
Yes, the calibration is fast and the last digit will change rapidly, but you can accept it anyway. It will never stay put in a single number. We are scaling down the resolution too, anyway. We only use 0-100% and the calibration is way more than that.
Code: Select all
ReefAngel.LCD.DrawText( COLOR_DARKKHAKI,DefaultBGColor,39,54, ReefAngel.Params.Salinity );
Code: Select all
ReefAngel.LCD.DrawText( COLOR_BLACK,DefaultBGColor,39,54, ReefAngel.Params.Salinity );
Roberto.
New System
Sorry, didn't see you already had a custom main. Try doing the calibration again and let us know...
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
The number is 935 when out of the water. When I blow in it it goes to 2000+. Thats the same number I get when I put the PVC back in the water to calibrate. After a few days my water level percentge is different even though the water level is the same.
Thanks for the help with the font color.
Thanks for the help with the font color.
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
Yes I used teflon tape.
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
What I have noticed is. If the sensor times out. Even though I reset the ATO. The water level is screwed up. I have to do a calibration. As long as the ATO pump isnt timed out. The water level works fine. Is that something that can be fixed?
-
- Posts: 67
- Joined: Tue Sep 18, 2012 8:00 pm
- Location: Spruce Pine Alabama
Re: New System
No but I will this weekend and see if that helps.