一般電了時鐘是用數字(Digital Clock)作顯示,但看多了有點兒膩,便想改變成為傳統的模擬時鐘(Analog clock),圓形和有時分秒針在轉動。所以便將 DS3231 的實時時鐘(RTC / Real-Time Clock)改成模擬時鐘,都是會和 NTP/SNTP 的時鐘來調校 / 同步(Synchronization)DS3231 實時時鐘。
ESP8266 ESP-12F DS3231 模擬實時時鐘(Analog clock) |
ESP8266 ESP-12F DS3231 模擬實時時鐘(Analog clock) |
void ICACHE_FLASH_ATTR
Draw_analogclock(uint16_t hr, uint16_t min, uint16_t sec)
{
static int Xhr, Yhr;
static int Xmin, Ymin;
static int Xsec, Ysec;
gfx_Circle(Xorg, Yorg, clock_radius, 1);
gfx_Circle(Xorg, Yorg, 2, 1);
// Draw Second hands
gfx_drawLine(Xorg, Yorg, Xsec, Ysec, 0);
Xsec= Xorg+(analogclock_cos[sec]*(clock_radius-3))/100;
Ysec= Yorg-(analogclock_sin[sec]*(clock_radius-3))/100;
gfx_drawLine(Xorg, Yorg, Xsec, Ysec, 1);
// Draw Minute hands
gfx_drawLine(Xorg, Yorg, Xmin, Ymin, 0);
Xmin=
Xorg+(analogclock_cos[min]*(clock_radius-10))/100;
Ymin=
Yorg-(analogclock_sin[min]*(clock_radius-10))/100;
gfx_drawLine(Xorg, Yorg, Xmin, Ymin, 1);
// Draw Hour Hands
if (hr >11) hr=(hr-12); // hr=0~24
hr=(hr*5)+(min/15);
gfx_drawLine(Xorg, Yorg, Xhr, Yhr, 0);
Xhr= Xorg+(analogclock_cos[hr]*(clock_radius-15))/100;
Yhr= Yorg-(analogclock_sin[hr]*(clock_radius-15))/100;
gfx_drawLine(Xorg, Yorg, Xhr, Yhr, 1);
}
|
ESP8266 ESP-12F DS3231 模擬實時時鐘(Analog clock)顯示 |
2018年 2月 14日 天氣報告
氣溫:16.6度 @ 21:40
相對濕度:百分之 62%
天氣:大致多雲 ※ 祝情人節快樂,Happy Valentine's Day
您好!
回覆刪除請問Arduino 可以處理七段顯示器嗎?
想做個 HH:MM:SS / 溫度 互跳的時鐘.
當然可以 使用COM當掃描開關 網路上有教學
刪除