设计了一个带有GC9A01圆形TFT显示屏的ESP32

  发布人:amy2025 时间:2025-08-15

这篇文章是关于一个复古风格的手表的实现,它是基于ESP32微控制器。

你喜欢复古风格的小玩意,想在你的手腕上展示一个迷你的圆形显示器吗?这个项目重新设计了一个带有GC9A01圆形TFT显示屏的ESP32,创造了一个时尚的表盘。它具有紧凑的设计,定制的3d打印外壳,以及可以为您自己的表盘设计定制的开源代码。

将GC9A01连接到ESP32

GC9A01圆形TFT通常有以下引脚(检查您的显示模块以确认标签):

•VCC -> 3.3v

•GND -> GND

•SCL (SCK) -> SPI时钟引脚(ESP32上通常为GPIO18)

•SDA (MOSI) -> SPI MOSI引脚(通常为GPIO23)

•RES ->复位引脚(任何空闲的GPIO,例如GPIO4)

•DC ->数据/命令引脚(任何空闲的GPIO,例如GPIO2)

•CS ->芯片选择(任何空闲的GPIO,例如GPIO5)

•BLK / LED -> 3.3V或GPIO如果你想软件控制背光

仔细连接每个引脚。对于SPI线(SCK, MOSI, CS),使用ESP32上的硬件SPI引脚或调整代码以匹配您选择的引脚。显示器的背光(BLK或LED)可以直接连接到3.3V或由GPIO驱动,如果你想以编程方式关闭它。

准备Arduino IDE

如果您是第一次使用ESP32编程,请将以下链接复制到file -> Preferences -> Additional Boards Manager下的Arduino IDE。

并在单板管理中安装ESP32包。

注意:要使这个项目工作,您需要使用board版本2.x。在版本3及以上的版本中,它将无法工作

闪烁单板,选择“ESP32S2 DEV Module”。按住“0”键并按复位键一次。这使得板在引导模式和COM端口应该是可见的。

接下来,您需要安装TFT_eSPI库,这只需在库管理器中搜索“TFT_eSPI”即可完成。

如果安装了库,则只能调整库目录(SketchBook目录/libraries/TFT_eSPI/user_setup.h)下显示驱动程序的user_setup.h文件。

首先复制现有的user_setup.h,删除内容并将以下行复制到文件中:

代码:

首先,我们绑定SPI通信、TFT显示和网络连接所需的库:

接下来我们定义一些变量,这些变量包含手表中心的位置,以及时间(小时、分钟、秒)和其他配置,例如NTP服务器的地址。需要PI值来计算指针在圆中的位置,因为指针的坐标在圆路径上运行。常量SSID和密码必须更改为您的网络访问数据。

在setup()中建立WiFi连接,并使用NTP服务器调用时间。然后绘制表盘。

为了使时钟形象化,当然,我们还必须创建一个带有小时标记的表盘。在这里,我们在表盘上绘制小时标记(1到12)。这是通过基于圆几何计算每个点的X和Y坐标来完成的。

现在是实际的时钟指针,它是根据当前时间显示的。draw_hour()和draw_minute()方法绘制钟面上的时针和分针。mode参数决定是绘制手还是删除手。

秒针的显示略有不同——是一个小圆圈。

date()方法的作用是:根据时针在中心点上方或下方的位置显示当前日期。

在loop()函数中,时间会不断更新,指针也会相应地重新绘制。首先,删除之前的指针位置,以避免删除整个显示。然后显示当前时间。

在loop()函数中,时间会不断更新,指针也会相应地重新绘制。首先,删除之前的指针位置,以避免删除整个显示。然后显示当前时间。

当然,该项目也可以焊接在电路板上长期运行或安装在3D打印的房屋中,这里没有限制的创造力。此外,顺时针的颜色可以很容易地改变,或者显示其他信息而不是时间。由于需要通过Internet查询NTP时间服务器的时间是否同步,因此需要有2.4GHz的无线局域网连接。



关键词: 显示屏 ESP32 GC9A01

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关电路