我的while循环只接受第一个值,即使它在arduino中被重新定义



你好,我试图在我的arduino代码中中断,只执行一次其中的一部分。我使用2 while循环,第一个假设在我按下按钮时检测,第二个假设在释放按钮时检测。在这两个循环之间,我只想执行一次代码。

但即使这段时间的情况很好,它也不想停止。

我的串行监视器

我的代码:

void loop()
{
long button =  cs_4_6.capacitiveSensor(5);
while(button < 1000)
{
long button =  cs_4_6.capacitiveSensor(5);
Serial.println(button);
Serial.println("not ok");
}
if(nbButton[3] == 0)
{
nbButton[counter] = 1;
counter++;
}
else
{
int nbButton[] = {0, 0, 0, 0};
}

while(button > 1000)
{
long button =  cs_4_6.capacitiveSensor(5);
Serial.println(button);                  // print sensor output 2
Serial.println("ok");
}
delay(50);
}

每次在while循环中声明long button。由于您已经在loop开始时声明了它,因此没有必要在任何其他地方进行声明。while循环采用您的第一个声明,该声明不变,而Serial.print采用仅在while循环中定义的新声明。

在两个while循环中,将long button = cs_4_6.capacitiveSensor(5);更改为button = cs_4_6.capacitiveSensor(5);

希望有帮助,

最新更新