#include <AccelStepper.h>
#define sw1 3
#define sw2 4
int i=1;
// Khởi tạo đối tượng Stepper với số bước và chân điều khiển
AccelStepper myStepper(1, 2, 1);
void setup() {
myStepper.setMaxSpeed(1000);
myStepper.setAcceleration(200);
pinMode(sw1, INPUT_PULLUP);
pinMode(sw2, INPUT_PULLUP);
}
void loop() {
if(digitalRead(sw1)==LOW){
forward(1000);
backward(2000);
forward(3000);
}
if(digitalRead(sw2)==LOW){
Serial.println(i);
switch (i){
case 1:
forward(2000);
forward(500);
break;
case 2:
forward(1500);
backward(1000);
break;
case 3:
backward(1000);
backward(500);
backward(1000);
break;
default:
i=1;
break;
}
i++;
}
}
void forward(int distance){
if(myStepper.currentPosition()==myStepper.targetPosition()){
myStepper.moveTo(myStepper.currentPosition()+distance);
myStepper.runToPosition();
}
}
void backward(int distance){
if(myStepper.currentPosition()==myStepper.targetPosition()){
myStepper.moveTo(myStepper.currentPosition()-distance);
myStepper.runToPosition();
}
}