Rele ON 1hora off 30 segundos

:o :o
Buenas!
Me gustaría saber cómo activar un relé cada 1 hora y que quede encendido 30 segundos para después apagarse.
Es para activar una bomba de agua para un sistema aeroponico.
Muchas gracias desde Argentina.

Hola,

Ese es el ejemplo con mas resultados en google, te lo pongo ya que es un copia pega y una muy pequeña modificación sacado de esta pagina

/* Parpadeo sin delay()
Enciende y apaga un LED conectado a un pin digital sin utilizar la función delay(). Esto significa que otro código se puede ejecutar al mismo tiempo sin ser interrumpido por el código que controla el parpadeo del LED
Circuito: Un LED conectado entre el pin 13 y el pin GND.
Nota: en muchos Arduinos hay un LED en la placa conectado al pin 13, por lo que no sería necesario un LED externo para este ejemplo.
Creado en 2005 por David A. Mellis, modificado el 8/2/2010 por Paul Stoffregen.
Este ejemplo es de dominio público*/

// las constantes no cambian. Las usamos aquí para establecer los números de los pines.
int ledPin = 13;   // el número del pin conectado al LED

//  variables que cambiarán de valor.
int ledState = LOW;   // ledState se usará para establecer el estado del LED

long previousMillis = 0;   // almacenará la última vez que el estado del LED
//se actualizó

// la siguiente variable es del tipo long por que el tiempo medido en
// milisegundos supera rápidamente al número que puede ser almacenado en una
// variable del tipo int
long interval = 30000;   // intervalo del parpadeo (en milisegundos) 30 segundos

void setup()
{
// establece el pin digital como salida:
pinMode(ledPin, OUTPUT);
}

void loop()
{
// Aquí es donde pondríamos el código que debe ejecutarse durante todo el
// tiempo.

// Se comprobará si es el momento de parpadear el LED, esto es, si la
// diferencia entre el tiempo transcurrido y el tiempo en que parpadeó
// por última vez el LED es mayor que el intervalo que establecimos en
// la declaración de variables.

unsigned long currentMillis = millis();    // Se toma el tiempo actual

// se comprueba si el tiempo actual menos el tiempo en que el LED cambió
// de estado por última vez es mayor que el intervalo.
if (currentMillis - previousMillis > interval){

// Si se cumple la condición se guarda el nuevo tiempo
// en el que el LED cambia de estado
previousMillis = currentMillis;

// Y ahora cambiamos de estado el LED, si está encendido a
// apagado o viceversa.
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;

// Hacemos que el contenido de la variable llegue al LED
digitalWrite(ledPin, ledState);

if(interval==30000)
{
 interval=3600000; //Paso el intervalo a una hora 60 minutos * 60 segundos * 1000 milisegundos
}
else
{
 interval=30000; // Paso el intervalo a 30 segundos30 segundos * 1000 milisegundos
}
}

}

Preparado para que solo lo tengas que copiar y pegar.

GRacias!

Es lo mismo que Blink.ino, lo leiste? Ejemplo del IDE de Arduino.
Viene con 1000 mseg, lo modificas y tienes 1 hora, lo modificas y tienes los 30 segundos.

Hay que buscar un poco Miltonmu.

En programación no vas a encontrar exactamente tu caso pero algo parecido con ajustes siempre te sirve.