Bonjour,
Pour une application radioamateur je débute sur un encodeur rotatif avec écran tactile ESP32 (SB Components).
En utilisant la bibliothèque CST816S
je passe a l'état haut une sortie en faisant un double click sur l'écran tactile,
je passe à l'état bas cette sortie en faisant un appui long sur l'écran tactile,
mais je n'arrive pas a régler le temps de l'appui long (qui est par défaut d'environ 2S).
j'ai vu dans le Readme: LongPressTime :Time (in seconds) for a long press to trigger reset,
mais je ne sait pas ou le placer.
j'ai essayé "int LongPressTime=10" (pour faire un appui long de 10S)
merci de m'avoir lu, je précise que le code est en cours de développement et que codage d'un écran tactile est une première pour moi
#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_GC9A01A.h"
#include <FastLED.h>
#include <CST816S.h>
CST816S touch(38, 39, 47, 48); // sda, scl, rst, irq
int doubleClickCount = 0;
#include "A.h" //-10dB
#include "B.h" //-13dB
#include "C.h" //-16dB
int relais1 = 4; //-10dB
int relais2 = 5; //-13dB
int relais3 = 6; //-16dB
int relais4 = 7; //power
#define SPI_DEFAULT_FREQ 80000000
#define SPI_TOUCH_FREQUENCY 2500000
#define DATA_PIN 8
#define NUM_LEDS 32
const uint8_t mappedLeds[] = { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
#define BRIGHTNESS 35
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
// Define the array of leds
CRGB leds[NUM_LEDS];
#define UPDATES_PER_SECOND 150
#define TFT_CS 10
#define TFT_RST 14
#define TFT_DC 9
#define TFT_MOSI 11 // Data out
#define TFT_SCLK 12 // Clock out
Adafruit_GC9A01A tft(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
#define BackLight 46
void setup() {
/*FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(BRIGHTNESS);
tft.begin();
pinMode(BackLight, OUTPUT); // set backlight pin as OUTPUT
digitalWrite(BackLight, HIGH); // Backlight on*/
touch.begin();
touch.enable_double_click();
pinMode(relais1, OUTPUT); //sortie relais -10dB
pinMode(relais2, OUTPUT); //sortie relais -13dB
pinMode(relais3, OUTPUT); //sortie relais -16dB
pinMode(relais4, OUTPUT); //sortie relais power
}
void loop() {
if (touch.available()) {
if (touch.data.gestureID == DOUBLE_CLICK) {
digitalWrite(relais1, HIGH);
}
if (touch.data.gestureID == LONG_PRESS) {
digitalWrite(relais1, LOW);
}
}
}