Incrementing for up to a max time

Hi, I am working on some code, I am looking to change the below code that instead of a 3 minute delay that I can increment to check that the voltage is in range and if not, that it will turn on an LED for up to a max 3 minutes, how can I write this using ++x or is there an easier way ?

if(setpoint <409 && > 51.15){ // if the voltage is less than 2 V and greater than 0.5V

digitalWrite(redLed, HIGH);

delay (3 * 60 * 1000);

digitalWrite (redLed, LOW);

unsigned long oldTime;
unsigned long interval = 180000;

loop(){

if(millis() - oldTime >= interval){
 oldTime = millis();
 //read voltage
 }

if(setpoint <409 && > 51.15){ // if the voltage is less than 2 V and greater than 0.5V

 digitalWrite(redLed, HIGH);
}
else {
 digitalWrite (redLed, LOW);
}
}

Thanks Qdeathstar, I will have to study up on your code to understand it :D , but really appreciate the help.