newcomer with some questions about the basics

Thanks for the replies.

As far as the pH sensor, I've got to imagine it's not too challenging. I mean, you can buy a commercial pH monitor with probe for $100 or so, and even if a DIY solution cost me more than that it wouldn't be a big deal. Plus, I've read about other people that built DIY fish tank controllers similar to this with pH sensors, so it's gotta be possible! Then again, I don't really know what I'm doing when it comes to this stuff! ;D

Regarding the development approach and programming to put this all together. I indend to develop these functions one at a time, then eventually combine them all. But the "combine them all" part still strikes me as challenging, since I just can't picture in my head how to write code to get the arduino to do lots of things at once. Would it look something like this example? Excuse the silly pseudo-code:

First, write a function for each process

light_control_function {
check the time
if time is "morning" turn the lights on
if time is "morning + n" then fade the lights higher by some factor of n
if time is "night - m" then fade lights lower by factor of m
if time is "night" then turn lights off
}

wave_control_function {
step PWM signal to wavemaker up or down X amount per second
}

level_control_function {
if float switch is open, turn dosing pump on
if float switch is closed, turn dosing pump off
}

temp_control_function {
if temp is below x, turn heater on
}

Then, you would have a loop in the main function that would just execute each of these:

loop {
do all functions
}

Can the controller maintain output on a specific pin even when that code is not active? For example, if the first function called in the main loop was to check the time and fade the lights up or down, I imagine it would work by calling the analogwrite function on the PWM pin controlling the dimmer for the lights. But then when it was "done" with that function and moving on to the function to check temperature, would it keep the light's PWM pin value constant? Or does that pin shut off when the code is "done?"

Also, how would you control the loop? Would you typically program some time delay into it? Or, would you do all the time handling in each function, then let the controller just step through them over and over again?

Hopefully these questions make sense. I don't yet feel like I speak the language of arduino so some of this might be so basic it's a non-issue!