蒹葭苍苍,白露为霜。
所谓伊人,在水一方。

Arduino UNO 3.5寸 TFT 智能桌面面板:时钟、备忘录与电脑监控

最近用 Arduino UNO 和一块 3.5 寸 TFT 触摸屏做了一个桌面信息面板。它最初只是一个通过 USB 同步时间的电子时钟,后来逐步加入了备忘录、电脑状态监视、程序快捷启动,以及锁定和关闭 Windows 等功能。

硬件信息

  • 开发板:Arduino UNO(ATmega328P)
  • 屏幕:3.5 寸 TFT,320×480 分辨率
  • 显示驱动:ILI9488
  • 颜色格式:RGB565
  • 接口:Arduino 直插式 8 位并口屏
  • 触摸方式:电阻触摸

目前实现的功能

  • 大字体时钟:电脑端通过 USB 自动同步时间,Arduino 本地计时,秒数变化时只局部刷新,避免整屏闪烁。
  • 备忘录:在 Windows 桌面程序中输入文本并发送到屏幕显示。
  • 触摸切页:屏幕底部提供 CLOCK、MEMO、CONTR、MONIT 四个页面入口。
  • 电脑控制:可以锁定 Windows、请求关机,并启动三个由用户配置的快捷程序。
  • 关机保护:关机需要在触摸屏上二次确认,电脑端还会再次弹出 Windows 确认窗口。
  • 系统监视:显示电脑 CPU 和内存使用率,Windows 程序每两秒发送一次数据,屏幕只更新发生变化的数字。
  • 系统托盘:Windows 程序关闭或最小化后可驻留系统托盘,继续保持串口连接和数据同步。
  • 自动识别端口:程序会读取 Windows USB 设备信息,优先识别 Arduino 官方 VID,不需要手工选择 COM 口。

Windows 配套程序

项目包含一个使用 C# WinForms 编写的桌面程序。界面中可以同步时间、发送备忘录、远程切换屏幕页面,并为 APP 1、APP 2、APP 3 分别选择要启动的 EXE 或快捷方式。

程序设置会保存在当前 Windows 用户的本地应用数据目录。双击托盘图标可以恢复窗口,右键菜单可以同步时间或彻底退出。

串口通信协议

电脑与 Arduino 使用 115200 波特率的简单文本命令通信:

  • T<Unix时间戳>:同步时间
  • M<文本>:更新备忘录
  • PC / PM / PO / PS:切换时钟、备忘录、控制和监视页面
  • S<CPU>,<内存>:更新系统使用率
  • EV LOCK / EV SHUTDOWN / EV APP1 等:触摸屏向电脑发送操作事件

一个重要的硬件注意事项

这类 UNO 并口屏会占用大量引脚,其中包括 D0 和 D1,而这两个引脚同时又是 Arduino 的硬件串口 RX/TX。因此:

  • 烧录程序前需要先拔下 TFT 屏幕。
  • 烧录完成后断开 USB 电源,再插回屏幕并重新上电。
  • 串口回传可能比电脑向 Arduino 发送数据更容易受到并口总线影响。

资源占用

当前完整固件编译后使用约 82% 的 Flash 和 50% 的 SRAM。对于 Arduino UNO 来说仍可正常运行,但继续加入大型字体、图片或复杂动画时需要格外注意空间。

源码与程序

项目代码、Arduino 固件、Windows 桌面程序和中文说明已经公开在 GitHub:

ikuju/arduino-uno-3.5TFT-screen-panel

仓库中的 usb_clock 是 Arduino 主程序,pc_gui 是 Windows GUI 源码,dist 目录包含已经编译好的桌面程序。

后续计划

后续可以继续完善触摸校准、增加有限的中文字库、改善 Arduino 到电脑方向的串口可靠性,或者将开发板升级为拥有更多串口和内存的 Arduino Mega / ESP32。

赞(0) 打赏
未经允许不得转载:酷居科技 » Arduino UNO 3.5寸 TFT 智能桌面面板:时钟、备忘录与电脑监控

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

锦瑟无端五十弦,一弦一柱思华年

酷居科技联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏