fix(touch): calibrar umbral Z a 170 para eliminar toques fantasma con sensibilidad equilibrada
This commit is contained in:
parent
db38f557a1
commit
c20e8079be
3 changed files with 7 additions and 6 deletions
|
|
@ -22,8 +22,8 @@
|
|||
|
||||
#include "XPT2046_TouchscreenSOFTSPI.h"
|
||||
|
||||
#define Z_THRESHOLD 400
|
||||
#define Z_THRESHOLD_INT 75
|
||||
#define Z_THRESHOLD 170
|
||||
#define Z_THRESHOLD_INT 100
|
||||
#define MSEC_THRESHOLD 3
|
||||
#define SPI_SETTING SPISettings(2000000, MSBFIRST, SPI_MODE0)
|
||||
|
||||
|
|
|
|||
|
|
@ -633,12 +633,13 @@ void loop() {
|
|||
// Touch / button released
|
||||
if (isTouching) {
|
||||
isTouching = false;
|
||||
|
||||
if (!longPressHandled) {
|
||||
int16_t deltaX = (int16_t)lastTouchX - (int16_t)touchStartX;
|
||||
int16_t deltaY = (int16_t)lastTouchY - (int16_t)touchStartY;
|
||||
|
||||
// Check for horizontal swipe gesture (displacement > 45px, mostly horizontal)
|
||||
if (deltaX < -45 && abs(deltaY) < 90) {
|
||||
// Balanced swipe detection: 40px displacement required, horizontal gesture
|
||||
if (deltaX < -40 && abs(deltaY) < 90) {
|
||||
// SWIPE LEFT: Page 0 -> Page 1 (Tri-Temperature Screen)
|
||||
if (fullScreenCell != -1) {
|
||||
fullScreenCell = -1;
|
||||
|
|
@ -648,7 +649,7 @@ void loop() {
|
|||
currentScreenPage = 1;
|
||||
initScreen();
|
||||
}
|
||||
} else if (deltaX > 45 && abs(deltaY) < 90) {
|
||||
} else if (deltaX > 40 && abs(deltaY) < 90) {
|
||||
// SWIPE RIGHT: Page 1 -> Page 0 (4 Quadrants)
|
||||
if (fullScreenCell != -1) {
|
||||
fullScreenCell = -1;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ bool getTouch(uint16_t *x, uint16_t *y) {
|
|||
TS_Point p = ts.getPoint(tsSoftSpi);
|
||||
|
||||
// Filter noise: require valid touch pressure and coordinates within active screen
|
||||
if (p.z < 350) return false;
|
||||
if (p.z < 160) return false;
|
||||
if (p.x < 150 || p.x > 3850 || p.y < 150 || p.y > 3850) return false;
|
||||
|
||||
int16_t tx = map(p.x, 200, 3700, 0, 320);
|
||||
|
|
|
|||
Loading…
Reference in a new issue