Как снять второе и третье показания с емкостного сенсорного датчика 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
@Adam, 👍-1
Обсуждение0
Смотрите также:
- Чтение текста построчно с SD
- Arduino создает массив Json с двойными значениями и 2 десятичными знаками
- Ошибка при компиляции программы для esp32 с Preferences.h
- Функция запуска при срабатывании
- Как настроить пул DHCP для ESP-WIFI-MESH?
- Можно ли получить значения только во время вибрации/движения с акселерометра (ADXL335/MPU6050)?
- Лучшая модель данных/концепция для хранения многодневного будильника для часов?
- Простая программа ESP to ESP reading blink не считывает входное напряжение
Ничто из этого не решает проблему, и, как я сказал в коде, я поместил туда второй и третий 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