DIY USB 电流表(6):点个屏,使用 I2C 驱动 0.96 寸 OLED

DIY USB 电流表(6):点个屏,使用 I2C 驱动 0.96 寸 OLED

💡 原文中文,约5900字,阅读约需15分钟。
📝

内容提要

本文介绍了在USB电流表固件项目中使用OLED屏幕和I2C协议的方法,包括复制驱动代码、解释I2C协议工作原理、计算屏幕刷新帧率、选择和使用点阵字体以及编写字符显示驱动并进行测试。文章提供了USB电流表的开源地址。

🎯

关键要点

  • 本文介绍了在USB电流表固件项目中使用OLED屏幕和I2C协议的方法。
  • 开发环境基于Visual Studio Code + PlatformIO,已完成基本Demo验证。
  • 准备工作包括使用PlatformIO创建项目并参考开源项目CH32V003-GameConsole。
  • 从CH32V003-GameConsole项目中复制OLED和I2C相关代码。
  • I2C协议是一种常用的串行通信协议,具有占用引脚少和支持一对多通信的优点。
  • 计算屏幕刷新帧率,理想情况下可达到57.87 FPS,实际可达30 FPS以上。
  • 需要开发字符显示驱动以显示字符,选择合适的点阵字体。
  • 使用ModernDos字体,字符以二进制数据方式保存,每个字符占用16个字节。
  • 编写显示驱动代码,定义内存区域作为显示数据缓存。
  • 测试显示效果,确认字符显示驱动正常。
  • 最终USB电流表显示内容包括输入电压、当前电流、当前功率和累计消耗电量。
  • USB电流表项目资料已开源,包含固件代码、PCB生产文件和原理图。

延伸问答

如何在USB电流表项目中使用OLED屏幕?

在USB电流表项目中,可以通过复制CH32V003-GameConsole项目中的OLED驱动代码,并使用I2C协议进行通信来实现OLED屏幕的使用。

I2C协议的工作原理是什么?

I2C协议是一种串行通信协议,使用两根线进行数据传输和时钟信号同步,支持主从架构,适合短距离数据传输。

如何计算OLED屏幕的刷新帧率?

OLED屏幕的刷新帧率可以通过通信速率和屏幕分辨率计算,理想情况下可达57.87 FPS,实际可达30 FPS以上。

在USB电流表中如何选择合适的点阵字体?

可以选择ModernDos字体,适合在128x64分辨率的OLED屏幕上显示字符,确保字符清晰可读。

USB电流表项目的开源地址在哪里?

USB电流表项目的开源地址是https://github.com/ohdarling/CH32V003-USBMeter,包含固件代码和相关文件。

如何编写字符显示驱动?

需要定义内存区域作为显示数据缓存,并编写函数将字符串中的字符数据查找并写入缓存,然后发送到OLED驱动显示。

➡️

继续阅读