虽然循环不会在 arduino 中停止

While loop is not stopping in arduino

我正在应用 while 循环,但循环没有停止。此外,serialmonitor 停止写入值。这是为什么?停止命令也不起作用。下面是我的代码

while (x <= Y) //Y is a constant integer, x is defined formulaically earlier 
  {
    digitalWrite(SPin, HIGH);
    //motor running code  
    digitalWrite(dir1,HIGH);
    digitalWrite(dir2,LOW);
    analogWrite(speedPin,mSpeed);
    Serial.println(x);
    delay(50);
  }

您需要更新变量“x”。 例如,如果你想重复循环 250 次,只需在每个循环中将 1 添加到 x。

 while (x <= y) {
    digitalWrite(solenoidPin, HIGH);//Switch Solenoid ON
    //motor running code  
    digitalWrite(dir1,HIGH);
    digitalWrite(dir2,LOW);
    analogWrite(speedPin,mSpeed);
    Serial.println(x);
    delay(50); 
    x = x+1; //this makes it so that every time the loop repeats x goes up
  }

如果您使用输入中的值,则必须在 while 循环期间读取该输入(C++ 不会自动更新变量):

while (x <= y) {
    digitalWrite(solenoidPin, HIGH);//Switch Solenoid ON
    //motor running code  
    digitalWrite(dir1,HIGH);
    digitalWrite(dir2,LOW);
    analogWrite(speedPin,mSpeed);
    Serial.println(x);
    delay(50); 
    x = analogWrite(youranalogpin);
  }

但是如果你想force-stop循环你可以使用:

break;

只能在 if-condition 中使用它,否则循环将永远无法工作。 示例:

while (x <= y) {
  if(stop /*== true*/)
    break;
}

记住必须读取和存储每个值