資料介紹
描述
加速
電子紙屏幕特別適合顯示時(shí)間較長(zhǎng)后才發(fā)生變化的內(nèi)容。所以我認(rèn)為時(shí)鐘非常適合這款 3.7" 電子紙顯示器。
注意:該軟件處于 BETA 階段,被認(rèn)為是第一個(gè)運(yùn)行的版本。我分享它是為了讓您可以擴(kuò)展、改進(jìn)它或使用它的一部分,并使其與非常相似的項(xiàng)目兼容。
通過 SPI 接口連接到 ESP32 的顯示器由GxEPD2 庫(kù)驅(qū)動(dòng),字體由 U8g2_for_Adafruit_GFX 庫(kù)提供,其方法在 GxEPD2 的圖片循環(huán)(分頁(yè)繪圖)中工作。
時(shí)間信息從設(shè)置中的公共 ntp (網(wǎng)絡(luò)時(shí)間協(xié)議)服務(wù)器接收,然后復(fù)制到 updateTime() 中名為 timeinfo 的時(shí)間結(jié)構(gòu)(struct tm)。誠(chéng)然,我在編程方面的知識(shí)為零,因此可以更有效、更智能地對(duì)時(shí)間同步進(jìn)行編程。我使用 strftime 函數(shù)為時(shí)、分和秒生成三個(gè)字符串,然后將它們轉(zhuǎn)換回整數(shù)。一旦開始,此時(shí)的秒數(shù)就會(huì)從時(shí)鐘通常等待的分鐘數(shù)中減去,直到它將時(shí)間更新為下一分鐘并刷新顯示。這意味著假設(shè)時(shí)間正好是 11:11:50,時(shí)鐘只會(huì)等待 10 秒,然后切換到下一分鐘。
這是幾秒鐘的樣子:
?
char timeSek[3]; strftime(timeSek,3, "%S", &timeinfo); int s = atoi(timeSek); startMillis -= s * 1000;
?
此外,時(shí)間以 12 小時(shí)格式的表達(dá)式表示(除了默認(rèn)情況下以 24 小時(shí)格式顯示的完整小時(shí)數(shù))。0點(diǎn)和12點(diǎn)都印成“Twelfe o'clock”。當(dāng)然,您必須使 Words(int h, int m) 函數(shù)中的數(shù)字和單詞適應(yīng)您的語言。為了將時(shí)間信息轉(zhuǎn)換為字符串,我使用 sprintf()連接數(shù)字和其他單詞并將它們保存到全局 char 數(shù)組(在范圍內(nèi)初始化包含時(shí)間短語的 char 數(shù)組會(huì)更好嗎?)。然而,數(shù)字需要很大的閃存大小。
例子:
?
else if (m <= 30){ sprintf(words,"%s past%s", nums[m], nums[h % 12]); }
?
顯示文本的實(shí)際功能與 GxEPD2 庫(kù)的示例非常相似。請(qǐng)注意,文本始終位于中間,而 y 坐標(biāo)是字符的底部(例如“g”向下超出該 y 坐標(biāo))。由于我后來決定實(shí)現(xiàn)字體在兩種不同大小之間切換,具體取決于時(shí)間的表達(dá)時(shí)間,部分窗口將始終設(shè)置為涵蓋字體大小和顯示的完整寬度的大小。如 showClock() 所示,我確保部分窗口的坐標(biāo)是八的倍數(shù)。我不確定哪些坐標(biāo)必須符合此規(guī)則,這就是為什么我將所有坐標(biāo)四舍五入為 8 的倍數(shù)(請(qǐng)看下面的代碼)。字體 (const uin8_t) 作為指針傳遞給函數(shù) void showText(char name[], const uint8_t *font)。
坐標(biāo) (0, 0) 在左上角。Y 從上到下遞增。
在顯示時(shí)鐘()中:
?
int px = rx - r;//middlepoint-radius px = px - (px % 8);//round down to multiple of eight int py = ry - r; py = py - (py % 8); int pw = r*2;pw = pw - (pw % 8) + 8 * 2;//roundupint ph = r*2;ph = ph - (ph % 8) + 8 * 2;
?
如果您的面板不支持部分刷新,請(qǐng)將該行更改為 display.setFullWindow()。為了清潔顯示器,這種完全刷新每隔一小時(shí)就會(huì)發(fā)生一次。
為了打印模擬時(shí)鐘,我使用了 sin() 和 cos() 。所有參數(shù)均采用徑向單位。例如,分鐘時(shí)鐘指針每分鐘移動(dòng) 1/30 π ,相當(dāng)于 6 度 = 360 度/60。該庫(kù)使繪制直線和圓成為可能。
時(shí)鐘指針末端的坐標(biāo):
?
const float pi = PI float ah = (float)h * 1/6.0000000 * pi + (float)m * (1/360.0000000 * pi); float am = m * 1/30.00000000 * pi; int shx = round(sin(ah) * ((float)r-8) / 1.600); int shy = round(cos(ah) * ((float)r-8) / 1.600); int smx = round(sin(am) * ((float)r-8)); int smy = round(cos(am) * ((float)r-8));
?
我試圖使 showClock 函數(shù)具有可擴(kuò)展性,因此至少在某種程度上您應(yīng)該能夠更改圓形時(shí)鐘的位置和半徑。
當(dāng)然,這個(gè)項(xiàng)目可以用另一個(gè)與 GxEPD2 庫(kù)兼容的電子紙面板來制作。
我認(rèn)為這個(gè)項(xiàng)目的結(jié)果非常好。但是,在軟件方面還有很多需要改進(jìn)的地方。更好的解決方案還應(yīng)該具有深度睡眠功能。結(jié)合需要很少能量的電子紙技術(shù),時(shí)鐘可以在電池上運(yùn)行很長(zhǎng)時(shí)間。
我希望我能給你一些啟發(fā)。
------許可:------------------------------------
辛格杰姆
GNU 許可證:查看所有原始代碼:GxEPD2:https://github.com/ZinggJM/GxEPD2。提供使用和修改示例的庫(kù) GxEPD2 的作者
https://github.com/ZinggJM/GxEPD2/blob/master/LICENSE
---------------------------------------------- ------
奧利弗·克勞斯
BSD 許可證:查看所有原始代碼:https://github.com/olikraus/U8g2_for_Adafruit_GFX。U8g2 字體庫(kù)的作者。參見確切的 c。注意事項(xiàng):
https://github.com/olikraus/U8g2_for_Adafruit_GFX/blob/master/LICENSE
- PMIC For E Ink?Vizplex?-啟用電子紙顯示器TPS65182x數(shù)據(jù)表
- PMIC for E Ink?Vizplex?-啟用電子紙顯示器TPS6518xx數(shù)據(jù)表
- 使用部分更新的電子紙顯示器
- 如何將任何圖像上傳到電子紙顯示器
- 什么是LED顯示器?資料下載
- 顯示器技術(shù)支持手冊(cè) 31次下載
- 顯示器維修大全 113次下載
- DisplayX顯示器測(cè)試精靈下載 2次下載
- 電子紙顯示技術(shù)的介紹及其在IoT中的應(yīng)用 13次下載
- 新應(yīng)用的電子紙顯示器之間現(xiàn)在和2022驅(qū)動(dòng)的復(fù)合年增長(zhǎng)率為13.6% 11次下載
- 顯示器_ 汽車 71次下載
- 基于S1D13521的電子紙閱讀器的設(shè)計(jì) 129次下載
- 電子紙顯示器(Electronic paper Display)的介紹 71次下載
- 顯示器單元電路原理 1059次下載
- 液晶顯示器的應(yīng)用,液晶顯示器技術(shù)(電子書)
- 字符型LCD顯示器的應(yīng)用和例程 935次閱讀
- 工業(yè)顯示器和普通顯示器的區(qū)別 4945次閱讀
- 基于鉆井深度顯示器和帶有Arduino支持的7段顯示器設(shè)計(jì) 2480次閱讀
- 數(shù)字顯示器的工作原理_數(shù)字顯示器電路圖 3w次閱讀
- 數(shù)碼顯示器的類型及應(yīng)用原理與特點(diǎn)介紹 9549次閱讀
- 數(shù)字顯示器的優(yōu)勢(shì)及用途介紹 6553次閱讀
- 表面?zhèn)鲗?dǎo)電子發(fā)射顯示器(SED)和場(chǎng)發(fā)射顯示器(FED)的技術(shù)對(duì)比分析 1.2w次閱讀
- 電腦硬件基礎(chǔ)篇顯示器(顯示器工作原理及作用_特性參數(shù)及型號(hào)和位置) 3.1w次閱讀
- 液晶顯示器的優(yōu)缺點(diǎn)_液晶顯示器原理介紹 1.5w次閱讀
- crt顯示器還在生產(chǎn)嗎_CRT顯示比LCD顯示器好在哪里 2.6w次閱讀
- 平視顯示器是什么_平視顯示器原理_平視顯示器類型 4031次閱讀
- 顯示器色溫怎么調(diào)節(jié) 2.1w次閱讀
- 曲面顯示器是怎么設(shè)計(jì)的 3477次閱讀
- 如何解決CRT顯示器的偏色問題? 3255次閱讀
- 索尼頭戴顯示器介紹 2893次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多