ESP32 Bluetooth Tastatur und TFT Display, Anzeige flackert

Vermutlich löscht tft.fillRect(93, 50, 30, 20, ST7735_WHITE); den Anzeigebereich, wird keine Taste gedrückt. Leider hast Du da einen logischen Fehler, denn der Bereich darf nur gelöscht werden, wenn keine der Tasten gedrückt ist.

Beispiel: JOG X+ ist gedrückt, dann wird "X+" angezeigt. Weil aber JOG X- nicht gedrückt ist, wird die Anzeige gleich wieder gelöscht.

Eine von vielen Lösungen:

    if ((xTaster == LOW) && (plusTaster == LOW)) {         //JOG X+
      bleKeyboard.press('d');                              //
      delay(10);                                           //                         //
      tft.setCursor(93, 50);                               //
      tft.setTextSize(2);                                  //
      tft.print("X+");                                     //                                                   //
    }                                                      //
    else if ((xTaster == LOW) && (minusTaster == LOW)) {         //JOG X-
      bleKeyboard.press('a');                               //
      delay(10);                                            //
      tft.setCursor(93, 50);                                //
      tft.setTextSize(2);                                   //
      tft.print("X-");                                      //
    }                                                       //
...
    else ((xTaster == HIGH) || (plusTaster == HIGH)) {  //
      delay(10);                                           //
      bleKeyboard.release('d');                          //
      tft.fillRect(93, 50, 30, 20, ST7735_WHITE);  //
      merkerDisplay[0] = 0;                        //
    }                                              //

Alternativ kann man einen Merker setzen.

1 Like