Hola que tal muy buenos dias, estoy autamotizando un preceso de cortado de sellos, pero tengo un pequeña cuestion, necesito meter un boton de reversa pero no logro conseguir que se detenga al momento de tocar el final de carrera, si no es mucha molestia estaria agradecido con ayuda, muchas gracias y bonito dia
#include<Servo.h>
#include<Stepper.h>
int stepsPerRevolution=200; //pasos para que el motor de una vuelta
const int relePin=10; //ACTIVACION DE RELEVADOR
int En= 5; //DECLARACION DE ENTRADA
int pulsador=0; //ALMACENA EL ESTADO DEL BOTON
int estado=0;
int Fc1=0; //0=SISTEMA APAGADO, 1=SISTEMA ENCENDIDO
int Fc2=0;
int Reversa=0;
int PDE=0;
void setup()
{
pinMode(9, OUTPUT); //PULSO
pinMode(8, OUTPUT); //DIRECCION DEL GIRO DE MOTOR
pinMode(relePin, OUTPUT); //ACTIVACION DEL RELEVADOR
pinMode(1, INPUT); //ENCENDIDO DEL SISTEMA
pinMode(En, INPUT); //ENCENDIO DE MOTOR
digitalWrite(En, HIGH);
}
void loop()
{
{
pulsador=digitalRead(3); //ARRANQUE DE RUTINA EN PIN 3 PARA EL BOTON
if (pulsador!=1)
{
Fc2=digitalRead(7); //ARRANQUE DE RUTINA EN PIN 3 PARA EL BOTON
if (Fc2!=1)
{
for( int i=0; i<18 ; i++) // AVANCE DEL MOTOR EN PASOS
{
digitalWrite(8, HIGH);
delayMicroseconds(10);
for(int a=0; a<1450; a++) // AVANCE LINEAL DEL MOTOR(NUNERO DE PAROS)
{
digitalWrite(9,HIGH); // VELOCIDAD DEL MOTOR Y SU SENTIDO
delayMicroseconds(150);
digitalWrite(9,LOW);
delayMicroseconds(150);
}
delay(500); // TIEMPO DE ESPERA ENTRE LA ACTIVACION DEL RELE DEPUES DEL PARO DEL MOTOR
{
digitalWrite(relePin,HIGH); // ENCEDIDO DEL RELE QUE ACTUA LA electrovalvula
delay(700);
digitalWrite(relePin,LOW);
}
delay(800); // TIEMPO DE ESPERA, PARA INICIAR LA RUTINA RETROCESO DEL SISTEMA
}
}
}
{
Fc1=digitalRead(6); //ARRANQUE DE RUTINA EN PIN 3 PARA EL BOTON
if(Fc1!=1)
{
digitalWrite(8, LOW);
delayMicroseconds(10);
for(int z=0; z<26100; z++) // PASOS DE RETROCESO DEL MOTOR PARA QUE REGRESE A SU POSICION INICIAL
{
digitalWrite(9,HIGH);
delayMicroseconds(120);
digitalWrite(9, LOW);
delayMicroseconds(120);
}
}
delay(2000); // TIEMPO DE ESPERA PARA QUE EL SISTEMA VUELVA A REPETIR LA RUTINA
}
}
{
Reversa=digitalRead(4); //ARRANQUE DE RUTINA EN PIN 3 PARA EL BOTON
if (Reversa!=1)
{
Fc1=digitalRead(6); //ARRANQUE DE RUTINA EN PIN 3 PARA EL BOTON
if (Fc1!=0)
{
digitalWrite(8, LOW);
delayMicroseconds(10);
for(int z=0; z<26100; z++) // PASOS DE RETROCESO DEL MOTOR PARA QUE REGRESE A SU POSICION INICIAL
{
{
digitalWrite(9,HIGH);
delayMicroseconds(120);
digitalWrite(9, LOW);
delayMicroseconds(120);
}
}
}
}
}