DIY USB 电流表(8):检测按键和绘制功率曲线

DIY USB 电流表(8):检测按键和绘制功率曲线

💡 原文中文,约4900字,阅读约需12分钟。
📝

内容提要

本文介绍了给DIY USB电流表添加记录功率曲线功能的方法,包括页面切换操作和绘制功率曲线的实现。作者展示了功率曲线的实际运行效果,并提供了开源地址和硬件相关的源文件。

🔎

延伸解读

按键交互设计:短按与长按的区分

文章通过检测按键持续时间来区分短按和长按,超过3000毫秒视为长按。这种设计在只有两个按键的情况下,实现了页面切换等基本操作,为后续功能扩展提供了交互基础。读者可以借鉴这种状态机思路,用于其他嵌入式项目的按键处理。

功率曲线记录:环形缓冲区的应用

为了记录历史功率数据,作者使用环形缓冲区存储128个数据点,每分钟记录一次,可保存约2小时的数据。环形缓冲区能自动覆盖旧数据,确保始终保留最新记录,适合内存有限的嵌入式场景。这种数据结构在数据采集系统中非常实用。

曲线绘制:坐标映射与分辨率权衡

绘制功率曲线时,需要将功率值映射到屏幕Y坐标。作者以100000mW为上限,每个像素约代表1.5W,导致分辨率较低。实际演示中改用30W上限,曲线更精细。这提示读者:根据实际测量范围调整Y轴上限,可以提升曲线显示效果。

当前局限与未来改进方向

目前数据仅保存在内存中,断电或负载停止后记录会丢失,无法用于统计充电宝输出电量。作者计划下一步增加数据保存功能,使其成为电池容量测量工具。这提醒读者,若需长期记录,应考虑加入非易失存储。

❓

Q&A

如何给DIY USB电流表添加记录功率曲线的功能?

可以通过实现页面切换和按键检测,记录负载的功率历史,并绘制成曲线来显示功率趋势。

DIY USB电流表的核心功能有哪些?

核心功能包括显示电源输入电压、负载电流、功率和累计电量。

如何实现按键状态检测?

通过定义按键状态结构体,维护按键状态,并实现按键事件检测来完成。

功率曲线的历史数据是如何存储的?

使用环形缓冲区存储历史数据,避免数据被覆盖,最多保留128个数据点。

绘制功率曲线时如何计算屏幕位置?

通过计算功率值对应的屏幕位置,使用公式将功率值映射到屏幕的Y轴坐标。

下一步计划为USB电流表增加什么功能?

计划增加数据保存功能,以防止数据丢失,便于统计充电宝的实际输出电量。

🏷️

标签

➡️

继续阅读