// Incluye las bibliotecas
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <XPT2046_Touchscreen.h>
#include <Servo.h>
// Crea el objeto servo
Servo servoX;
Servo servoY;
//Crea los objetos lcd y ts
#define TFT_DC 9
#define TFT_CS 10
#define TOUCH_CS 8
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
XPT2046_Touchscreen ts(TOUCH_CS);
// Variable para guardar el valor del potenciómetro
int valX;
int valY;
// Sección de configuración para ejecutar una vez
void setup() {
// Adjunta los servos al pin 9 y 3
servoX.attach(9);
servoY.attach(3);
//Enciende el LCD
tft.begin();
//Inicia el touchscreen
ts.begin();
ts.setRotation(90);
}
// Bucle para mantener el motor girando!
void loop() {
// Lee el valor del ts (valores entre 0 y 4095)
if (ts.touched()) {
TS_POINT p = ts.getPoint();
valX = p.x;
valY = p.y;
}
// Mapea el valor a un rango entre 0 y 180
valX = map(valX, 0, 4095, 0, 180);
valY = map(valY, 0, 4095, 0, 180);
// Escribe el valor al servo, moviéndolo a la posición especificada
servoX.write(valX);
servoY.write(valY);
//Muestra de las coordenadas en pantalla
tft.setCursor(0, 0):
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("X: " + String(valX));
tft.println("Y: " + String(valY));
// Espera 15 ms para que el servo alcance la posición
delay(15);
}