使用 CrowPanel 3.5 英寸 HMI ESP32 显示屏和 LVGL 构建了一个功能完整的模拟 VU 表
在我的一些之前视频中,我向大家展示了如何在不同显示屏上模拟制作模拟VU表。这次我将讲解如何制作这样一个项目,但使用的是包含几乎所有元件(包括MCU)的显示模块。只需添加几个无源元件和一个LED,即可作为峰值表来工作。
具体来说,在本项目中,我使用了两个CrowPanel 3.5英寸HMI ESP32显示屏(分辨率为480x320),加上精心制作的亚克力外壳,每个显示屏的价格约为15美元。以如此低廉的价格,我们获得了一个功能出色的模块:
•一款功能强大的人机界面触摸屏,分辨率为480*320
•以ESP32-WROOM-32模块作为主控制处理器
•集成WiFi和蓝牙兼容的无线功能
•TF卡插槽,
•多个外设接口,
•USB 接口,
•扬声器接口
•电池接口等
在这个项目中,我将只使用其中的一小部分可能性。
本项目由PCBWay赞助。2026年4月15日至6月15日,PCBWay将举办KiCad PCB设计大赛,以庆祝KiCad 10的发布。KiCad 10在功能上进行了增强,并优化了工作流程。本次比赛设有三项大奖:500美元现金奖+一块Raspberry Pi 5,以及参与奖和一块Raspberry Pi Pico 2。请查阅官方规则与评选标准,提交您的创新设计作品,您可能成为我们的下一位获奖者。PCBWay与KiCad期待看到您的创意成果!
关于模块ADC输入所使用的多个被动元件,其工作原理如下。该电路设计用于处理纯交流音频输入信号。为了测量此信号,我们需要将ADC输入电平提升至某个参考电压。这通过两个100K电阻实现。此时,信号会围绕该参考点上下波动。电容可阻隔直流分量,而1K串联电阻则用于保护输入端免受过强信号的影响。模块直接由3.7V锂电池供电,或通过USB Type-C接口供电。
两个通道是相同的。这种配置的优势在于,两个独立的通道各自拥有独立的微控制器,因此完全独立,且各通道之间不会产生干扰。
关于代码的一点说明,它设计得非常灵活,便于修改,我们可以根据个人喜好自定义箭头的行为和选择LED灯。需要指出的是,在制作图形部分时,我使用了LVGL和Squareline Studio,这意味着只需修改UI文件,就能轻松创建出具有不同“外观”的VU表。
首先定义引脚,然后设置峰值阈值,当箭头穿过红色区域时,LED将被点亮。峰值保持毫秒数(PEAK HOLD MS)表示LED持续亮起的时间,单位为毫秒。adcMin 和 adcMax 根据输入信号的数值进行定义。对于标准输入信号 775mV,这些值分别为 0 和 600。
这两个命令分别定义了箭头前进和后退的速度,因此可以根据需要调整视觉效果。
看到设备在不同输入信号下的实际运行情况,感觉很不错。
最后简要总结一下。在这个项目中,我使用 CrowPanel 3.5 英寸 HMI ESP32 显示屏和 LVGL 构建了一个功能完整的模拟风格音量表。与普通的数字仪表不同,这个设备的行为类似于真正的模拟音量表——针头运动平滑,具备可调节的上升/下降速度,并能精准响应音频信号。
重要更新:在项目最后开发阶段,我遇到了一个问题。即上传代码后,位于GPIO_D连接器上的GPIO25和GPIO32引脚持续保持高电平(3V3)。这些引脚可能被某个库所使用,因此对我来说最简单的解决办法是改用其他可用的免费引脚。为此,我在微控制器上直接焊接了导线,连接到GPIO21(LED阳极)和GPIO35(输入)引脚。这些引脚在下方图片中已标注。
本文编译自hackster.io





