/*SE HACEN USO DE LOS #DEFINES PARA NO UTILIZAR MAS FUNCIONES DESPUES,
HACIENDO EL CODIGO MAS CORTO*/
#define PUL digitalRead(11) //VERIFICA EL ESTADO DEL PULSADOR
#define APAG digitalRead(12)//VERIFICA EL ESTADO DEL BOTÓN DE APAGADO
#define SCIN digitalRead(2)//VERIFICA SI HAY CINTA EN LA BANDA
#define SCUT digitalRead(3)//VERIFICA EL SENSOR DE LA CORTADORA (SI ES 0, LA CORTADORA DEBERIA ESTAR EN LA POSICIÓN POSTERIOR)
#define SPA_0 digitalRead(4)//MONITOREA CUANDO EL PISTÓN [A] ESTÁ EXTENDIDO
#define SPA_1 digitalRead(5)//MONITOREA CUANDO EL PISTÓN [A] ESTÁ RETRAIDO
#define SPB_0 digitalRead(6)//MONITOREA CUANDO EL PISTÓN [B] ESTÁ EXTENDIDO
#define SPB_1 digitalRead(7)//MONITOREA CUANDO EL PISTÓN [B] ESTÁ RETRAIDO
#define PA_1 digitalWrite(A0,1);digitalWrite(A1,0);//ACTIVA EL MOTOR RETRAYENDO EL PISTÓN [A]
#define PA_0 digitalWrite(A0,0);digitalWrite(A1,1);//ACTIVA EL MOTOR EXTENDIENDO EL PISTÓN [A] *POSICIÓN ORIGINAL*
#define PB_1 digitalWrite(A2,1);digitalWrite(A3,0);//ACTIVA EL MOTOR RETRAYENDO EL PISTÓN [B]
#define PB_0 digitalWrite(A2,0);digitalWrite(A3,1);//ACTIVA EL MOTOR EXTENDIENDO EL PISTÓN [B] *POSICIÓN ORIGINAL*
#define LUZ_ON digitalWrite(13, 1);
#define LUZ_OFF digitalWrite(13, 0);
#define CORTAR_ON digitalWrite(A5, 1); //ESTO ENVIA LA SEÑAL DE ACTIVACION PARA LA MÁQUINA CORTADORA
#define CORTAR_OFF digitalWrite(A5, 0);//ESTO ENVIA LA SEÑAL DE APAGADO PARA LA MÁQUINA CORTADORA
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4,INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(11, INPUT);
pinMode(12,INPUT);
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(13, OUTPUT);
pinMode(A5, OUTPUT);
}
void loop() {
while (!PUL || SCUT){;}//SI EL SENSOR DE CORTE ESTA APAGADO Y EL PULSADOR SE PRESIONA CONTINUA
while(SCIN || !APAG){//MIENTRAS HAYA CINTA EN LA BANDA Y NO SE PRESIONE EL APAGADO EL SISTEMA FUNCIONA
PA_1;//ESTO RETRAE EL PISTÓN [A] SUJETANDO LA CINTA
while (!SPA_1) {;}
PB_1;//SI SE DETECTA LA POSICIÓN EN LA QUE SE SUJETA LA CINTA, EL PISTÓN [B] SE RETRAE JALÁNDOLA
while (!SPB_1) {;}
PA_0;
/*SI EL PISTÓN [B] YA COLOCO LA CINTA EN SU LUGAR,
SE DEBE SOLTARSE LA CINTA ANTES DE PROCEDER A CORTARLA (SE LIBERA EL PISTÓN [A])*/
while (!SPA_0){;}
CORTAR_ON;//SI SE DETECTA QUE EL MATERIAL YA SE COLOCÓ EN LA PLATAFORMA DE CORTE, SE ACTIVA LA MÁQUINA
delay(100);
CORTAR_OFF;
/*COMO LA MAQUINA DE CORTE ES INDEPENDIENTE DEL SISTEMA DE CONTROL,
APAGAMOS LA SEÑAL PARA EVITAR QUE SE VUELVA A ENCENDER*/
while (!SCUT) {
LUZ_ON;
delay(500);
LUZ_OFF;
delay(500);
}//ESTE PARPADEO ES ADICIONAL, SE SUPONE QUE LA CORTADORA LO REALIZA MIENTRAS ESTÁ TRABAJANDO
PB_0;//CUANDO LA MÁQUINA TERMINA, SE LIBERA EL PISTÓN [B], QUEDA EN SU POSICIÓN ORIGINAL AL IGUAL QUE EL PISTON A.
while (!SPB_0){;}//CUANDO EL PISTÓN [B] SE LIBERE POR COMPLETO, INICIA DE NUEVO EL CICLO.
}
}SENSOR CINTA
SENSOR CORTADORA
APAGAR
----- PULSO (ENCENDER)
----------------- > SPA 0
----------------- > SPA 1
----------------- > SPB 0
----------------- > SPB 1
PINES DE CONTROL DE DIRECCION
(PISTON A)
PINES DE CONTROL DE DIRECCION
(PISTON B)
SEÑAL DE ACTIVACION [CORTADORA]
MAQUINA CORTANDO MATERIAL