资料介绍
描述
加速
电子纸屏幕特别适合显示时间较长后才发生变化的内容。所以我认为时钟非常适合这款 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次下载
- 显示器维修大全 114次下载
- DisplayX显示器测试精灵下载 2次下载
- 电子纸显示技术的介绍及其在IoT中的应用 13次下载
- 新应用的电子纸显示器之间现在和2022驱动的复合年增长率为13.6% 11次下载
- 显示器_ 汽车 71次下载
- 基于S1D13521的电子纸阅读器的设计 129次下载
- 电子纸显示器(Electronic paper Display)的介绍 72次下载
- 显示器单元电路原理 1059次下载
- 液晶显示器的应用,液晶显示器技术(电子书)
- 字符型LCD显示器的应用和例程 1669次阅读
- 工业显示器和普通显示器的区别 5391次阅读
- 基于钻井深度显示器和带有Arduino支持的7段显示器设计 2670次阅读
- 数字显示器的工作原理_数字显示器电路图 3.1w次阅读
- 数码显示器的类型及应用原理与特点介绍 1w次阅读
- 数字显示器的优势及用途介绍 6920次阅读
- 表面传导电子发射显示器(SED)和场发射显示器(FED)的技术对比分析 1.2w次阅读
- 电脑硬件基础篇显示器(显示器工作原理及作用_特性参数及型号和位置) 3.2w次阅读
- 液晶显示器的优缺点_液晶显示器原理介绍 1.5w次阅读
- crt显示器还在生产吗_CRT显示比LCD显示器好在哪里 2.7w次阅读
- 平视显示器是什么_平视显示器原理_平视显示器类型 4176次阅读
- 显示器色温怎么调节 2.2w次阅读
- 曲面显示器是怎么设计的 3707次阅读
- 如何解决CRT显示器的偏色问题? 3378次阅读
- 索尼头戴显示器介绍 2965次阅读
下载排行
本周
- 1EN60335-1安规标准 中文版本
- 1.86 MB | 53次下载 | 1 积分
- 2TDA7850音频功率放大器英文手册
- 0.39 MB | 1次下载 | 免费
- 3VCC启动电路(可下载)
- 748.32 KB | 1次下载 | 免费
- 460KW电机控制器硬件驱动电路设计(可下载)
- 720.01 KB | 1次下载 | 免费
- 5LTD1534RFN N沟道增强型功率MOSFET规格书
- 1.11 MB | 次下载 | 免费
- 6LT1702SI P沟道增强型功率MOSFET规格书
- 1.04 MB | 次下载 | 免费
- 7LT1713SI N沟道增强型功率MOSFET规格书
- 0.85 MB | 次下载 | 免费
- 8反电动势到底如何来理解?(可下载)
- 1.63 MB | 次下载 | 免费
本月
- 1STM32CubeMX用于STM32配置和初始化C代码生成
- 21.90 MB | 626次下载 | 免费
- 2STM32开发板教程之STM32开发指南免费下载
- 24.88 MB | 176次下载 | 3 积分
- 3EN60335-1安规标准 中文版本
- 1.86 MB | 53次下载 | 1 积分
- 4OAH0428最新规格书(中文)
- 2.52 MB | 28次下载 | 10 积分
- 5Altium-常用3D封装库(Step)接插件篇
- 4.95 MB | 26次下载 | 免费
- 6UHV系列雷电冲击电压发生器试验装置详细说明使用
- 1.07 MB | 17次下载 | 免费
- 7介绍一些常用的电子元器件
- 3.20 MB | 8次下载 | 免费
- 8麻将机升降电路
- 0.12 MB | 6次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935124次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420063次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233088次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191371次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183336次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81583次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73814次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65988次下载 | 10 积分
评论