User talk:Zaeem3242
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 :
- include <AccelStepper.h>
- include <Servo.h>
- include <SoftwareSerial.h>
// Define the step and direction pins for each stepper motor // These numbers are constant in Ramps 1.4
- define Stepper1_STEP_PIN 54
- define Stepper1_DIR_PIN 55
//#define x_enable_pin 38
- define Stepper2_STEP_PIN 60
- define Stepper2_DIR_PIN 61
//#define y_enable_pin 56
- define Stepper3_STEP_PIN 46
- define Stepper3_DIR_PIN 48
//#define z_enable_pin 62
- define Stepper4_STEP_PIN 26
- define Stepper4_DIR_PIN 28
//#define Stepper5_STEP_PIN 36 //#define Stepper5_DIR_PIN 34
// Define Servo Motor
- define SERVO_PIN_1 11 // These numbers are constant in Ramps 1.4
- define SERVO_PIN_2 6 // These numbers are constant in Ramps 1.4
- define SERVO_PIN_3 5 // These numbers are constant in Ramps 1.4
- define SERVO_PIN_4 4 // These numbers are constant in Ramps 1.4
- define RX_PIN 0
- 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);
}