both ph probes completely berserk
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
both ph probes completely berserk
I have been traveling a lot lately and haven't been able to care for my tanks like I'd like. My RA and my Cam's stayed up during my travels so I could keep an eye on things.
My issue is that both my standard and my expansion PH's started giving totally bogus readings. The standard PH starting going down down down and was reading in the 4's by the time I got home. The PH expansion unit started going up up up and is currently in the 14's.
Via my camera I could see all was well, no acid or alkanity baths, fish jumping from the tanks, etc. Once home, all water tested 8.4 as expected.
The main ph is now in a glass of RODI yet still the portal says it is 6.13. On inspection (rinsing) all looks well with the probe but the barrel of the probe appears to be full of water (or some fluid)
I haven't removed the PH expansion unit (currently at 14) but will get to that tonite or tomorrow. What do you guys think? Seems weird that both PH units would go bad at approximately the same time (honestly about 3 weeks apart)
Thx
My issue is that both my standard and my expansion PH's started giving totally bogus readings. The standard PH starting going down down down and was reading in the 4's by the time I got home. The PH expansion unit started going up up up and is currently in the 14's.
Via my camera I could see all was well, no acid or alkanity baths, fish jumping from the tanks, etc. Once home, all water tested 8.4 as expected.
The main ph is now in a glass of RODI yet still the portal says it is 6.13. On inspection (rinsing) all looks well with the probe but the barrel of the probe appears to be full of water (or some fluid)
I haven't removed the PH expansion unit (currently at 14) but will get to that tonite or tomorrow. What do you guys think? Seems weird that both PH units would go bad at approximately the same time (honestly about 3 weeks apart)
Thx
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Re: both ph probes completely berserk
following along as mine has been reading low lately too. i just figured that i need to recalibrate mine or buy a new one...
Re: both ph probes completely berserk
That pH looks accurate for RO water. Is it staying at 6.13 when you have it in the glass or does it still fluctuate? Try it in a glass of tank water too.rossbryant1956 wrote:The main ph is now in a glass of RODI yet still the portal says it is 6.13. On inspection (rinsing) all looks well with the probe but the barrel of the probe appears to be full of water (or some fluid)
I had the same issue and it turned out to be a bad float switch. Others have had stray voltage leaking into the tank from other devices (power heads, etc.) causing inaccurate readings. If the pH is stable in the glass of RO/tank water put the probe back in the tank and start unplugging devices one by one till you find the one causing the problem. If you run out of devices check your float switches. Stray voltage is more common that bad floats.
Being that both probes are not reading correctly it's more than likely not a probe issue.
~Charlie
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
I will work on this over the holiday weekend. My RA is currently unplugged and the pumps are hardwired to keep flow because the other night it just started rebooting over and over again. No clue why. I'll keep everyone in the loop. Thanks.
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Re: both ph probes completely berserk
Post your code when you get a chance. Sometimes you'll get crazy reboots like that if there is something off in the code. Also check all of your connections. The same thing happen to me when I first put my RA together. I had a bad connection on one of the USB cables if I remember correctly. Or maybe it was the VGA com cable... Can't remember exactly which cable but once I secure it all my random reboot problems went away.
~Charlie
~Charlie
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
Here is my code, love your input, but not sure the problem lies here. While not fully and completely tested, it is a compilation of some of the better coders on this board. This code has been running for months.
While it might be code I think it is hardware. My salinity probe has never worked properly and now this issue with the ph probes. At any rate, I have it all ripped out now, only thing plugged in is one pH probe (in a glass of tank water) and the wireless. It has stopped the constant rebooting. However the pH still reads 6.07
Should I re-calibrate the ph probe? Hasn't been done in a while. Appreciate the input. Thx
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 <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <IO.h>
#include <Salinity.h>
#include <PH.h>
#include <ReefAngel.h>
// Set global variables
boolean PowerOutage=false;
boolean DelayedPowerOutage=false;
// Globals for Params on Custom Main
byte x,y;
char text[10];
// Custom Menu
#include <avr/pgmspace.h>
prog_char menu0_label[] PROGMEM = "Turn Lights On";
prog_char menu1_label[] PROGMEM = "Turn Lights Off";
prog_char menu2_label[] PROGMEM = "Start Feeding";
prog_char menu3_label[] PROGMEM = "Start Water Change";
prog_char menu4_label[] PROGMEM = "Clear Overheat";
prog_char menu5_label[] PROGMEM = "Calibrate pH";
prog_char menu6_label[] PROGMEM = "Calibrate Salinity";
PROGMEM const char *menu_items[] = {
menu0_label, menu1_label, menu2_label, menu3_label, menu4_label, menu5_label, menu6_label };
void MenuEntry1()
{
ReefAngel.DisplayMenuEntry("Item 1");ReefAngel.Relay.RelayMaskOn = ReefAngel.LightsOnPorts;
#ifdef RelayExp
for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ )
{
ReefAngel.Relay.RelayMaskOnE[i] = ReefAngel.LightsOnPortsE[i];
}
#endif // RelayExp
ReefAngel.Relay.Write();
}
void MenuEntry2()
{
ReefAngel.DisplayMenuEntry("Item 2");ReefAngel.Relay.RelayMaskOn = 0;
#ifdef RelayExp
for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ )
{
ReefAngel.Relay.RelayMaskOnE[i] = 0;
}
#endif // RelayExp
ReefAngel.Relay.Write();
}
void MenuEntry3()
{
ReefAngel.DisplayMenuEntry("Item 3");ReefAngel.FeedingModeStart();
}
void MenuEntry4()
{
ReefAngel.DisplayMenuEntry("Item 4");ReefAngel.WaterChangeModeStart();
}
void MenuEntry5()
{
ReefAngel.DisplayMenuEntry("Item 5");ReefAngel.OverheatClear();
}
void MenuEntry6()
{
ReefAngel.DisplayMenuEntry("Item 6");ReefAngel.SetupCalibratePH();
ReefAngel.DisplayedMenu = ALT_SCREEN_MODE;
}
void MenuEntry7()
{
ReefAngel.DisplayMenuEntry("Item 7");ReefAngel.SetupCalibrateSalinity();
}
// End Custom Menu Globals
void setup() {
ReefAngel.Init(); //Initialize controller
ReefAngel.InitMenu(pgm_read_word(&(menu_items[0])),SIZE(menu_items)); // Initialize the menu
ReefAngel.FeedingModePorts = Port5Bit | Port6Bit | Port7Bit | Port8Bit; // Turn off DT-LWM, GT-LWM, GT-Pump, and DT-Pump when feeding mode is activated is activated on Box1
ReefAngel.FeedingModePortsE[0] = Port5Bit | Port6Bit | Port7Bit; // Turn off DT-RWM, GT-RWM, and Skimmer when feeding mode is activated is activated on Box2
ReefAngel.WaterChangePorts = Port3Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit; // Turn off DT-Heat, DT-LWM, GT-Pump, and DT-Pump when water change mode is activated
ReefAngel.TempProbe = T2_PROBE; // Set the 2nd plug to be DT Main temp
ReefAngel.OverheatProbe = T2_PROBE; // to monitor the overheat and temperatures
ReefAngel.OverheatShutoffPorts = Port1Bit | Port3Bit; // DT-Lights and DT-Heat turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPortsE[0] = Port7Bit; //Skimmer turned off if overheat
InternalMemory.OverheatTemp_write( 829 ); // Set the DT Overheat temperature setting
ReefAngel.LightsOnPorts = Port1Bit | Port2Bit; // Toggle DT Lights
ReefAngel.LightsOnPortsE[0] = Port3Bit | Port4Bit; // Toggle GT Lights
}
void loop()
{
// Specific functions
ReefAngel.Relay.On(Port8); // Turn on Pump
ReefAngel.Relay.On(Port7); // Turn on GT Pump
// Ports that are delayed on Power Cycle & Feeding & Water Change
if (PowerOutage && ReefAngel.Relay.IsRelayPresent(EXP1_RELAY))
{
PowerOutage=false;
DelayedPowerOutage=false;
LastStart=now();
}
ReefAngel.Relay.DelayedOn( Port7,2 ); //GT-Pump -set to 2 min for testing CHANGE TO 4MINS
ReefAngel.Relay.DelayedOn( Port8,1 ); //DT-Pump -set to 1 min for testing CHANGE TO 2MINS
// ReefAngel.Relay.DelayedOn( Box1_Port7,3 ); //Skimmer -set to 1 min for testing CHANGE TO 6MINS
ReefAngel.Relay.On(Box1_Port8); // power the PH expansion hub
ReefAngel.StandardLights( Port1,14,00,22,00 ); // DT Lights on at 2:00pm and off at 10:00pm
// ReefAngel.StandardLights( Port2,22,00,01,00 ); // DT-Moon Lights on at 10:00am and off at 1:00am
ReefAngel.StandardLights( Box1_Port1,0,0,6,0 ); //Turn on reservoir between 12 AM and 6 AM
ReefAngel.StandardLights( Box1_Port3,14,00,21,45 ); //GT Lights Main 2:00pm - 9:45pm
ReefAngel.StandardLights( Box1_Port4,15,00,22,30 ); //GT Lights Actinic 3:00pm - 10:30pm
ReefAngel.WavemakerRandom( Port5,60,100 );
ReefAngel.Relay.Set( Box1_Port5, !ReefAngel.Relay.Status( Port5 ) ); //Randomize DT powerheads
ReefAngel.WavemakerRandom1( Port6,60,100 );
ReefAngel.Relay.Set( Box1_Port6, !ReefAngel.Relay.Status( Port6 ) ); //Randomize GT powerheads
ReefAngel.StandardHeater(Port3,779,791); //DT-Heat
StandardHeater2( Port4,779,791 ); //GT-Heat
// if the hour is 2p or 8p, minute is 55 and seconds is 0, start the feeding mode
if ( ((hour() == 14) || (hour() == 20)) &&
(minute() == 55) &&
(second() == 0) )
{
ReefAngel.FeedingModeStart();
}
//turn off port 8 - DT pump when switch is tripped and sound buzzer
ReefAngel.Relay.Set(Port8,ReefAngel.IO.GetChannel(0));
ReefAngel.PWM.SetDaylight(100-(ReefAngel.IO.GetChannel(0)*100));
//turn off port 7 - GT pump when switch is tripped and sound buzzer
ReefAngel.Relay.Set(Port7,ReefAngel.IO.GetChannel(1));
ReefAngel.PWM.SetDaylight(100-(ReefAngel.IO.GetChannel(1)*100));
//tell the portal we have a overflow problem
ReefAngel.CustomVar[0]=ReefAngel.IO.GetChannel(0);
ReefAngel.CustomVar[1]=ReefAngel.IO.GetChannel(1);
ReefAngel.CustomVar[7]=1;
//set up dosing pump one to run twice a week for 4 minutes
//ReefAngel.Relay.Set(Box1_Port2,((weekday()==1||weekday()==4) && hour()==14 && minute()<6));
//ReefAngel.Relay.Set (Box1_Port3,(hour()%2==0)); //stir chemicals in water top off unit
// Power Outage - Only DT,GT LWM & Heat ports on
if (!ReefAngel.Relay.IsRelayPresent(EXP1_RELAY)) PowerOutage=true; //Exp1 Relay NOT present
if (!PowerOutage)
{
ReefAngel.Timer[1].Start();
}
if (ReefAngel.Timer[1].IsTriggered())
{
DelayedPowerOutage=true;
}
if (DelayedPowerOutage)
{
ReefAngel.Relay.Off (Port1); //DT Lights 1
ReefAngel.Relay.Off (Port2); //DT Lights 2
ReefAngel.Relay.Off (Port7); //GT Pump
ReefAngel.Relay.Off (Port8); //DT Pump
}
// Skimmer off when Return pump is off.
if (bitRead(ReefAngel.Relay.RelayMaskOff,7)==0) //Return
{
bitClear(ReefAngel.Relay.RelayMaskOffE[0],6); //Skimmer
}
ReefAngel.Portal("rossbryant1956");
ReefAngel.ShowInterface();
}
void StandardHeater2(byte HeaterRelay, int LowTemp, int HighTemp) //Heater for Grow Tank
{
if (ReefAngel.Params.Temp[T1_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T1_PROBE] <= LowTemp && ReefAngel.Params.Temp[T1_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T1_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor temperature >= HighTemp - turn off heater
}
void DrawCustomMain()
{
int x,y;
//char text[10];
// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 40, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 40, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();
// pH Expansion
ReefAngel.LCD.DrawText( COLOR_MEDIUMSEAGREEN,DefaultBGColor,15,75, "GT pH:" );
char text[7];
ConvertNumToString(text, ReefAngel.Params.PHExp, 100);
ReefAngel.LCD.DrawText(COLOR_MEDIUMSEAGREEN, DefaultBGColor, 55, 75, text);
// Main Relay Box
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox( 12, 93, TempRelay );
pingSerial();
// Relay Expansion
TempRelay = ReefAngel.Relay.RelayDataE[0];
TempRelay &= ReefAngel.Relay.RelayMaskOffE[0];
TempRelay |= ReefAngel.Relay.RelayMaskOnE[0];
ReefAngel.LCD.DrawOutletBox( 12, 107, TempRelay );
pingSerial();
// Date and Time
ReefAngel.LCD.DrawDate( 6, 122 );
pingSerial();
}
void DrawCustomGraph()
{
// ReefAngel.LCD.DrawGraph( 5, 5 );
}
Should I re-calibrate the ph probe? Hasn't been done in a while. Appreciate the input. Thx
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
-
- Posts: 140
- Joined: Wed Mar 13, 2013 5:36 pm
Re: both ph probes completely berserk
"all ripped out" meaning temp probes too?rossbryant1956 wrote:Here is my code, love your input, but not sure the problem lies here. While not fully and completely tested, it is a compilation of some of the better coders on this board. This code has been running for months.
While it might be code I think it is hardware. My salinity probe has never worked properly and now this issue with the ph probes. At any rate, I have it all ripped out now, only thing plugged in is one pH probe (in a glass of tank water) and the wireless. It has stopped the constant rebooting. However the pH still reads 6.07Code: 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 <RA_Colors.h> #include <RA_CustomColors.h> #include <Relay.h> #include <RA_PWM.h> #include <Timer.h> #include <Memory.h> #include <IO.h> #include <Salinity.h> #include <PH.h> #include <ReefAngel.h> // Set global variables boolean PowerOutage=false; boolean DelayedPowerOutage=false; // Globals for Params on Custom Main byte x,y; char text[10]; // Custom Menu #include <avr/pgmspace.h> prog_char menu0_label[] PROGMEM = "Turn Lights On"; prog_char menu1_label[] PROGMEM = "Turn Lights Off"; prog_char menu2_label[] PROGMEM = "Start Feeding"; prog_char menu3_label[] PROGMEM = "Start Water Change"; prog_char menu4_label[] PROGMEM = "Clear Overheat"; prog_char menu5_label[] PROGMEM = "Calibrate pH"; prog_char menu6_label[] PROGMEM = "Calibrate Salinity"; PROGMEM const char *menu_items[] = { menu0_label, menu1_label, menu2_label, menu3_label, menu4_label, menu5_label, menu6_label }; void MenuEntry1() { ReefAngel.DisplayMenuEntry("Item 1");ReefAngel.Relay.RelayMaskOn = ReefAngel.LightsOnPorts; #ifdef RelayExp for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ ) { ReefAngel.Relay.RelayMaskOnE[i] = ReefAngel.LightsOnPortsE[i]; } #endif // RelayExp ReefAngel.Relay.Write(); } void MenuEntry2() { ReefAngel.DisplayMenuEntry("Item 2");ReefAngel.Relay.RelayMaskOn = 0; #ifdef RelayExp for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ ) { ReefAngel.Relay.RelayMaskOnE[i] = 0; } #endif // RelayExp ReefAngel.Relay.Write(); } void MenuEntry3() { ReefAngel.DisplayMenuEntry("Item 3");ReefAngel.FeedingModeStart(); } void MenuEntry4() { ReefAngel.DisplayMenuEntry("Item 4");ReefAngel.WaterChangeModeStart(); } void MenuEntry5() { ReefAngel.DisplayMenuEntry("Item 5");ReefAngel.OverheatClear(); } void MenuEntry6() { ReefAngel.DisplayMenuEntry("Item 6");ReefAngel.SetupCalibratePH(); ReefAngel.DisplayedMenu = ALT_SCREEN_MODE; } void MenuEntry7() { ReefAngel.DisplayMenuEntry("Item 7");ReefAngel.SetupCalibrateSalinity(); } // End Custom Menu Globals void setup() { ReefAngel.Init(); //Initialize controller ReefAngel.InitMenu(pgm_read_word(&(menu_items[0])),SIZE(menu_items)); // Initialize the menu ReefAngel.FeedingModePorts = Port5Bit | Port6Bit | Port7Bit | Port8Bit; // Turn off DT-LWM, GT-LWM, GT-Pump, and DT-Pump when feeding mode is activated is activated on Box1 ReefAngel.FeedingModePortsE[0] = Port5Bit | Port6Bit | Port7Bit; // Turn off DT-RWM, GT-RWM, and Skimmer when feeding mode is activated is activated on Box2 ReefAngel.WaterChangePorts = Port3Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit; // Turn off DT-Heat, DT-LWM, GT-Pump, and DT-Pump when water change mode is activated ReefAngel.TempProbe = T2_PROBE; // Set the 2nd plug to be DT Main temp ReefAngel.OverheatProbe = T2_PROBE; // to monitor the overheat and temperatures ReefAngel.OverheatShutoffPorts = Port1Bit | Port3Bit; // DT-Lights and DT-Heat turned off when Overheat temperature exceeded ReefAngel.OverheatShutoffPortsE[0] = Port7Bit; //Skimmer turned off if overheat InternalMemory.OverheatTemp_write( 829 ); // Set the DT Overheat temperature setting ReefAngel.LightsOnPorts = Port1Bit | Port2Bit; // Toggle DT Lights ReefAngel.LightsOnPortsE[0] = Port3Bit | Port4Bit; // Toggle GT Lights } void loop() { // Specific functions ReefAngel.Relay.On(Port8); // Turn on Pump ReefAngel.Relay.On(Port7); // Turn on GT Pump // Ports that are delayed on Power Cycle & Feeding & Water Change if (PowerOutage && ReefAngel.Relay.IsRelayPresent(EXP1_RELAY)) { PowerOutage=false; DelayedPowerOutage=false; LastStart=now(); } ReefAngel.Relay.DelayedOn( Port7,2 ); //GT-Pump -set to 2 min for testing CHANGE TO 4MINS ReefAngel.Relay.DelayedOn( Port8,1 ); //DT-Pump -set to 1 min for testing CHANGE TO 2MINS // ReefAngel.Relay.DelayedOn( Box1_Port7,3 ); //Skimmer -set to 1 min for testing CHANGE TO 6MINS ReefAngel.Relay.On(Box1_Port8); // power the PH expansion hub ReefAngel.StandardLights( Port1,14,00,22,00 ); // DT Lights on at 2:00pm and off at 10:00pm // ReefAngel.StandardLights( Port2,22,00,01,00 ); // DT-Moon Lights on at 10:00am and off at 1:00am ReefAngel.StandardLights( Box1_Port1,0,0,6,0 ); //Turn on reservoir between 12 AM and 6 AM ReefAngel.StandardLights( Box1_Port3,14,00,21,45 ); //GT Lights Main 2:00pm - 9:45pm ReefAngel.StandardLights( Box1_Port4,15,00,22,30 ); //GT Lights Actinic 3:00pm - 10:30pm ReefAngel.WavemakerRandom( Port5,60,100 ); ReefAngel.Relay.Set( Box1_Port5, !ReefAngel.Relay.Status( Port5 ) ); //Randomize DT powerheads ReefAngel.WavemakerRandom1( Port6,60,100 ); ReefAngel.Relay.Set( Box1_Port6, !ReefAngel.Relay.Status( Port6 ) ); //Randomize GT powerheads ReefAngel.StandardHeater(Port3,779,791); //DT-Heat StandardHeater2( Port4,779,791 ); //GT-Heat // if the hour is 2p or 8p, minute is 55 and seconds is 0, start the feeding mode if ( ((hour() == 14) || (hour() == 20)) && (minute() == 55) && (second() == 0) ) { ReefAngel.FeedingModeStart(); } //turn off port 8 - DT pump when switch is tripped and sound buzzer ReefAngel.Relay.Set(Port8,ReefAngel.IO.GetChannel(0)); ReefAngel.PWM.SetDaylight(100-(ReefAngel.IO.GetChannel(0)*100)); //turn off port 7 - GT pump when switch is tripped and sound buzzer ReefAngel.Relay.Set(Port7,ReefAngel.IO.GetChannel(1)); ReefAngel.PWM.SetDaylight(100-(ReefAngel.IO.GetChannel(1)*100)); //tell the portal we have a overflow problem ReefAngel.CustomVar[0]=ReefAngel.IO.GetChannel(0); ReefAngel.CustomVar[1]=ReefAngel.IO.GetChannel(1); ReefAngel.CustomVar[7]=1; //set up dosing pump one to run twice a week for 4 minutes //ReefAngel.Relay.Set(Box1_Port2,((weekday()==1||weekday()==4) && hour()==14 && minute()<6)); //ReefAngel.Relay.Set (Box1_Port3,(hour()%2==0)); //stir chemicals in water top off unit // Power Outage - Only DT,GT LWM & Heat ports on if (!ReefAngel.Relay.IsRelayPresent(EXP1_RELAY)) PowerOutage=true; //Exp1 Relay NOT present if (!PowerOutage) { ReefAngel.Timer[1].Start(); } if (ReefAngel.Timer[1].IsTriggered()) { DelayedPowerOutage=true; } if (DelayedPowerOutage) { ReefAngel.Relay.Off (Port1); //DT Lights 1 ReefAngel.Relay.Off (Port2); //DT Lights 2 ReefAngel.Relay.Off (Port7); //GT Pump ReefAngel.Relay.Off (Port8); //DT Pump } // Skimmer off when Return pump is off. if (bitRead(ReefAngel.Relay.RelayMaskOff,7)==0) //Return { bitClear(ReefAngel.Relay.RelayMaskOffE[0],6); //Skimmer } ReefAngel.Portal("rossbryant1956"); ReefAngel.ShowInterface(); } void StandardHeater2(byte HeaterRelay, int LowTemp, int HighTemp) //Heater for Grow Tank { if (ReefAngel.Params.Temp[T1_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0 if (ReefAngel.Params.Temp[T1_PROBE] <= LowTemp && ReefAngel.Params.Temp[T1_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor temperature <= LowTemp - turn on heater if (ReefAngel.Params.Temp[T1_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor temperature >= HighTemp - turn off heater } void DrawCustomMain() { int x,y; //char text[10]; // Parameters #if defined DisplayLEDPWM && ! defined RemoveAllLights ReefAngel.LCD.DrawMonitor( 15, 40, ReefAngel.Params, ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() ); #else // defined DisplayLEDPWM && ! defined RemoveAllLights ReefAngel.LCD.DrawMonitor( 15, 40, ReefAngel.Params ); #endif // defined DisplayLEDPWM && ! defined RemoveAllLights pingSerial(); // pH Expansion ReefAngel.LCD.DrawText( COLOR_MEDIUMSEAGREEN,DefaultBGColor,15,75, "GT pH:" ); char text[7]; ConvertNumToString(text, ReefAngel.Params.PHExp, 100); ReefAngel.LCD.DrawText(COLOR_MEDIUMSEAGREEN, DefaultBGColor, 55, 75, text); // Main Relay Box byte TempRelay = ReefAngel.Relay.RelayData; TempRelay &= ReefAngel.Relay.RelayMaskOff; TempRelay |= ReefAngel.Relay.RelayMaskOn; ReefAngel.LCD.DrawOutletBox( 12, 93, TempRelay ); pingSerial(); // Relay Expansion TempRelay = ReefAngel.Relay.RelayDataE[0]; TempRelay &= ReefAngel.Relay.RelayMaskOffE[0]; TempRelay |= ReefAngel.Relay.RelayMaskOnE[0]; ReefAngel.LCD.DrawOutletBox( 12, 107, TempRelay ); pingSerial(); // Date and Time ReefAngel.LCD.DrawDate( 6, 122 ); pingSerial(); } void DrawCustomGraph() { // ReefAngel.LCD.DrawGraph( 5, 5 ); }
Should I re-calibrate the ph probe? Hasn't been done in a while. Appreciate the input. Thx
and try hardcoding your ph like so
Code: Select all
ReefAngel.PHMin=576; // PH7.0
ReefAngel.PHMax=842; // PH10.0
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
Yes, everything. So as an update I left the old pH probe running in that glass of tank water last night and it maintained a constant 6.15 except for three anomalies where it dropped to 4.5 at 8:00 PM, 10 PM, and 2:00 AM.
This morning I replaced the probe with another one I had and it jumped to 7.57 and for now is staying constant. I am still considering whether I should calibrate.
I had seen references to this code block before but do not really understand what it does...can someone please explain it to me? And if I should do it, should I use the numbers from my last calibration? Thx in advance.
This morning I replaced the probe with another one I had and it jumped to 7.57 and for now is staying constant. I am still considering whether I should calibrate.
I had seen references to this code block before but do not really understand what it does...can someone please explain it to me? And if I should do it, should I use the numbers from my last calibration? Thx in advance.
Code: Select all
ReefAngel.PHMin=576; // PH7.0
ReefAngel.PHMax=842; // PH10.0
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
So I went ahead and re-calibrated my pH and got values of 541 and 838 respectively. This brought my pH reading to 7.79 to 7.82 on both the portal and on the client. This reading is back in the range of where these particular apps always reported my pH prior to all these troubles but it has never been up in the 8.X's where all my testing has always said it was testing.
What now? I am wondering about using the commands above to set a basis for pH to where the test kits say it should be and then monitor from there. I imagine i would just experiment and upload until I drove the pH numbers up to the 8.4 that my kits believe it to be.
Hope to hear your thoughts on this...
What now? I am wondering about using the commands above to set a basis for pH to where the test kits say it should be and then monitor from there. I imagine i would just experiment and upload until I drove the pH numbers up to the 8.4 that my kits believe it to be.
Hope to hear your thoughts on this...
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Re: both ph probes completely berserk
I suspect the probe is accurate. Probably more accurate than your test kits. The pH will drop in the jar without any agitation or circulation. Are you testing the same water (in the jar) with the test kit and the probe?
But aside from that, the pH stays constant and no problems with the controller rebooting? What happens if you put the probe back in tank water? I'm still leaning towards stray voltage. It certainly could be a hardware issue as well.
~Charlie
But aside from that, the pH stays constant and no problems with the controller rebooting? What happens if you put the probe back in tank water? I'm still leaning towards stray voltage. It certainly could be a hardware issue as well.
~Charlie
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
no more rebooting, pH is stable, probe still in the glass of tank water. I'll put the probe back in the tank before leaving for tonite's festivities and see what happens while I'm gone.
I bought a multimeter, also thinking about stray voltage, but have no clue how to use it. For AC voltage it has two settings, 200V and 600V, not clear on which one to use. Any advice would be welcome.
I did a google search and posted it here: http://forum.reefangel.com/viewtopic.php?f=2&t=3097 on how to do this sort of thing but I am the sort that like specific instructions, especially around electricity.
Finally, if you are right and the probe is accurate, shouldn't I be doing some dosing to raise my pH?
Again, thanks to all contributing...
I bought a multimeter, also thinking about stray voltage, but have no clue how to use it. For AC voltage it has two settings, 200V and 600V, not clear on which one to use. Any advice would be welcome.
I did a google search and posted it here: http://forum.reefangel.com/viewtopic.php?f=2&t=3097 on how to do this sort of thing but I am the sort that like specific instructions, especially around electricity.
Finally, if you are right and the probe is accurate, shouldn't I be doing some dosing to raise my pH?
Again, thanks to all contributing...
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Re: both ph probes completely berserk
8.4 is pretty high pH wise. Are you sure your test kit is good? I would try with another. Whats your Ca and Alk? Are you taking water near your probe for your test?
The important thing is more the stability and monitoring your ph for swings not necessarily the value.
The important thing is more the stability and monitoring your ph for swings not necessarily the value.
-
- Posts: 140
- Joined: Wed Mar 13, 2013 5:36 pm
Re: both ph probes completely berserk
try something for me, plug everything back in and use this code for your heaters. I think I may have found a bug. This fixed my rebooting issue...until I got my wifi moduleback.
change your temps and ports accordingly.
what I stumbled upon was when I got a second temp probe(6ft) the RA would still see the 3ft temp probe as number one. (due to the serial numbers).
my original code used ReefAngel.StandardHeater
and this for my second
the problem was that the RA was seeing both probes as probe 1 even though I told it not to. so my first probe was for my second tank and was supposed to kick the heater on at 76. my second probe was for my first tank and was supposed to kick that heater on at 80. what I noticed was that when the first probe would tell the relay to turn on it would reboot the RA endlessly.
I verified this by taking the 80 degree probe and putting it in freezing cold water and it would try to turn on the relay port for the 76 degree temp probe.
hopefully you're following all of this.
so I dropped the reefangel.standard and used this
and THOSE reboots ceased. I'm still getting reboots from the wifi module however.
change your temps and ports accordingly.
Code: Select all
StandardHeater1( Port3,760,770 );
StandardHeater2( Port1,796,802 );
Code: Select all
void StandardHeater2(byte HeaterRelay, int LowTemp, int HighTemp)
{
if (ReefAngel.Params.Temp[T2_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T2_PROBE] <= LowTemp && ReefAngel.Params.Temp[T2_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor 2 temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T2_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor 2 temperature >= HighTemp - turn off heater
}
void StandardHeater1(byte HeaterRelay, int LowTemp, int HighTemp)
{
if (ReefAngel.Params.Temp[T1_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T1_PROBE] <= LowTemp && ReefAngel.Params.Temp[T1_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor 2 temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T1_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor 2 temperature >= HighTemp - turn off heater
}
what I stumbled upon was when I got a second temp probe(6ft) the RA would still see the 3ft temp probe as number one. (due to the serial numbers).
my original code used ReefAngel.StandardHeater
and this for my second
Code: Select all
void StandardHeater2(byte HeaterRelay, int LowTemp, int HighTemp)
{
if (ReefAngel.Params.Temp[T2_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T2_PROBE] <= LowTemp && ReefAngel.Params.Temp[T2_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor 2 temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T2_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor 2 temperature >= HighTemp - turn off heater
}
I verified this by taking the 80 degree probe and putting it in freezing cold water and it would try to turn on the relay port for the 76 degree temp probe.
hopefully you're following all of this.
so I dropped the reefangel.standard and used this
Code: Select all
void StandardHeater2(byte HeaterRelay, int LowTemp, int HighTemp)
{
if (ReefAngel.Params.Temp[T2_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T2_PROBE] <= LowTemp && ReefAngel.Params.Temp[T2_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor 2 temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T2_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor 2 temperature >= HighTemp - turn off heater
}
void StandardHeater1(byte HeaterRelay, int LowTemp, int HighTemp)
{
if (ReefAngel.Params.Temp[T1_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T1_PROBE] <= LowTemp && ReefAngel.Params.Temp[T1_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor 2 temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T1_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor 2 temperature >= HighTemp - turn off heater
}
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
thx, I'll study this this weekend.
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
-
- Posts: 140
- Joined: Wed Mar 13, 2013 5:36 pm
Re: both ph probes completely berserk
to make it easy on you...
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 <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <IO.h>
#include <Salinity.h>
#include <PH.h>
#include <ReefAngel.h>
// Set global variables
boolean PowerOutage=false;
boolean DelayedPowerOutage=false;
// Globals for Params on Custom Main
byte x,y;
char text[10];
// Custom Menu
#include <avr/pgmspace.h>
prog_char menu0_label[] PROGMEM = "Turn Lights On";
prog_char menu1_label[] PROGMEM = "Turn Lights Off";
prog_char menu2_label[] PROGMEM = "Start Feeding";
prog_char menu3_label[] PROGMEM = "Start Water Change";
prog_char menu4_label[] PROGMEM = "Clear Overheat";
prog_char menu5_label[] PROGMEM = "Calibrate pH";
prog_char menu6_label[] PROGMEM = "Calibrate Salinity";
PROGMEM const char *menu_items[] = {
menu0_label, menu1_label, menu2_label, menu3_label, menu4_label, menu5_label, menu6_label };
void MenuEntry1()
{
ReefAngel.DisplayMenuEntry("Item 1");ReefAngel.Relay.RelayMaskOn = ReefAngel.LightsOnPorts;
#ifdef RelayExp
for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ )
{
ReefAngel.Relay.RelayMaskOnE[i] = ReefAngel.LightsOnPortsE[i];
}
#endif // RelayExp
ReefAngel.Relay.Write();
}
void MenuEntry2()
{
ReefAngel.DisplayMenuEntry("Item 2");ReefAngel.Relay.RelayMaskOn = 0;
#ifdef RelayExp
for ( byte i = 0; i < MAX_RELAY_EXPANSION_MODULES; i++ )
{
ReefAngel.Relay.RelayMaskOnE[i] = 0;
}
#endif // RelayExp
ReefAngel.Relay.Write();
}
void MenuEntry3()
{
ReefAngel.DisplayMenuEntry("Item 3");ReefAngel.FeedingModeStart();
}
void MenuEntry4()
{
ReefAngel.DisplayMenuEntry("Item 4");ReefAngel.WaterChangeModeStart();
}
void MenuEntry5()
{
ReefAngel.DisplayMenuEntry("Item 5");ReefAngel.OverheatClear();
}
void MenuEntry6()
{
ReefAngel.DisplayMenuEntry("Item 6");ReefAngel.SetupCalibratePH();
ReefAngel.DisplayedMenu = ALT_SCREEN_MODE;
}
void MenuEntry7()
{
ReefAngel.DisplayMenuEntry("Item 7");ReefAngel.SetupCalibrateSalinity();
}
// End Custom Menu Globals
void setup() {
ReefAngel.Init(); //Initialize controller
ReefAngel.InitMenu(pgm_read_word(&(menu_items[0])),SIZE(menu_items)); // Initialize the menu
ReefAngel.FeedingModePorts = Port5Bit | Port6Bit | Port7Bit | Port8Bit; // Turn off DT-LWM, GT-LWM, GT-Pump, and DT-Pump when feeding mode is activated is activated on Box1
ReefAngel.FeedingModePortsE[0] = Port5Bit | Port6Bit | Port7Bit; // Turn off DT-RWM, GT-RWM, and Skimmer when feeding mode is activated is activated on Box2
ReefAngel.WaterChangePorts = Port3Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit; // Turn off DT-Heat, DT-LWM, GT-Pump, and DT-Pump when water change mode is activated
ReefAngel.TempProbe = T2_PROBE; // Set the 2nd plug to be DT Main temp
ReefAngel.OverheatProbe = T2_PROBE; // to monitor the overheat and temperatures
ReefAngel.OverheatShutoffPorts = Port1Bit | Port3Bit; // DT-Lights and DT-Heat turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPortsE[0] = Port7Bit; //Skimmer turned off if overheat
InternalMemory.OverheatTemp_write( 829 ); // Set the DT Overheat temperature setting
ReefAngel.LightsOnPorts = Port1Bit | Port2Bit; // Toggle DT Lights
ReefAngel.LightsOnPortsE[0] = Port3Bit | Port4Bit; // Toggle GT Lights
}
void loop()
{
// Specific functions
ReefAngel.Relay.On(Port8); // Turn on Pump
ReefAngel.Relay.On(Port7); // Turn on GT Pump
// Ports that are delayed on Power Cycle & Feeding & Water Change
if (PowerOutage && ReefAngel.Relay.IsRelayPresent(EXP1_RELAY))
{
PowerOutage=false;
DelayedPowerOutage=false;
LastStart=now();
}
ReefAngel.Relay.DelayedOn( Port7,2 ); //GT-Pump -set to 2 min for testing CHANGE TO 4MINS
ReefAngel.Relay.DelayedOn( Port8,1 ); //DT-Pump -set to 1 min for testing CHANGE TO 2MINS
// ReefAngel.Relay.DelayedOn( Box1_Port7,3 ); //Skimmer -set to 1 min for testing CHANGE TO 6MINS
ReefAngel.Relay.On(Box1_Port8); // power the PH expansion hub
ReefAngel.StandardLights( Port1,14,00,22,00 ); // DT Lights on at 2:00pm and off at 10:00pm
// ReefAngel.StandardLights( Port2,22,00,01,00 ); // DT-Moon Lights on at 10:00am and off at 1:00am
ReefAngel.StandardLights( Box1_Port1,0,0,6,0 ); //Turn on reservoir between 12 AM and 6 AM
ReefAngel.StandardLights( Box1_Port3,14,00,21,45 ); //GT Lights Main 2:00pm - 9:45pm
ReefAngel.StandardLights( Box1_Port4,15,00,22,30 ); //GT Lights Actinic 3:00pm - 10:30pm
ReefAngel.WavemakerRandom( Port5,60,100 );
ReefAngel.Relay.Set( Box1_Port5, !ReefAngel.Relay.Status( Port5 ) ); //Randomize DT powerheads
ReefAngel.WavemakerRandom1( Port6,60,100 );
ReefAngel.Relay.Set( Box1_Port6, !ReefAngel.Relay.Status( Port6 ) ); //Randomize GT powerheads
StandardHeater1(Port3,779,791); //DT-Heat
StandardHeater2( Port4,779,791 ); //GT-Heat
// if the hour is 2p or 8p, minute is 55 and seconds is 0, start the feeding mode
if ( ((hour() == 14) || (hour() == 20)) &&
(minute() == 55) &&
(second() == 0) )
{
ReefAngel.FeedingModeStart();
}
//turn off port 8 - DT pump when switch is tripped and sound buzzer
ReefAngel.Relay.Set(Port8,ReefAngel.IO.GetChannel(0));
ReefAngel.PWM.SetDaylight(100-(ReefAngel.IO.GetChannel(0)*100));
//turn off port 7 - GT pump when switch is tripped and sound buzzer
ReefAngel.Relay.Set(Port7,ReefAngel.IO.GetChannel(1));
ReefAngel.PWM.SetDaylight(100-(ReefAngel.IO.GetChannel(1)*100));
//tell the portal we have a overflow problem
ReefAngel.CustomVar[0]=ReefAngel.IO.GetChannel(0);
ReefAngel.CustomVar[1]=ReefAngel.IO.GetChannel(1);
ReefAngel.CustomVar[7]=1;
//set up dosing pump one to run twice a week for 4 minutes
//ReefAngel.Relay.Set(Box1_Port2,((weekday()==1||weekday()==4) && hour()==14 && minute()<6));
//ReefAngel.Relay.Set (Box1_Port3,(hour()%2==0)); //stir chemicals in water top off unit
// Power Outage - Only DT,GT LWM & Heat ports on
if (!ReefAngel.Relay.IsRelayPresent(EXP1_RELAY)) PowerOutage=true; //Exp1 Relay NOT present
if (!PowerOutage)
{
ReefAngel.Timer[1].Start();
}
if (ReefAngel.Timer[1].IsTriggered())
{
DelayedPowerOutage=true;
}
if (DelayedPowerOutage)
{
ReefAngel.Relay.Off (Port1); //DT Lights 1
ReefAngel.Relay.Off (Port2); //DT Lights 2
ReefAngel.Relay.Off (Port7); //GT Pump
ReefAngel.Relay.Off (Port8); //DT Pump
}
// Skimmer off when Return pump is off.
if (bitRead(ReefAngel.Relay.RelayMaskOff,7)==0) //Return
{
bitClear(ReefAngel.Relay.RelayMaskOffE[0],6); //Skimmer
}
ReefAngel.Portal("rossbryant1956");
ReefAngel.ShowInterface();
}
void StandardHeater1(byte HeaterRelay, int LowTemp, int HighTemp)
{
if (ReefAngel.Params.Temp[T2_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T2_PROBE] <= LowTemp && ReefAngel.Params.Temp[T2_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor 2 temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T2_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor 2 temperature >= HighTemp - turn off heater
}
void StandardHeater2(byte HeaterRelay, int LowTemp, int HighTemp) //Heater for Grow Tank
{
if (ReefAngel.Params.Temp[T1_PROBE] == 0) return; // Don't turn the heater on if the temp is reading 0
if (ReefAngel.Params.Temp[T1_PROBE] <= LowTemp && ReefAngel.Params.Temp[T1_PROBE] > 0) ReefAngel.Relay.On(HeaterRelay); // If sensor temperature <= LowTemp - turn on heater
if (ReefAngel.Params.Temp[T1_PROBE] >= HighTemp) ReefAngel.Relay.Off(HeaterRelay); // If sensor temperature >= HighTemp - turn off heater
}
void DrawCustomMain()
{
int x,y;
//char text[10];
// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 40, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 40, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();
// pH Expansion
ReefAngel.LCD.DrawText( COLOR_MEDIUMSEAGREEN,DefaultBGColor,15,75, "GT pH:" );
char text[7];
ConvertNumToString(text, ReefAngel.Params.PHExp, 100);
ReefAngel.LCD.DrawText(COLOR_MEDIUMSEAGREEN, DefaultBGColor, 55, 75, text);
// Main Relay Box
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox( 12, 93, TempRelay );
pingSerial();
// Relay Expansion
TempRelay = ReefAngel.Relay.RelayDataE[0];
TempRelay &= ReefAngel.Relay.RelayMaskOffE[0];
TempRelay |= ReefAngel.Relay.RelayMaskOnE[0];
ReefAngel.LCD.DrawOutletBox( 12, 107, TempRelay );
pingSerial();
// Date and Time
ReefAngel.LCD.DrawDate( 6, 122 );
pingSerial();
}
void DrawCustomGraph()
{
// ReefAngel.LCD.DrawGraph( 5, 5 );
}
Re: both ph probes completely berserk
How did the pH do with the probe back in the tank?rossbryant1956 wrote:no more rebooting, pH is stable, probe still in the glass of tank water. I'll put the probe back in the tank before leaving for tonite's festivities and see what happens while I'm gone.
To check for stray voltage the best thing to do is start unplugging devices one by one and checking your pH swing. When your pH stops fluctuating, you found the offending device. Don't forget to unplug your float switches to see if one of them may be causing the problem as well.
~Charlie
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
It has been steady at 7.85 since going back in the tank on the portal. On the client, however, I'll see an occasional blip where the pH drops down into the 4's for a hour and then comes right back. The portal hasn't caught that, yet. I am almost wondering if I am seeing an internet outage at home periodically.
What does the portal do if it sees an outage in the logs? Running fine, loses connectivity for a short period, then it's back?
At any rate, I am going start hooking everything back up tonite\this weekend. I will be playing with my new multimeter to see if I can detect any stray voltage while I do it. Really don't want to discover it is bad float valves because I use a bunch of them in my systems.
Thx to all that helped and maybe some others learned something as well. Ross
What does the portal do if it sees an outage in the logs? Running fine, loses connectivity for a short period, then it's back?
At any rate, I am going start hooking everything back up tonite\this weekend. I will be playing with my new multimeter to see if I can detect any stray voltage while I do it. Really don't want to discover it is bad float valves because I use a bunch of them in my systems.
Thx to all that helped and maybe some others learned something as well. Ross
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
-
- Posts: 471
- Joined: Sat Jan 14, 2012 2:08 pm
- Location: Montgomery Village, MD
Re: both ph probes completely berserk
Thx Ben for the code change. I also grabbed some of your menu code from another post. Again, thx!!
Roscoe's Reefs - Starting Over Again:
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.
Building new 29g Nano after landlord went berserk over my 4 75 gallon tanks, Multiple RA's, Water mixing stations, etc. Your help welcomed in remembering all I've forgotten.