Ayuda con pulsador y relevadores (RESUELTO)

Hola Arduineros, estoy en un proyecto que resulto sobrepasaba mis conocimientos, estoy haciendo una encuadernadora semi automática, pero me quede atorado, espero puedan ayudarme lo que requiero es lo siguiente

1 pulsador, 8 pines conectados a un modulo de relevadores

lo que necesito que haga:

al apretar el pulsador inicia la siguiente secuencia

rele 1 se activa por 10 segundos

despues reles 2 y 3 funcionan al mismo tiempo por 3 segundos

despues 4 segundos que no pasa nada

reles 4 y 5 funcionan al mismo tiempo por 3 segundos

despues reles 6 y 7 funcionan por 2 segundos al mismo tiempo que rele 6 funciona por 500 mls

despue rele 1 se activa por 10 segundos

el sistema se queda detenido hasta volver a accionar el pulsador

La maquina ya funciona de manera manual accionando botones, en mis practicas no he podido definir como hacer que el pulsador inicie la secuencia que necesito.

Gracias por su ayuda

Entiendo yo que lo tienes todo controlado a falta de saber cómo conectar el pulsador. Tal vez esto te sirva...

para una máquina que encienda esos relay del modo que lo indicas usa uno de los ejemplos que te ha indicado rufiaenlared y luego crea toda tu secuencia usando delay y accionando el rele que corresponda.
Yo no uso habitualmente delays ni lo recomiendo pero en este caso para hacer estoy y solo esto, es el camino mas corto.

Muchísimas gracias ambos por su ayuda, finalmente ya logre conseguir lo que buscaba, era mucho mas simple de lo pensaba, utilice un ejemplo, pero estaba confundido en como "anidar" la secuencia después de presionar el botón, pongo el código que finalmente me funciono por si a alguien le sirve

Estoy usando un modulo de relevadores de 8 puertos con lógica inversa, ( así viene el modulo )

unsigned long tiempo;

const int pulsador = 2; // pulsador a pin 2
const int pospison = 9; // + pison pin 9
const int negpison = 10; // - pison pin 10
const int taladro = 3; // Taladro pin 3
const int posmorder = 5; // + mor giro der pin 5
const int negmorder = 6; // - mor giro der pin 6
const int posmorizq = 7; // + mor giro izq pin 7
const int negmorizq = 8; // - mor giro izq pin 8
const int actuador = 4; // actuador pin 4
const int sensor = 11; // sensor pin 11

int buttonState = 0; // estado del botón (0 ó LOW es apagado y 1 ó HIGH es encendido)

void setup() {

pinMode (pospison, OUTPUT); // + pison como salida
pinMode (negpison, OUTPUT); // - pison como salida
pinMode (taladro, OUTPUT); // Taladro como salida
pinMode (posmorder, OUTPUT); // + pison como salida
pinMode (negmorder, OUTPUT); // + pison como salida
pinMode (posmorizq, OUTPUT); // + pison como salida
pinMode (negmorizq, OUTPUT); // + pison como salida
pinMode (actuador, OUTPUT); // + pison como salida
pinMode (pulsador, INPUT); // pulsador como entrada

digitalWrite (pospison, HIGH);
digitalWrite (negpison, HIGH);
digitalWrite (taladro, HIGH);
digitalWrite (posmorder, HIGH);
digitalWrite (negmorder, HIGH);
digitalWrite (posmorizq, HIGH);
digitalWrite (negmorizq, HIGH);
digitalWrite (actuador, HIGH);

}

void loop() {

buttonState = digitalRead(pulsador); // Leemos si el pulsador en pin 2 está abierto o cerrado
// Si está siendo pulsado es HIGH
if (buttonState == HIGH) { // Si el es HIGH inicia la secuencia

digitalWrite(taladro,LOW);
delay(3000); // Eniende talador por tres segundos
digitalWrite(taladro,HIGH);
// Detiene el taladro

digitalWrite(actuador,LOW);
delay(50); // Esperar 50 milesimas // acciona el actuador que cambia el sentido de giro del motor

digitalWrite(actuador,HIGH); // detiene el actuador

digitalWrite(posmorder,LOW);
digitalWrite(negmorder,LOW);
delay(3000); // enciende el motor de la mordaza por tres segundos encendido

digitalWrite(posmorder,HIGH);
digitalWrite(negmorder,HIGH);
delay(3000); // detiene el motor de la mordaza y espera 3 segundos

digitalWrite(posmorizq,LOW);
digitalWrite(negmorizq,LOW);
delay(3000);
// enciende el motor de la mordaza en sentido inverso por 3 segundos

digitalWrite(posmorizq,HIGH);
digitalWrite(negmorizq,HIGH);
// detiene el motor de la mordaza

digitalWrite(pospison,LOW);
digitalWrite(negpison,LOW);
delay(3000);
// Enciende el motor del pison por 3 segundos

digitalWrite(pospison,HIGH);
digitalWrite(negpison,HIGH);
// detiene el motor del pison

digitalWrite(taladro,LOW);
delay(3000); // Esperar un segundo
// acciona el motor del carro (taladro) por 3 segundos

digitalWrite(taladro,HIGH);
// detiene el motor del carro (taladro)

delay(3000); // Esperar tres segundos

}

}

Tengo mas dudas puesto que que ahora requiero que haga mas cosas, pero abrire un nuevo post

GRACIAS!!!