Hello everyone, I am developing a project with an ESP32-2432S028R / ILI9341 and I use the TFT_Touch library to manage the touchpad.
My problem is that when I press a key the keyboard gives me another one. For example, I type “f” and it paints “a” and so on for those in the same row. Can you help me fix this?
For me to detect the buttons I had to do this:
if (touch.Pressed()) {
data->point.x = touch.Y() - 20;
data->point.y = touch.X() - 50;
}
Because otherwise the coordinates of the Touch were different from those of the TFT.
These are the parts of the program I use:
//Read the touchpad
void my_touchpad_read( lv_indev_drv_t * indev_driver, lv_indev_data_t * data )
{
uint16_t touchX = 0, touchY = 0;
if (touch.Pressed()) { // inicio touch 0, 0 Inicio tft 160, 120
data->point.x = touch.Y() - 20;
data->point.y = touch.X() - 50;
data->state = LV_INDEV_STATE_PR;
} else {
data->state = LV_INDEV_STATE_REL;
}
}
//Touch calibration
tft.setRotation( 1 );
touch.setRotation( 1 );
touch.setCal(0, 4095, 0, 4095, 320, 240, 0);
//lv keyboard design
ui_Screen1_Keyboard1 = lv_keyboard_create(ui_Screen1);
lv_obj_set_width(ui_Screen1_Keyboard1, 300);
lv_obj_set_height(ui_Screen1_Keyboard1, 120);
lv_obj_set_x(ui_Screen1_Keyboard1, 3);
lv_obj_set_y(ui_Screen1_Keyboard1, 41);
lv_obj_set_align(ui_Screen1_Keyboard1, LV_ALIGN_CENTER);
lv_obj_add_flag(ui_Screen1_Keyboard1, LV_OBJ_FLAG_FLOATING);
lv_obj_set_scrollbar_mode(ui_Screen1_Keyboard1, LV_SCROLLBAR_MODE_ACTIVE);
If you need more information or I have asked the question wrong, please let me know, as it is the first question I ask.
Thank you all.