User talk:Zaeem3242

From RepRap
Jump to: navigation, search

I have ramps 1.4 with mega 2560 and i connect my steppers with A4988 Driver but its not working and my HC-06 not working too but my servo is working well here's m code :

  1. include <AccelStepper.h>
  2. include <Servo.h>
  3. include <SoftwareSerial.h>

// Define the step and direction pins for each stepper motor // These numbers are constant in Ramps 1.4

  1. define Stepper1_STEP_PIN 54
  2. define Stepper1_DIR_PIN 55

//#define x_enable_pin 38

  1. define Stepper2_STEP_PIN 60
  2. define Stepper2_DIR_PIN 61

//#define y_enable_pin 56

  1. define Stepper3_STEP_PIN 46
  2. define Stepper3_DIR_PIN 48

//#define z_enable_pin 62

  1. define Stepper4_STEP_PIN 26
  2. define Stepper4_DIR_PIN 28

//#define Stepper5_STEP_PIN 36 //#define Stepper5_DIR_PIN 34

// Define Servo Motor

  1. define SERVO_PIN_1 11 // These numbers are constant in Ramps 1.4
  2. define SERVO_PIN_2 6 // These numbers are constant in Ramps 1.4
  3. define SERVO_PIN_3 5 // These numbers are constant in Ramps 1.4
  4. define SERVO_PIN_4 4 // These numbers are constant in Ramps 1.4
  1. define RX_PIN 0
  2. define TX_PIN 1

// we have multiple simultaneous steppers, all moving at different speeds and accelerations AccelStepper stepper1_Vertical_Right(AccelStepper::DRIVER, Stepper1_STEP_PIN, Stepper1_DIR_PIN); AccelStepper stepper2_Horizantal_Right(AccelStepper::DRIVER, Stepper2_STEP_PIN, Stepper2_DIR_PIN); AccelStepper stepper3_Vertical_Left(AccelStepper::DRIVER, Stepper3_STEP_PIN, Stepper3_STEP_PIN); AccelStepper stepper4_Horizantal_Left(AccelStepper::DRIVER, Stepper4_STEP_PIN, Stepper4_DIR_PIN); //AccelStepper stepper5(AccelStepper::DRIVER, Stepper5_STEP_PIN, Stepper5_DIR_PIN);

Servo servo1_Verical_Right; Servo servo2_Horizantal_Right; Servo servo3_Verical_Left; Servo servo4_Horizantal_Left;


SoftwareSerial bluetooth(TX_PIN, RX_PIN); // RX, TX pins

void setup() {

 Serial.begin(9600);
 bluetooth.begin(9600);
 // Sets the maximum permitted speed.
 stepper1_Vertical_Right.setMaxSpeed(1000);
 // Sets the acceleration/deceleration rate.
 stepper1_Vertical_Right.setAcceleration(500);
 stepper2_Horizantal_Right.setMaxSpeed(1000);
 stepper2_Horizantal_Right.setAcceleration(500);
 stepper3_Vertical_Left.setMaxSpeed(1000);
 stepper3_Vertical_Left.setAcceleration(500);
 stepper4_Horizantal_Left.setMaxSpeed(1000);
 stepper4_Horizantal_Left.setAcceleration(500);


 servo1_Verical_Right.attach(SERVO_PIN_1);
 servo2_Horizantal_Right.attach(SERVO_PIN_2);
 servo3_Verical_Left.attach(SERVO_PIN_3);
 servo4_Horizantal_Left.attach(SERVO_PIN_4);

}

void loop() {

   if (bluetooth.available()) {
   char command = bluetooth.read();
   Serial.print("Received command: ");
   Serial.println(command);
    switch (command) {
   case 'U':
     MoveUp();
     break;
   case 'L':
     MoveLeft();
     break;
   case 'R':
     MoveRight();
     break;
   case 'D':
     MoveDown();
  }
 }
MoveDown(); 
MoveRight(); 

}


void MoveDown() {

 // Move servo2 for 45 degrees and servo4 at the same time
 servo2_Horizantal_Right.write(45);
 servo4_Horizantal_Left.write(45);
 // Delay for 2 second
 delay(2000);
 // Move stepper1_Vertical_Right for 75 steps and stepper3_Vertical_Left at the same time
 stepper1_Vertical_Right.moveTo(75);
 stepper3_Vertical_Left.moveTo(75);
 while ( stepper1_Vertical_Right.currentPosition() && stepper3_Vertical_Left.currentPosition() != 75) {
   stepper1_Vertical_Right.run();
   stepper3_Vertical_Left.run();
 }
 // Move servo2 and servo4 back to 0 degrees
 servo2_Horizantal_Right.write(0);
 servo4_Horizantal_Left.write(0);
 // Move servo3 for 50 degrees
 servo3_Verical_Left.write(40);
 // Move stepper3_Vertical_Left for 200 steps
 stepper3_Vertical_Left.moveTo(200);
 while (stepper3_Vertical_Left.currentPosition() != 200) {
   stepper3_Vertical_Left.run();
 }
 // Move servo3 for 35 degrees
 servo3_Verical_Left.write(0);
 // Move servo1 for 90 degrees
servo1_Verical_Right.write(90);
 // Move stepper1_Vertical_Right for 100 steps
 stepper1_Vertical_Right.moveTo(100);
 while (stepper1_Vertical_Right.currentPosition() != 100) {
   stepper1_Vertical_Right.run();
 }
 // Move servo1 for 90 degrees again
 servo1_Verical_Right.write(0);

} void MoveUp() {

  // Move servo2 for 45 degrees and servo4 at the same time
 servo2_Horizantal_Right.write(45);
 servo4_Horizantal_Left.write(45);
 // Delay for 2 second
 delay(2000);
 // Move stepper1_Vertical_Right for 75 steps and stepper3_Vertical_Left at the same time
 stepper1_Vertical_Right.moveTo(75);
 stepper3_Vertical_Left.moveTo(75);
 while ( stepper1_Vertical_Right.currentPosition() && stepper3_Vertical_Left.currentPosition() != 75) {
   stepper1_Vertical_Right.run();
   stepper3_Vertical_Left.run();
 }
 // Move servo2 and servo4 back to 0 degrees
 servo2_Horizantal_Right.write(0);
 servo4_Horizantal_Left.write(0);
 // Move servo3 for 50 degrees
 servo3_Verical_Left.write(40);
 // Move stepper3_Vertical_Left for 200 steps
 stepper3_Vertical_Left.moveTo(200);
 while (stepper3_Vertical_Left.currentPosition() != 200) {
   stepper3_Vertical_Left.run();
 }
 // Move servo3 for 35 degrees
 servo3_Verical_Left.write(0);
 // Move servo1 for 90 degrees
servo1_Verical_Right.write(90);
 // Move stepper1_Vertical_Right for 100 steps
 stepper1_Vertical_Right.moveTo(100);
 while (stepper1_Vertical_Right.currentPosition() != 100) {
   stepper1_Vertical_Right.run();
 }
 // Move servo1 for 90 degrees again
 servo1_Verical_Right.write(0);

} void MoveLeft() {

  // Move servo2 for 45 degrees and servo4 at the same time
 servo2_Horizantal_Right.write(45);
 servo4_Horizantal_Left.write(45);
 // Delay for 2 second
 delay(2000);
 // Move stepper1_Vertical_Right for 75 steps and stepper3_Vertical_Left at the same time
 stepper1_Vertical_Right.moveTo(75);
 stepper3_Vertical_Left.moveTo(75);
 while ( stepper1_Vertical_Right.currentPosition() && stepper3_Vertical_Left.currentPosition() != 75) {
   stepper1_Vertical_Right.run();
   stepper3_Vertical_Left.run();
 }
 // Move servo2 and servo4 back to 0 degrees
 servo2_Horizantal_Right.write(0);
 servo4_Horizantal_Left.write(0);
 // Move servo3 for 50 degrees
 servo3_Verical_Left.write(40);
 // Move stepper3_Vertical_Left for 200 steps
 stepper3_Vertical_Left.moveTo(200);
 while (stepper3_Vertical_Left.currentPosition() != 200) {
   stepper3_Vertical_Left.run();
 }
 // Move servo3 for 35 degrees
 servo3_Verical_Left.write(0);
 // Move servo1 for 90 degrees
servo1_Verical_Right.write(90);
 // Move stepper1_Vertical_Right for 100 steps
 stepper1_Vertical_Right.moveTo(100);
 while (stepper1_Vertical_Right.currentPosition() != 100) {
   stepper1_Vertical_Right.run();
 }
 // Move servo1 for 90 degrees again
 servo1_Verical_Right.write(0);  

} void MoveRight() {

//Move servo3 for 75 degrees
servo3_Verical_Left.write(75);
//delay for 1 second 
delay(1000);
// move stepper3_Vertical_Left 200 steps
stepper3_Vertical_Left.moveTo(200);
 while (stepper3_Vertical_Left.currentPosition() != 200) {
   stepper3_Vertical_Left.run();
 }
//delay for 1 second 
delay(1000);
 
 stepper4_Horizantal_Left.moveTo(200);
 while ( stepper4_Horizantal_Left.currentPosition() != 200) {
    stepper4_Horizantal_Left.run();
 } 
delay(1000);
stepper3_Vertical_Left.moveTo(-200);
 while (stepper3_Vertical_Left.currentPosition() != 200) {
   stepper3_Vertical_Left.run();
 }
delay(1000);
servo3_Verical_Left.write(0);
delay(1000);
servo2_Horizantal_Right.write(55);
servo4_Horizantal_Left.write(55);
delay(1000);
servo2_Horizantal_Right.write(0);
servo4_Horizantal_Left.write(0);
delay(1000);
servo1_Verical_Right.write(90);
stepper1_Vertical_Right.moveTo(100);
 while (stepper1_Vertical_Right.currentPosition() != 100) {
   stepper1_Vertical_Right.run();
 }
stepper2_Horizantal_Right.moveTo(100);
 while (stepper2_Horizantal_Right.currentPosition() != 100) {
   stepper2_Horizantal_Right.run();
 }
 
stepper1_Vertical_Right.moveTo(-100);
 while (stepper1_Vertical_Right.currentPosition() != 100) {
   stepper1_Vertical_Right.run();
 }
servo1_Verical_Right.write(0);

}