#include <Adafruit_GFX.h> // Core graphics library
#include <SPI.h> // this is needed for display
#include <Adafruit_ILI9341.h>
#include <Wire.h> // this is needed for FT6206
#include <Adafruit_FT6206.h>
#define TFT_CS 15
#define TFT_DC 2
#define TFT_MOSI 23
#define TFT_SCLK 18
#define BOXSIZE 40
#define PENRADIUS 3
Adafruit_FT6206 ctp = Adafruit_FT6206();
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
int currentcolor;
void setup(void) {
Serial.begin(115200);
Serial.begin(115200);
Serial.println(F("Cap Touch Paint!"));
tft.begin();
if (! ctp.begin(40)) { // pass in 'sensitivity' coefficient
Serial.println("Couldn't start FT6206 touchscreen controller");
while (1);
}
Serial.println("Capacitive touchscreen started");
tft.fillScreen(ILI9341_BLACK);
tft.fillRect(0, 0, BOXSIZE*6, BOXSIZE, ILI9341_RED);
currentcolor = ILI9341_GREEN;
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("Touch the screen");
}
void loop() {
// Wait for a touch
if (! ctp.touched()) {
return;
}
//tft.fillScreen(ILI9341_BLACK);
// Retrieve a point
TS_Point p = ctp.getPoint();
p.x = map(p.x, 0, 240, 240, 0);
p.y = map(p.y, 0, 320, 320, 0);
Serial.print(p.x);
Serial.print(" , ");
Serial.println(p.y);
if (((p.y-PENRADIUS) > BOXSIZE) && ((p.y+PENRADIUS) < tft.height()))
{
tft.fillCircle(p.x, p.y, PENRADIUS, currentcolor);
tft.setCursor((p.x-40),(p.y));
tft.print(p.x);
tft.print(", ");
tft.print(p.y);
}
}