добрый день, вот такая у меня проблемка,хочу управлять двумя ШД,задавая через монитор порта ардуино число оборотов каждому шд. Но столкнулся с такой проблемой ,если задавать их как void loop() { int Sx=4; int Sy=6; то работает,но если void loop() { if(Serial.available()) { if(OneOrTwo==0) { Sx = Serial.parseInt(); Serial.print("Sx="); Serial.println(Sx); while(Serial.available())Serial.read(); OneOrTwo=1; return; } if(OneOrTwo==1) { Sy = Serial.parseInt(); Serial.print("Sy="); Serial.println(Sy); while(Serial.available())Serial.read(); OneOrTwo=0; return; } то ШД молчат! хотя когда отработывал на светодиодах,все работало
Код (Text): #include <AccelStepper.h> int Sx; int Sy; // Define a stepper and the pins it will use AccelStepper stepper1(1, 5, 4); AccelStepper stepper2(1, 7, 6); byte OneOrTwo = 0; void setup() { Serial.begin(9600); // Change these to suit your stepper if you want stepper1.setMaxSpeed(600); stepper2.setMaxSpeed(600); } void loop() { if(Serial.available()) { if(OneOrTwo==0) { Sx = Serial.parseInt(); Serial.print("Sx="); Serial.println(Sx); while(Serial.available())Serial.read(); OneOrTwo=1; return; } if(OneOrTwo==1) { Sy = Serial.parseInt(); Serial.print("Sy="); Serial.println(Sy); while(Serial.available())Serial.read(); OneOrTwo=0; } if (Sx!=0 && Sy!=0) { if(Sx>Sy) { float Vw=Sy/Sx; if (Vw<0) { Vw==Vw*(-1);} stepper1.moveTo(1024*Sx); stepper2.moveTo(1024*Sy); stepper1.setSpeed(600); stepper2.setSpeed(600*Vw); stepper1.runSpeedToPosition(); stepper2.runSpeedToPosition(); } else if(Sx<Sy) { float Vw=Sx/Sy; if (Vw<0) { Vw==Vw*(-1);} stepper1.moveTo(1024*Sx); stepper2.moveTo(1024*Sy); stepper1.setSpeed(600*Vw); stepper2.setSpeed(600); stepper1.runSpeedToPosition(); stepper2.runSpeedToPosition(); } else { stepper1.moveTo(1024*Sx); stepper2.moveTo(1024*Sy); stepper1.setSpeed(600); stepper2.setSpeed(600); stepper1.runSpeedToPosition(); stepper2.runSpeedToPosition(); } } else if (Sx==0 && Sy!=0) { stepper2.moveTo(1024*Sy); stepper2.setSpeed(600); stepper2.runSpeedToPosition(); } else if (Sx!=0 && Sy==0) { stepper1.moveTo(1024*Sx); stepper1.setSpeed(600); stepper1.runSpeedToPosition(); } }}