#include<Adafruit_GFX.h>
#include <SPI.h>
#include <Adafruit_ILI9341.h>
#define tftDC 49
#define tftCS 53
#define sygnal A0
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
const double Pi = 3.14;
Adafruit_ILI9341 tft = Adafruit_ILI9341(tftCS, tftDC);
void setup() {
tft.begin();
tft.setRotation(3);
Serial.begin(9600);
//Serial.println(tft.width());
//Serial.println(tft.height());
// put your setup code here, to run once:
/* tft.fillScreen(GREEN);
tft.setRotation(3); //dla mnie najlepiej zaminic y i x miejscami
tft.fillRect(0,0, 10, 10, RED);
tft.fillRect(0,230, 10, 10, BLACK);
tft.fillRect(tft.width()/2, tft.height() - 10, 10, 10, BLUE);
tft.fillRect(230,310, 10, 10, YELLOW);
tft.setCursor(0,0);
tft.setTextSize(2);
tft.setTextColor(RED);
tft.print("EEEEEEE");*/
//setScreen();
}
void loop() {
// put your main code here, to run repeatedly:
int cisnienie = analogRead(sygnal);
//double nachylenie = cisnienie/1023*Pi;
setScreen(cisnienie/1023*Pi);
}
void setScreen(double radian)
{
int width = 40;
int length = tft.width()/2; // długość wskazówki
int initialX = tft.width()/2;
int initialY = tft.height() - width/2;
tft.fillScreen(WHITE);
tft.fillCircle(initialX, initialY, length, GREEN);
tft.fillCircle(initialX, initialY, length - 20, WHITE);
//double radian = rad;
//Serial.println(length);
Serial.println(sin(radian));
Serial.println(cos(radian));
double endXX = length*cos(radian);
double endYY = length*sin(radian);
double X1 = (width/2)*cos(radian - Pi/2);
double Y1 = (width/2)*sin(radian - Pi/2);
int endX = initialX - endXX + 0.5;
int endY = initialY - endYY + 0.5;
int X11 = X1 + 0.5;
int Y11 = Y1 + 0.5;
Serial.println(endX);
Serial.println(endY);
tft.fillTriangle(initialX - X11, initialY - Y11, initialX + X11, initialY + Y11, endX, endY, BLACK);
tft.fillCircle(initialX, initialY, width/2, RED);
Serial.println(radian);
}