美好的一天,
我对使用Arduino编程很陌生,现在我正在一个新的家庭项目中,您的衣橱里有2个步进电机,它们看起来像这样:the shelf
但是现在我遇到了一个小问题,我正在使用accelstepper库,因为我可以设置步进电机的位置,这确实运行良好,但是正在发生的情况是,这可以说您当前的位置是架子1,而您想转到6号架子,它的作用是:(架子1,2,3,4,5,6)执行5个步骤, 相反,我想要的是:(架子1,6)只需走1步,所以我的问题是我不知道如何执行此操作。
这是我的代码:
//for now i will use only 1 stepper motor
//and I'm sorry if my code looks absolute garbage
#include <AccelStepper.h>
AccelStepper stepperN(1, 9, 8); // pin 9 = step, pin 8 = direction
//the position from the shelfs
int shelf1 =0;
int shelf2 =1000;
int shelf3 =2000;
int shelf4 =3000;
int shelf5 =4000;
int shelf6 =5000;
void setup() {
Serial.begin(9600);
Serial.println("type shelf1/6 ");
}
void loop() {
stepperN.run();
while(Serial.available() > 0 ){
String str = Serial.readString();
if(str.indexOf("shelf1") > -1){
stepperN.setAcceleration(50); stepperN.setMaxSpeed(313); stepperN.moveTo(shelf1); stepperN.run();
}
else if(str.indexOf("shelf2") > -1){
stepperN.setAcceleration(50); stepperN.setMaxSpeed(313); stepperN.moveTo(shelf2); stepperN.run();
}
else if(str.indexOf("shelf3") > -1){
stepperN.setAcceleration(50); stepperN.setMaxSpeed(313); stepperN.moveTo(shelf3); stepperN.run();
}
else if(str.indexOf("shelf4") > -1){
stepperN.setAcceleration(50); stepperN.setMaxSpeed(313); stepperN.moveTo(shelf4); stepperN.run();
}
else if(str.indexOf("shelf5") > -1){
stepperN.setAcceleration(50); stepperN.setMaxSpeed(313); stepperN.moveTo(shelf5); stepperN.run();
}
else if(str.indexOf("shelf6") > -1){
stepperN.setAcceleration(50); stepperN.setMaxSpeed(313); stepperN.moveTo(shelf6); stepperN.run();
}
}
}
我希望有人能够帮助我