Problemas Ttp223b y libreria u8g2

Mira el begin con todas las definiciones.

bool U8G2::begin(void)
bool U8G2::begin(uint8_t menu_select_pin, uint8_t menu_next_pin, uint8_t menu_prev_pin, uint8_t menu_up_pin = U8X8_PIN_NONE, uint8_t menu_down_pin = U8X8_PIN_NONE, uint8_t menu_home_pin = U8X8_PIN_NONE)

Estas son tus 6 posibles teclas

  • Description: Returns a key press event. The pin numbers of up to six pins must be set with the begin function.

getMenuEvent return values
U8X8_MSG_GPIO_MENU_SELECT
U8X8_MSG_GPIO_MENU_NEXT
U8X8_MSG_GPIO_MENU_PREV
U8X8_MSG_GPIO_MENU_HOME
U8X8_MSG_GPIO_MENU_UP
U8X8_MSG_GPIO_MENU_DOWN

si no las vas a usar le pones = U8X8_PIN_NONE
pero hay un par que si o si debes determinar.
UP/DOWN o al menos DOWN y un SELECT tal vez un HOME.
Hay que ver ejemplos.

Hoa hice lo siguiente:

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>
#define SensorTouch_A 5
#define SensorTouch_B 6
#define SensorTouch_C 7
#define SensorTouch_D 8

#define pinA 13
#define pinB 11
#define pinC 10

U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R0, pinA, pinB, pinC, U8X8_PIN_NONE);

uint8_t current_selection = 0;

void setup() {
  pinMode(SensorTouch_A, INPUT_PULLUP);
  pinMode(SensorTouch_B, INPUT_PULLUP);
  pinMode(SensorTouch_C, INPUT_PULLUP);
  pinMode(SensorTouch_D, INPUT_PULLUP);
  // u8g2.begin(/*Select=*/ U8X8_PIN_NONE, /*Right/Next=*/ U8X8_PIN_NONE, /*Left/Prev=*/ U8X8_PIN_NONE, /*Up=*/ SensorTouch_A, /*Down=*/SensorTouch_B , /*Home/Cancel=*/U8X8_PIN_NONE );
  u8g2.begin( SensorTouch_A,  SensorTouch_B,  SensorTouch_C,  U8X8_PIN_NONE,  U8X8_PIN_NONE,  SensorTouch_D);

}


void loop() {
 u8g2.firstPage();
  do {
    const char *nameMenu = "P R O G R A M A S";
    select_menu(nameMenu, "Configuracion\n Programas\n Otros");
  } while (u8g2.nextPage());

}

void select_menu(const char *nameMenu, const char *select_menu) {
  u8g2.setFont(u8g2_font_6x12_tf);
  current_selection = 0;

  current_selection = u8g2.userInterfaceSelectionList(
                        nameMenu,
                        current_selection,
                        select_menu);
}

y ahora directamente no funciona ningun touch, por lo que veo el constructor es U8X8 por lo que mi pantalla admite U8G2, creo que por ahi viene el problema, puede ser eso?

Encontre este ejemplo

void setup(void)
{  
  // U8g2 SH1106 Proto-Shield
  u8x8.begin(/* menu_select_pin= */ 2, /* menu_next_pin= */ 4, /* menu_prev_pin= */ 7, /* menu_up_pin= */ 6, /* menu_down_pin= */ 5, /* menu_home_pin= */ 3);

  u8x8.setPowerSave(0);
  u8x8.clear();
  u8x8.setFont(u8x8_font_chroma48medium8_r);
}

void loop(void)
{
  uint8_t e;
  u8x8.drawUTF8(0, 0, "Event Test");
  e = u8x8.getMenuEvent();
  switch(e)
  {
    case U8X8_MSG_GPIO_MENU_SELECT:
      u8x8.drawUTF8(0, 1, "Select");
      break;
    case U8X8_MSG_GPIO_MENU_NEXT:
      u8x8.drawUTF8(0, 1, "Next  ");
      break;
    case U8X8_MSG_GPIO_MENU_PREV:
      u8x8.drawUTF8(0, 1, "Prev  ");
      break;
    case U8X8_MSG_GPIO_MENU_HOME:
      u8x8.drawUTF8(0, 1, "Home  ");
      break;
    case U8X8_MSG_GPIO_MENU_UP:
      u8x8.drawUTF8(0, 1, "Up    ");
      break;
    case U8X8_MSG_GPIO_MENU_DOWN:
      u8x8.drawUTF8(0, 1, "Down  ");
      break;
  }
}

Te cuento algo que acabo de probar , quite los touch y puse pulsadore Switch y funciona perfecto, no entiendo la diferencia con los touch si no dejan de ser tambien "pulsadores"...

Puede que funcionen al revés, se te ocurrió negarlos?
Edita el post#23 como corresponde.

Lo de u8x8 no me habia dado cuenta, fue lo que extraje de la documentación.
Todo lo tenes que hacer con el objeto u8g2.
Miralo con paciencia.

Ahí modifique el post#23 , si estoy en eso tratando de pasar todo u8g2, consulta cuando me comentaste de negarlos a que te referis con eso, el touch que estoy usando es el ttp223b, esta el ttp223 que por lo que vi, podes puentear y dejarlo como normal cerrado o normal abierto, tengo entendido que el ttp223b es por soft, no se como hacerlo si a eso te referis

Cuando hablo de negarlos me refiero a esto

 if (digitalRead(SensorTouch_A) == LOW) {
    Serial.println("Tecla A");
    //current_selection = 0;
  } 

Lo tienes en high usalo con low.
Pero esto era al comienzo y esta claro que ahora hablaomos de otra cosa.

De todos modos no tengo claro en que te falla.
He determinado que debes usar los pines para mover tu u8g2 a través del procedimiento userInterfaceSelectionList y eso requiere botones o los touch.
Si con botones pulsadores funciona, repite el comportamiento con los touch

Probe lo siguiente saque los pulsadores y puse los touch sin tocar el soft y no funciona, pero si funcionan los touch cuando anulo el userInterfaceSelectionList, seguiré buscando a ver que puede ser...