"Entry" Level Controllable Pumps?
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
I would like 2 powerheads to (port 5-6) to toggle between each other at 30-180 seconds. Maybe this?rimai wrote:What do you want to do?
// Randomize the Timer
static time_t timer=now()+30;
if (now()>timer)
{
timer=now()+random(30, 180);
}
ReefAngel.WavemakerToggle(Port5, Port6, timer);
Would this also go where all of my standard code goes? I dont have code anywhere else that I have added.
Thanks
Re: "Entry" Level Controllable Pumps?
Try this:
You can do this with the wizard too 
Code: Select all
ReefAngel.WavemakerRandom1(Port5,30,180);
ReefAngel.Relay.Set(Port6,!ReefAngel.Relay.Status(Port5));

Roberto.
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
if ( (hour() >=1) && (hour() <12) )
ReefAngel.Relay.Set(Port4, now()%900<120);
else
ReefAngel.Relay.Off(Port4);
Just checking if this translated to every 15min dose for 2min?
ReefAngel.Relay.Set(Port4, now()%900<120);
else
ReefAngel.Relay.Off(Port4);
Just checking if this translated to every 15min dose for 2min?
"Entry" Level Controllable Pumps?
Yes just keep in mind that it will be 13 minutes after the dose...if you want 15 minutes between the end of the first dose and the start of the second then you'll need to add 2 minutes to the 900...
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
I understand. Im still dialing it in a bit. I ran into a cycling issue with the wavemaker and my delay for the powerheads...I just removed the line for the delay and all was well.
A Few Questions
If I want to to run from 10pm to 12pm would my time look like this
((if ( (hour() <=22) && (hour() <12) )?? Was NOT sure about this.
I would also like to maybe make the wavemaker cycle at different intervals at night. Would that look like this...
//10pm-9am Wavemaker 15min-60min Random
if ( (hour() <=22) && (hour() >=9) )
ReefAngel.WavemakerRandom1(Port5,900,3600);
ReefAngel.Relay.Set(Port6,!ReefAngel.Relay.Status(Port5));
else
ReefAngel.WavemakerRandom1(Port5,210,900);
ReefAngel.Relay.Set(Port6,!ReefAngel.Relay.Status(Port5));
ALSO!! Would this be how to do both completely random?
ReefAngel.WavemakerRandom1(Port5);
ReefAngel.WavemakerRandom2(Port6);
A Few Questions
If I want to to run from 10pm to 12pm would my time look like this
((if ( (hour() <=22) && (hour() <12) )?? Was NOT sure about this.
I would also like to maybe make the wavemaker cycle at different intervals at night. Would that look like this...
//10pm-9am Wavemaker 15min-60min Random
if ( (hour() <=22) && (hour() >=9) )
ReefAngel.WavemakerRandom1(Port5,900,3600);
ReefAngel.Relay.Set(Port6,!ReefAngel.Relay.Status(Port5));
else
ReefAngel.WavemakerRandom1(Port5,210,900);
ReefAngel.Relay.Set(Port6,!ReefAngel.Relay.Status(Port5));
ALSO!! Would this be how to do both completely random?
ReefAngel.WavemakerRandom1(Port5);
ReefAngel.WavemakerRandom2(Port6);
Re: "Entry" Level Controllable Pumps?
No... && means AND, so you are asking is time is less than 22 AND less than 12... Well... That doesn't make sense, right?((if ( (hour() <=22) && (hour() <12) )?? Was NOT sure about this
It should be this:
Code: Select all
if (hour()>=22 || hour()<12)
Your code snippet looks good.
Yes, if you use WavemakerRandom1 and WavemakerRandom2, both are going to be completely random.
Roberto.
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
Thats going to take a bit of trial and error.
Could you give a good rule of thumb as to when to use && vs. ||? Is it because Im rolling between am/pm??
It seems that most of my if/then conditionals have &&. Im sure it will make sense I just need to wrap my head around it.
Could you give a good rule of thumb as to when to use && vs. ||? Is it because Im rolling between am/pm??
It seems that most of my if/then conditionals have &&. Im sure it will make sense I just need to wrap my head around it.
Re: "Entry" Level Controllable Pumps?
It's basic logic statements...
AND or OR
So take an example a blue ball...
if (ball=blue) && (ball=round) then true
if (ball=blue) && (ball=cube) then false
if (ball=blue) || (ball=yellow) then true
if (ball=blue) || (ball=cube) then true
So AND both sides need to be true for the condition to work...
For OR only one side needs to be true for the conditional needs to be true.
AND or OR
So take an example a blue ball...
if (ball=blue) && (ball=round) then true
if (ball=blue) && (ball=cube) then false
if (ball=blue) || (ball=yellow) then true
if (ball=blue) || (ball=cube) then true
So AND both sides need to be true for the condition to work...
For OR only one side needs to be true for the conditional needs to be true.
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
AS I said && means AND and || means OR.
Just use them just as you were if you were doing it in plain English.
If the hour is less than 9 or hour is greater than 20 would be
if (hour()<9 || hour()>20)
Just use them just as you were if you were doing it in plain English.
If the hour is less than 9 or hour is greater than 20 would be
if (hour()<9 || hour()>20)
Roberto.
Re: "Entry" Level Controllable Pumps?
If you use and in here, the condition will never be true.Paulturner911 wrote:Couldnt this read && also?
if (hour()>=22 || hour()<12)
How is the hour going to be at the same time greater than 22 and less than 12??
If it's 23 hours, it's greater than 22 but it will never be less than 12.
Roberto.
Re: "Entry" Level Controllable Pumps?
good example wording. we should probably create a sticky thread or document primer for coding on arduino and how the logical operators work. maybe we can collaborate and come up with something for people to use. what do you think?lnevo wrote:It's basic logic statements...
AND or OR
So take an example a blue ball...
if (ball=blue) && (ball=round) then true
if (ball=blue) && (ball=cube) then false
if (ball=blue) || (ball=yellow) then true
if (ball=blue) || (ball=cube) then true
So AND both sides need to be true for the condition to work...
For OR only one side needs to be true for the conditional needs to be true.
"Entry" Level Controllable Pumps?
Yeah we need that.. A doc, a stickie, or maybe a wiki. We need a good repo of snippets for some functions and some tips and tricks too... So many questions get asked answered and asked again...but alas...who has time . We need all the grateful non-coders to work on that
I'm happy to help and contribute...just no time to coordinate and make it good...oh well

I'm happy to help and contribute...just no time to coordinate and make it good...oh well
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
I see!! I WAS seeing it like this....if it is after 10pm AND before 9am(the next day)....which just isnt how it works.
I cant thank you guys enough for getting me crawling, Ill be walking one day. I try to search for the most part of what I need and post to ask about, or if it would work for me. You guys are always there to set me straight. I speak very highly of the product and even higher of the customer service/forum.
Im currently building a new light fixture 3mh 150 w/ retrofit LED (4pwm drivers) that Ill be looking to code some sunrise/sunset and lightening on demand...so Ill be back
I cant thank you guys enough for getting me crawling, Ill be walking one day. I try to search for the most part of what I need and post to ask about, or if it would work for me. You guys are always there to set me straight. I speak very highly of the product and even higher of the customer service/forum.
Im currently building a new light fixture 3mh 150 w/ retrofit LED (4pwm drivers) that Ill be looking to code some sunrise/sunset and lightening on demand...so Ill be back

-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
Placed just above custom code
ReefAngel.WavemakerRandom1(Port5);
ReefAngel.WavemakerRandom2(Port6);
"no matching function for call to ReefAngel.WavemakerRandom1(int)"
I thought this is how to make them completely random?
ReefAngel.WavemakerRandom1(Port5);
ReefAngel.WavemakerRandom2(Port6);
"no matching function for call to ReefAngel.WavemakerRandom1(int)"
I thought this is how to make them completely random?
"Entry" Level Controllable Pumps?
Odd the function should be for a byte not an int.
Try just putting the number instead of PortX
Try just putting the number instead of PortX
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re:
No go same error. I guess if I can't get it completely random I could come up with some times.lnevo wrote:Odd the function should be for a byte not an int.
Try just putting the number instead of PortX
Re: "Entry" Level Controllable Pumps?
Sorry, you need to type the min and max of the random range.
Code: Select all
ReefAngel.WavemakerRandom1(Port5,10,60);
ReefAngel.WavemakerRandom2(Port6,25,90);
Roberto.
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
Thanks. I wasn't sure in the earlier post I made. I was kinda surprised that you said it was correct.
Those are seconds correct??
Those are seconds correct??
-
- Posts: 287
- Joined: Wed Jan 23, 2013 12:36 pm
Re: "Entry" Level Controllable Pumps?
I hear that Roberto is working on a harness for the WP40 pumps!!! STOKED! What kind of ETA/Cost are we looking at?