LA LIBRERÍA TouchScreen

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Esta librería se emplea para la gestión del panel táctil de las pantallas TFT. Permite detectar las pulsaciones y las coordenadas de las mismas. Te la puedes descargar en este enlace. Esta es una de las más sencillas de manejar. Aparte del constructor, sólo cuenta con un método.

EL CONSTRUCTOR

El constructor de esta clase tiene la siguiente sintaxis genérica:

TouchScreen objetoTACTIL = TouchScreen (XP, YP, XM, YM, Res);

Los parámetros son los siguientes:

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.

 

     

3 comentarios:

  1. Pingback: ARD17 – Pantalla táctil TFT » eldesvandejose.com

  2. Pingback: essayforme

    • Yes, you’re right.
      Intenet Explorer is a confictive browser for a lot of pages, web apps, and many more.
      You should use an EverGreen browser, such as Firefox, Chrome or Safari.
      Noone should use IE but just for downloading a real browser. 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *