虽然循环不会在 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;
}
记住必须读取和存储每个值
我正在应用 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;
}
记住必须读取和存储每个值