#include <RTClib.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#define TFT_DC 9
#define TFT_CS 10
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
int s = 0, m = 0, h = 0;
RTC_DS1307 rtc;
void setup() {
Serial.begin(9600);
tft.begin();
rtc.begin();
}
void loop() {
DateTime now = rtc.now();
int x1, x2, x3, y1, y2, y3;
s = now.second(), m = now.minute(), h = now.hour();
tft.drawCircle(120, 160, 110, ILI9341_WHITE);
for (int i = 0; i < 360; i += 6) {
double radian = (i * PI) / 180;
int s_x = 120 + cos(radian) * (105 - !(i % 30) * 7);
int s_y = 160 + sin(radian) * (105 - !(i % 30) * 7);
int e_x = 120 + cos(radian) * 110;
int e_y = 160 + sin(radian) * 110;
tft.drawLine(s_x, s_y, e_x, e_y, ILI9341_WHITE);
}
double radian = ((s * 6 - 90) * PI) / 180.0;
double x = 120 + cos(radian) * 80;
double y = 160 + sin(radian) * 80;
tft.drawLine(120, 160, x, y, ILI9341_RED);
x1 = x, y1 = y;
radian = ((m * 6 + (s * 6 / 60.0) - 90) * PI) / 180;
x = 120 + cos(radian) * 105;
y = 160 + sin(radian) * 105;
tft.drawLine(120, 160, x, y, ILI9341_WHITE);
x2 = x, y2 = y;
radian = ((h * 30 + (m * 30 / 60.0) - 90) * PI) / 180;
x = 120 + cos(radian) * 75;
y = 160 + sin(radian) * 75;
tft.drawLine(120, 160, x, y, ILI9341_WHITE);
x3 = x, y3 = y;
tft.fillCircle(120, 160, 3, ILI9341_WHITE);
delay(1000);
tft.drawLine(120, 160, x1, y1, ILI9341_BLACK);
tft.drawLine(120, 160, x2, y2, ILI9341_BLACK);
tft.drawLine(120, 160, x3, y3, ILI9341_BLACK);
}