-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
2 changed files
with
127 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
//This example implements a simple sliding On/Off button. The example | ||
// demonstrates drawing and touch operations. | ||
// | ||
//Thanks to Adafruit forums member Asteroid for the original sketch! | ||
// | ||
#include <Adafruit_GFX.h> | ||
#include <SPI.h> | ||
#include <Wire.h> | ||
#include <Adafruit_ILI9341.h> | ||
#include <Adafruit_FT6206.h> | ||
|
||
// The FT6206 uses hardware I2C (SCL/SDA) | ||
Adafruit_FT6206 ts = Adafruit_FT6206(); | ||
|
||
// This is calibration data for the raw touch data to the screen coordinates | ||
#define TS_MINX 150 | ||
#define TS_MINY 130 | ||
#define TS_MAXX 3800 | ||
#define TS_MAXY 4000 | ||
// | ||
#define TFT_CS 10 | ||
#define TFT_DC 9 | ||
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); | ||
|
||
boolean RecordOn = false; | ||
|
||
#define FRAME_X 210 | ||
#define FRAME_Y 180 | ||
#define FRAME_W 100 | ||
#define FRAME_H 50 | ||
|
||
#define REDBUTTON_X FRAME_X | ||
#define REDBUTTON_Y FRAME_Y | ||
#define REDBUTTON_W (FRAME_W/2) | ||
#define REDBUTTON_H FRAME_H | ||
|
||
#define GREENBUTTON_X (REDBUTTON_X + REDBUTTON_W) | ||
#define GREENBUTTON_Y FRAME_Y | ||
#define GREENBUTTON_W (FRAME_W/2) | ||
#define GREENBUTTON_H FRAME_H | ||
|
||
void drawFrame() | ||
{ | ||
tft.drawRect(FRAME_X, FRAME_Y, FRAME_W, FRAME_H, ILI9341_BLACK); | ||
} | ||
|
||
void redBtn() | ||
{ | ||
tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_RED); | ||
tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_BLUE); | ||
drawFrame(); | ||
tft.setCursor(GREENBUTTON_X + 6 , GREENBUTTON_Y + (GREENBUTTON_H/2)); | ||
tft.setTextColor(ILI9341_WHITE); | ||
tft.setTextSize(2); | ||
tft.println("ON"); | ||
RecordOn = false; | ||
} | ||
|
||
void greenBtn() | ||
{ | ||
tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_GREEN); | ||
tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_BLUE); | ||
drawFrame(); | ||
tft.setCursor(REDBUTTON_X + 6 , REDBUTTON_Y + (REDBUTTON_H/2)); | ||
tft.setTextColor(ILI9341_WHITE); | ||
tft.setTextSize(2); | ||
tft.println("OFF"); | ||
RecordOn = true; | ||
} | ||
|
||
void setup(void) | ||
{ | ||
Serial.begin(9600); | ||
tft.begin(); | ||
if (!ts.begin(40)) { | ||
Serial.println("Unable to start touchscreen."); | ||
} | ||
else { | ||
Serial.println("Touchscreen started."); | ||
} | ||
|
||
tft.fillScreen(ILI9341_BLUE); | ||
// origin = left,top landscape (USB left upper) | ||
tft.setRotation(1); | ||
redBtn(); | ||
} | ||
|
||
void loop() | ||
{ | ||
// See if there's any touch data for us | ||
if (ts.touched()) | ||
{ | ||
// Retrieve a point | ||
TS_Point p = ts.getPoint(); | ||
// rotate coordinate system | ||
// flip it around to match the screen. | ||
p.x = map(p.x, 0, 240, 240, 0); | ||
p.y = map(p.y, 0, 320, 320, 0); | ||
int y = tft.height() - p.x; | ||
int x = p.y; | ||
|
||
if (RecordOn) | ||
{ | ||
if((x > REDBUTTON_X) && (x < (REDBUTTON_X + REDBUTTON_W))) { | ||
if ((y > REDBUTTON_Y) && (y <= (REDBUTTON_Y + REDBUTTON_H))) { | ||
Serial.println("Red btn hit"); | ||
redBtn(); | ||
} | ||
} | ||
} | ||
else //Record is off (RecordOn == false) | ||
{ | ||
if((x > GREENBUTTON_X) && (x < (GREENBUTTON_X + GREENBUTTON_W))) { | ||
if ((y > GREENBUTTON_Y) && (y <= (GREENBUTTON_Y + GREENBUTTON_H))) { | ||
Serial.println("Green btn hit"); | ||
greenBtn(); | ||
} | ||
} | ||
} | ||
|
||
Serial.println(RecordOn); | ||
} | ||
} | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters