Source: https://eldesvandejose.com/2016/04/23/la-libreria-touchscreen/?upm_export=html
Timestamp: 2020-02-23 11:54:29+00:00

Document:
LA LIBRERÍA TouchScreen : Recursos para programadores : https://eldesvandejose.com
Export date: Sun Feb 23 11:54:28 2020 / +0000 GMT
El constructor de esta clase tiene la siguiente sintaxis genérica:
TouchScreen objetoTACTIL = TouchScreen (XP, YP, XM, YM, Res);
XP. Coincide con el pin marcado como LCD_D6 en la pantalla TFT y que, en el caso de usar una pantalla de tipo shield que encaje en Arduino Uno, como vemos en el artículo 17, coincide con el pin digital 6.
YP. Coincide con el pin marcado como LCD_WR en la pantalla TFT y que, en el caso de usar una pantalla de tipo shield que encaje en Arduino Uno, como vemos en el artículo 17, coincide con el pin analógico A1.
XM. Coincide con el pin marcado como LCD_RS en la pantalla TFT y que, en el caso de usar una pantalla de tipo shield que encaje en Arduino Uno, como vemos en el artículo 17, coincide con el pin analógico A2.
YM. Coincide con el pin marcado como LCD_D7 en la pantalla TFT y que, en el caso de usar una pantalla de tipo shield que encaje en Arduino Uno, como vemos en el artículo 17, coincide con el pin digital 7.
Res. Es un valor que coincide con la resistencia medida entre los pines LCD:D6 y LCD_RS de la plaquita de la TFT, tal cómo se detalla en el artículo 17.
Un ejemplo típico de uso de este constructor sería el siguiente:
int const YP = A1;
int const XM = A2;
int const YM = 7;
int const XP = 6;
TouchScreen objetoTACTIL = TouchScreen(XP, YP, XM, YM, 322);
EL MÉTODO getPoint()
Detecta la pulsación (o no pulsación) de la pantalla táctil, devolviendo, a su vez, un objeto TSPoint que contiene las coordenadas x, y y z de la pulsación, si se estaba pulsando la pantalla en el momento de ejecutarse el método. La sintaxis obedece al siguiente esquema:
TSPoint pulsacion = objetoTACTIL.getPoint();
El objeto pulsacion tiene tres propiedades a las que se puede acceder mediante pulsacion.x, pulsacion.y y pulsacion.z, cuyo valor varía entre 0 y 1023, ya que se trata de una entrada analógica.
Si pulsacion.z vale 0, significa que no se estaba pulsando en el momento de la lectura. Si vale 1023 significa que estamos a punto de taladrar la pantalla con el dedo. Debemos ser comedidos para no dañar la pantalla (ni el dedo).
Si hay una pulsación en el momento de la lectura, los valores pulsacion.x y pulsacion.y tendrán valores entre 0 y 1023, dependiendo de las coordenadas de la pulsación. En nuestros ejemplos usamos una pantalla de 240 píxeles de ancho y 320 de alto, por lo que deberemos mapear los valores recibidos para obtener las coordenadas en píxeles.
Coord_X = map (pulsacion.x, 1023, 0, objetoTFT.width(), 0);
Coord_Y = map (pulsacion.y, 1023, 0, objetoTFT.height(), 0);
Atención. En algunos modelos de pantallas, la lectura se efectúa de forma inversa a lo que nos dice la lógica de modo que, en el eje horizontal, el valor 0 indica la derecha y el valor 1023 la izquierda; lo mismo ocurre en el eje vertical, donde el valor 0 se refiere a la parte inferior y el 1023 a la superior. Si este es el caso de tu pantalla, deberás modificar el mapeado, para leer los datos correctamente, así:
Coord_X = map (1023 - pulsacion.x, 1023, 0, objetoTFT.width(), 0);
Coord_Y = map (1023 - pulsacion.y, 1023, 0, objetoTFT.height(), 0);
Además, teniendo en cuenta que las pantallas más económicas no dan siempre mucha precisión, es mejor que hagas pruebas por si tienes que alterar estos valores. Guiate por el sketch del artículo 17.
Post date: 2016-04-23 12:10:54
Post date GMT: 2016-04-23 12:10:54
Post modified date: 2016-10-06 09:27:26
Post modified date GMT: 2016-10-06 09:27:26

References: artículo 17
 artículo 17
 artículo 17
 artículo 17
 artículo 17
 artículo 17