We now have a super-fancy capacitive touch screen version of this shield. Instead of a resistive controller that needs calibration and pressing down, the capacitive has a hard glass cover and can be used with a gentle fingertip. It is a single-touch capacitive screen only!
The capacitive touch screen controller communicates over I2C, which uses two hardwire pins. However, you can share these pins with other sensors and displays as long as they don't conflict with I2C address 0x38.
To control the touchscreen you'll need one more library - the FT6206 controller library which does all the low level chatting with the FT6206 driver chip. Use the library manager and search for FT6206 and select the Adafruit FT6206 library:
Adafruit_FT6206 ts = Adafruit_FT6206();We're using hardware I2C which is fixed in hardware so no pins are defined.
Then you can start the touchscreen with
ts.begin()Check to make sure this returns a True value, which means the driver was found. You can also call begin(threshvalue) wish a number from 0-255 to set the touch threshhold. The default works pretty well but if you're having too much sensitivity (or not enought) you can try tweaking it
Now you can call
if (ts.touched())to check if the display is being touched, if so call:
TS_Point p = ts.getPoint();To get the touch point from the controller. TS_Point has .x and .y data points. The x and y points range from 0 to 240 and 0 to 320 respectively. This corresponds to each pixel on the display. The FT6206 does not need to be 'calibrated' but it also doesn't know about rotation. So if you want to rotate the screen you'll need to manually rotate the x/y points!