#include <Adafruit_ILI9341.h>
#include <Adafruit_FT6206.h>
Adafruit_FT6206 dotyk = Adafruit_FT6206();
#define CS 15
#define DC 2
#define RST 4
#define buzzer 16
Adafruit_ILI9341 tft = Adafruit_ILI9341(CS, DC, RST);
#define led_R 25
#define led_G 26
#define led_B 27
int X = 20;
int Y = 2;
int size = 100;
void setup() {
Serial.begin(9600);
tft.begin();
tft.fillScreen(ILI9341_BLACK);
tft.setRotation(0);
dotyk.begin(40);
tft.fillRect(X, Y, size, size, ILI9341_RED);
tft.fillRect(X + size, Y, size, size, ILI9341_BLUE);
tft.fillRect(X , Y + size, size, size, ILI9341_GREEN);
tft.fillRect(X + size, Y + size, size, size, ILI9341_WHITE);
tft.fillRect(X, Y + (size * 2), size, size, ILI9341_YELLOW);
tft.fillRect(X + size, Y + (size * 2), size, size, ILI9341_DARKGREY);
pinMode(buzzer, OUTPUT);
pinMode(led_R, OUTPUT);
pinMode(led_G, OUTPUT);
pinMode(led_B, OUTPUT);
digitalWrite(led_R, LOW);
digitalWrite(led_G, LOW);
digitalWrite(led_B, LOW);
}
void loop() {
if (!dotyk.touched()) {
delay(10);
return;
}
hitBox(size,0,0,0,1);
hitBox(0,0,1,0,0);
hitBox(0,size,0,1,0);
hitBox(size,size,1,1,1);
hitBox(0,size * 2,1,1,0);
hitBox(size,size * 2,0,0,0);
delay(300);
}
void hitBox(int dlzka,int vyska,bool farba1,bool farba2,bool farba3){
TS_Point p = dotyk.getPoint();
p.x = map(p.x, 0, 240, 240, 0);
p.y = map(p.y, 0, 320, 320, 0);
/* Serial.print("(");
Serial.print(p.x);
Serial.print(",");
Serial.print(p.y);
Serial.println(")");*/
if (p.x > X + dlzka && p.x < (X + dlzka + size) &&
p.y > Y + vyska && p.y < (Y + vyska + size)) {
digitalWrite(led_R, farba1);
digitalWrite(led_G, farba2);
digitalWrite(led_B, farba3);
tone(buzzer, 1000);
delay(50);
noTone(buzzer);
}
}
Loading
ili9341-cap-touch
ili9341-cap-touch