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!!!