Gente, veo muchas respuestas vuelteras que no brindan la mas mínima asistencia u orientación; Tratemos de ir al grano y así poder ayudar concretamente....
La función que seria recomendable, es un bucle "for" para repetir determinada veces un delay de determinado tiempo... armo un ejemplo sencillo para ver como seria:
const long unSegundo = 1000; //
un segundo es igual a 1 milisegundoconst long unMinuto = unSegundo * 60;
const long unaHora = unMinuto * 60;
const long oneDay = unaHora * 24;int Relay1 =3;
int Relay2 =2;
void setup()
{ pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
Serial.begin(9600);
}
void loop()
{
//
agrego estas lineas para que pueda ver por el monitor serial //
que esta haciendo el microcontroladorSerial.println("-----------------------------------");
Serial.println(" ...Iniciando SISTEMA ");
Serial.println("-----------------------------------");
// generamos un retardo de 3 segundos de la siguiente manera:// la instrucción "for" arma un bucle repetitivo hasta cumplir determinada consigna.//En este caso en particular, declaramos una variable integral (i), y le decimos al//microcontrolador, que se incremente en una unidad (i=i+1) hasta que sea igual o menor a 3 (i<=3)...// Dentro del bucle, generamos una pausa de un segundo, y al repetirlo 3 veces, obtenemos 3 segundos for ( int i=0; i<=3; i=i+1)
{
delay(unSegundo);
// retardo de un segundo
}
// Encendemos los relay por una hora
digitalWrite(Relay1, HIGH);
// encendemos RELAY1
Serial.println("RELAY 1 = ENCENDIDO");
// generamos un retardo de 3 segundos para no arrancar ambos motores juntos
for ( int i=0; i<=3; i=i+1)
{
delay(unSegundo);
// retardo de un segundo
}
digitalWrite(Relay2, HIGH);
// encendemos RELAY2
Serial.println("RELAY 2 = ENCENDIDO");
// mantenemos encendido los relay por 1 hora
Serial.println("-----------------------------------");
Serial.println(" INICIO TEMPORIZADOR 1 HORA ");
Serial.println("-----------------------------------");
//modificar valor 60, donde 60 es la cantidad de veces que se quiera repetir 1 minuto for ( int i=0; i<=60; i=i+1) {
Serial.println("Minutos: ");
Serial.println(i, 1);
delay(unMinuto);
// retardo de un segundo
}
Serial.println("-----------------------------------");
Serial.println(" FIN TEMPORIZADOR 1 HORA ");
Serial.println("-----------------------------------");
//apagamos los relay por 15minutos
digitalWrite(Relay1, LOW);
//Apagamos RELAY1
Serial.println("RELAY 1 = APAGADO");
digitalWrite(Relay2, LOW);
//Apagamos RELAY2
Serial.println("RELAY 2 = APAGADO");
Serial.println("-----------------------------------");
Serial.println("retardo 15 minutos antes de iniciar");
Serial.println("-----------------------------------");
//modificar valor 15, donde 15 es la cantidad de veces que se quiera repetir 1 minuto for ( int i=0; i<=15; i=i+1)
{
Serial.println("Minutos: ");
Serial.println(i, 1);
delay(unMinuto);
}
}
Así de sencillo se puede hacer lo que estas preguntando... así de sencillo se responde... saludo a todos