This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Ayuda con codigo boton de pause motor PaP
#1
Buenos dias, soy nuevo en el foro y tengo un pequeño incoveniente, estoy montando una maquina empacadora con arduino y ramps 1.4, todo trabaja bien, a la perfeccion, estoy en procesode calibracion, pero no he podido encontrar un codigo para pausar y reiniciar los motores paso a paso, con un boton externo, (lleva un pequeño contacto) es para cuando se termino el rollo de empaque la maquina se pause y poderla continuar cuando se coloque el nuevo rollo presionando el mismo boton u otro.
Tambien necesito iniciar el movimiento de un motor cuando se active un final de carrera.
No conozco mucho y los ejemplos, tutoriales o librerias que he logrado encontrar siempre van encaminados a impresoras 3D y sendores de calor y esas cosas.
Adjunte el codigo que estoy utilizando.
Muchas gracias.

#define X_STEP_PIN         54
#define X_DIR_PIN          55
#define X_ENABLE_PIN       38
#define X_MIN_PIN           3
#define X_MAX_PIN           2

#define Y_STEP_PIN         60
#define Y_DIR_PIN          61
#define Y_ENABLE_PIN       56
#define Y_MIN_PIN          14
#define Y_MAX_PIN          15

#define Z_STEP_PIN         46
#define Z_DIR_PIN          48
#define Z_ENABLE_PIN       62
#define Z_MIN_PIN          18
#define Z_MAX_PIN          19

#define E_STEP_PIN         26
#define E_DIR_PIN          28
#define E_ENABLE_PIN       24

#define E_1_STEP_PIN       36
#define E_1_DIR_PIN        34
#define E_1_ENABLE_PIN     30

#define MOTOR_PIN   0 // Spindle motor control pin
#define EMERGENCY_PIN   0 // Emergency button control pin

#define PGM_RD_W(x)   (short)pgm_read_word(&x)

#define SDSS               53
#define LED_PIN            13
#define FAN_PIN            9
#define PS_ON_PIN          12
#define KILL_PIN           -1

int n=0;
int x,y,z,e,e_1=0;
int xmax,ymax,zmax,emax,e_1max=0;

void setup(){

  pinMode(LED_PIN  , OUTPUT);
 
  pinMode(X_STEP_PIN ,OUTPUT); //Indicamos que los pines son de salida
  pinMode(X_DIR_PIN ,OUTPUT);
  pinMode(X_ENABLE_PIN ,OUTPUT);
  pinMode(X_MIN_PIN ,INPUT_PULLUP);

  pinMode(Y_STEP_PIN ,OUTPUT); //Indicamos que los pines son de salida
  pinMode(Y_DIR_PIN ,OUTPUT);
  pinMode(Y_ENABLE_PIN ,OUTPUT);
  pinMode(Y_MIN_PIN ,INPUT_PULLUP);

  pinMode(Z_STEP_PIN ,OUTPUT); //Indicamos que los pines son de salida
  pinMode(Z_DIR_PIN ,OUTPUT);
  pinMode(Z_ENABLE_PIN ,OUTPUT);
  pinMode(Z_MIN_PIN ,INPUT_PULLUP);

  pinMode(E_STEP_PIN ,OUTPUT); //Indicamos que los pines son de salida
  pinMode(E_DIR_PIN ,OUTPUT);
  pinMode(E_ENABLE_PIN ,OUTPUT);

  pinMode(E_1_STEP_PIN ,OUTPUT); //Indicamos que los pines son de salida
  pinMode(E_1_DIR_PIN ,OUTPUT);
  pinMode(E_1_ENABLE_PIN ,OUTPUT);

  Serial.begin(115200);
 
}

void loop(){


  digitalWrite(X_DIR_PIN,HIGH); //Fijamos una direción

  for(int X=0;X<600;X++){ //Mandamos pulsos al motor en concreto 2000
    digitalWrite(X_STEP_PIN,HIGH);
    delay(1);
    digitalWrite(X_STEP_PIN,LOW);
    delay(1);
  }

  digitalWrite(Y_DIR_PIN,HIGH); //Fijamos una direccion

  for(int Y=0;Y<2000;Y++){ //Mandamos pulsos al motor en concreto 2000
    digitalWrite(Y_STEP_PIN,HIGH);
    digitalWrite(Y_STEP_PIN,LOW);
  }

  digitalWrite(Z_DIR_PIN,HIGH); //Fijamos una direccion

  for(int Z=0;Z<500;Z++){ //Mandamos pulsos al motor en concreto 500
    digitalWrite(Z_STEP_PIN,HIGH);
    digitalWrite(Z_STEP_PIN,LOW);
  }

  digitalWrite(Z_DIR_PIN,LOW); //Cambiamos la direccion de giro

  for(int Z=0;Z<200;Z++){ //Hacemos 200 pasos en sentido contrario
    digitalWrite(Z_STEP_PIN,HIGH);
    digitalWrite(Z_STEP_PIN,LOW);
  }

  digitalWrite(E_DIR_PIN,HIGH); //Fijamos una direccion

  for(int E=0;E<800;E++){ //Mandamos pulsos al motor en concreto 800
    digitalWrite(E_STEP_PIN,HIGH);
    digitalWrite(E_STEP_PIN,LOW);
  }

  digitalWrite(E_DIR_PIN,LOW); //Cambiamos la direccion de giro

  for(int E=0;E<400;E++){ //Hacemos 400 pasos en sentido contrario
    digitalWrite(E_STEP_PIN,HIGH);
    digitalWrite(E_STEP_PIN,LOW);
  }

  digitalWrite(Y_DIR_PIN,HIGH); //Fijamos una direccion

  for(int Y=0;Y<200;Y++){ //Mandamos pulsos al motor en concreto 200
    digitalWrite(Y_STEP_PIN,HIGH);
    digitalWrite(Y_STEP_PIN,LOW);
  }

  digitalWrite(E_1_DIR_PIN,HIGH); //Fijamos una direción

  for(int E_1=0;E_1<400;E_1++){ //Mandamos pulsos al motor en concreto 400
    digitalWrite(E_1_STEP_PIN,HIGH);
    digitalWrite(E_1_STEP_PIN,LOW);
  }

}
  Responder
#2
Hola y bienvenido al foro tolimenso, sería estupendo que al menos te presentaras en el apartado del foro para ello https://www.spainlabs.com/foros/foro-Evo...-SpainLabs y nos contaras algo de ti antes de una vez bombardear con preguntas para que te hagamos las tareas. No te lo tomes a mal, es cuestión de educación.

Saludos!
"Enseñar es aprender dos veces".
  Responder
#3
Hola, mil disculpas, andaba un poco afanado, ya realice mi presentación en el foro y gracias por el llamado de atención.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  CONSULTA Saludos - Problema con código Alexeim56 2 797 29-03-2021, 09:59 PM
Último mensaje: asesorplaza1
  CONSULTA ¿como uno dos codigos en un solo codigo? laurangcard 1 943 18-11-2020, 10:03 PM
Último mensaje: asesorplaza1
  CONSULTA problemas en codigo kuro 1 802 13-10-2020, 11:06 PM
Último mensaje: asesorplaza1
  error al compilar el código homer32 4 1,984 23-09-2019, 01:29 PM
Último mensaje: homer32
  CONSULTA Codigo pluviometro balancin Dieseldj1 0 943 01-09-2019, 10:43 PM
Último mensaje: Dieseldj1