Прошу помощь зала. Не найду объяснение

Доброго!
Не могу понять поведение программы. Имею 3 сенсорные площадки, подключены к пинам Ардуины 4,5,6 с подтяжкой к плюсу через мегаомный резистор. Дальше по стандарту: пин на землю, потом на вход, жду появления логической единички, замеряю время. В момент опознания тыкания пальца, на пин 3 вывожу кратковременный “BEEP”. И в итоге, с каждого входного сенсора, имею разную длительность этого BEEPа. Задуманная работа идет только по пину 5. с 4 длительность в два раза больше, с 6-го ещё больше, изменчива. Пробовал менять местами площадки - тоже самое. Изначально работал с портами напрямую, ситуация не меняется. Буду рад мыслям. Второй вечер ковыряю. Было всё на ESP32, штатными функциями, но надо перевести на Дуню, неохота корпус ломать, кнопки ставить.

bool buzz;
uint32_t buzz_timer, stimer;

uint16_t ReadSensor(uint8_t pin)
{
  uint16_t count = 0;
  pinMode(pin, OUTPUT);
  digitalWrite(pin, LOW);
  noInterrupts();
  pinMode(pin, INPUT);
  while ((digitalRead(pin) == LOW) && (count != 1024))
  {
    count++;
  }
  interrupts();
  return count;
}

uint16_t GetSensor(uint8_t pin)
{
    uint32_t ctimer = millis();
    uint16_t value;
    uint8_t count = 0;
    while(millis() - ctimer < 100) {
        value = ReadSensor(pin);
        if (value > 100) count++;
        if (count > 3) break;
    }
    return count;
}

void setup()
{
  pinMode(3, OUTPUT);
}

void loop()
{    
      for (uint8_t n = 4; n < 7; n++){
        if (GetSensor(n) > 3) {
          buzz = true;
          buzz_timer = millis();
          digitalWrite(3, HIGH);
        }
      }

      if (buzz && millis() - buzz_timer > 50){
          buzz = false;
          digitalWrite(3, LOW);
      }
}

Очевидно, что нужно сразу по обнаружению нажатия выскочить из for и начать ожидание истечения времени гудка.

Да, спасибо за наводку! Отключил опрос кнопок на время гудка и обрываю цикл опроса, в случае обнаружения нажатия.

Возьмите за правило “описывать” функции - что делают, что принимают, что возвращают. А когда опишете, глядишь, и самому станет легче/понятнее. И на форум не придётся обращаться.