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