my while l oop принимает только первое значение, даже если оно переопределено в arduino - PullRequest
0 голосов
/ 27 апреля 2020

привет, я пытаюсь сделать прерывание в моем коде Arduino, чтобы выполнить только один раз его часть. Я использую 2, в то время как l oop, первое, как предполагается, обнаруживает, когда я нажимаю кнопку, и второе, когда я отпускаю ее. между двумя кодами я хочу выполнить только один раз за одно нажатие.

, но даже если состояние времени хорошее, останавливаться не хочется.

мой последовательный монитор

мой код:

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);
}

1 Ответ

0 голосов
/ 27 апреля 2020

Вы объявляете long button каждый раз в своих while циклах. Поскольку вы уже объявляете это в начале вашего loop, нет необходимости делать это в любом другом месте. Циклы while принимают ваше первое объявление, которое не изменяется, тогда как Serial.print принимает новое объявление, определенное только в циклах while.

В ваших двух циклах while изменение long button = cs_4_6.capacitiveSensor(5); до button = cs_4_6.capacitiveSensor(5);

Надеюсь, это поможет,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...