Как снять второе и третье показания с емкостного сенсорного датчика ESP32?

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

open: 82 open: 80 open: 88 open: 81 open: 80 open: 88

x: 8 open: 79 open: 88
  • "8" - это первое чтение (когда я прикасаюсь к проводу).
  • "79" и "88" - это второе и третье чтения (которые не должны читаться как таковые).

Как мне удалить второе и третье показания?

.

void setup()   
{ 
  Serial.begin(57600);
}  


void loop() 
{   
  
  if(touchRead(12) < 50)
  {
    Serial.println();
    Serial.print("x: ");        
    Serial.print(touchRead(12));
    touchRead(12); // моя попытка
    touchRead(12); // в простом решении
  }
  else
  {
    Serial.print(" open: ");
    Serial.print(touchRead(12));    
  }



  delay(1000);
}

Вот решения, которые немного сложнее, чем то, что я хочу сделать: https://electronics.stackexchange.com/questions/524544/esp32-touch-sensor-outputs-unstable-values

Вот большая часть последовательного монитора, где я трижды прикасаюсь к проводу:

open: 82 open: 80 open: 88 open: 81 open: 80 open: 88
x: 8 open: 79 open: 88
x: 8 open: 79 open: 88
x: 8 open: 79 open: 88
x: 8 open: 79 open: 88 open: 82 open: 80 open: 88 open: 82 open: 80 open: 88 open: 81
x: 8 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88 open: 81 open: 80 open: 88 open: 81 open: 80 open: 88 open: 65 open: 80 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88
x: 7 open: 79 open: 88 open: 82 open: 80 open: 88 open: 82 open: 80 open: 88 open: 82

, 👍-1

Обсуждение

Ничто из этого не решает проблему, и, как я сказал в коде, я поместил туда второй и третий touchReads в качестве попытки решения. Он будет делать то же самое независимо., @Adam

Запустите программу без второго и третьего чтения, и вы увидите, что она выводит то же самое. Я положил туда второй и третий touchReads как попытку решения. Он будет делать то же самое независимо., @Adam

Это упрощенная программа. Я не могу это вынести. Если он читает ниже 50, он выполняет одно действие. Если он читает выше 50, он выполняет другое действие. Следовательно, необходимо найти реальное решение, а не просто коренным образом изменить упрощенную программу., @Adam

хорошо, вернемся к началу... я только что понял, что это проблема XY... вы думаете, что удаление 2-го и 3-го показаний решит вашу неуказанную проблему, поэтому вы спрашиваете об удалении показаний... пожалуйста, спросите о проблема, которую вы пытаетесь решить, а не о вашем решении проблемы, @jsotola

ФФС. Проблема * заключается * в удалении второго и третьего чтения., @Adam

что вы имеете в виду под "удалить"? ... почему вы не можете просто игнорировать показания?, @jsotola

«Проблема в удалении второго и третьего показаний». ... нет, проблема в том, почему вы пытаетесь удалить показания, @jsotola

Вы говорите, что касались провода 3 раза, почему так много показаний ниже 50??! В вашем коде нет «второго и третьего» чтения, вы просто читаете в цикле. Ваш вопрос совершенно не ясен., @Sim Son

И почему вы вызываете touchRead внутри оператора if? Значение, которое там считывается, не будет таким же, как то, которое привело к тому, что предложение if стало истинным. Вероятно, вам нужно скопировать возвращаемое значение в переменную вне if else и работать с этим значением. Но я понятия не имею, решит ли это вашу проблему, потому что я этого не понимаю., @Sim Son