折腾半宿终于搞定,聊聊自己动手设计制作数字电压表的血泪史

发布时间:2026/6/27 8:44:43
折腾半宿终于搞定,聊聊自己动手设计制作数字电压表的血泪史

凌晨两点,手里这杯凉透的咖啡已经结了一层膜。

桌上散落着各种元件,焊锡味混着松香,有点呛人,但闻着踏实。

很多人问我,现在淘宝买个现成的模块几块钱,何必这么折腾?

我说,因为那是“死”的,你做出来的才是“活”的。

今天不扯那些高大上的理论,就聊聊我这次设计制作数字电压表的过程,全是干货,也有全是坑。

刚开始,我脑子一热,想上Arduino。

觉得库函数多,代码好抄。

结果呢?

精度根本不够看。

电压波动在0.01V左右晃悠,测个电池还行,测个稳压电源就歇菜。

这时候我才意识到,想要高精度的设计制作数字电压表,硬件选型是命门。

我换成了STM32,外加一个高精度的ADC芯片,比如ADS1115。

这玩意儿自带16位分辨率,噪声控制得比我的心态还稳。

布线的时候,千万别嫌麻烦。

模拟地和数字地,必须单点接地。

我一开始图省事,直接连在一起,结果屏幕上的数字跳得跟心电图似的,吓得我以为主板烧了。

后来老老实实分开走线,中间用磁珠或者0欧电阻连起来,世界瞬间清净。

还有,参考电压源是关键。

别用板载的LDO,那个温漂太厉害。

我淘了一个REF5025,2.5V的基准电压源,温度系数极低。

虽然贵了点,几十块钱一个,但为了那0.1%的精度,值。

代码方面,别指望现成的能直接用。

滤波算法得自己写。

简单的滑动平均滤波根本不够,我用了卡尔曼滤波的简化版。

虽然计算量大,STM32F103跑起来有点吃力,偶尔会卡顿,但数据平滑多了。

这里有个小插曲,我在调试中断服务程序的时候,把全局变量没加volatile修饰。

导致编译器优化后,变量值死活不更新。

查了两天bug,头发都掉了一把。

这种低级错误,新手最容易犯,我也没幸免。

显示屏我选了0.96寸的OLED,I2C接口,接线简单。

但要注意,I2C的时钟线必须加上拉电阻,10K左右。

我一开始没加,屏幕花屏,闪得眼晕。

加上电阻后,字迹清晰锐利,看着就舒服。

外壳我用了3D打印,PLA材料。

设计的时候预留了散热孔,虽然功耗不高,但心里踏实。

按键用了轻触开关,手感一般,但便宜耐用。

组装的时候,螺丝别拧太紧,塑料件容易裂。

我有一颗螺丝直接拧滑丝了,最后用AB胶固定的,有点丑,但能凑合用。

整体成本算下来,大概150块左右。

比买那种工业级的便宜多了,而且功能还能自定义。

比如我想加个历史数据记录,或者蓝牙上传,改代码就行。

这就是DIY的乐趣,它不是冷冰冰的商品,它是你的一部分。

当然,这个过程并不轻松。

焊点虚焊、代码Bug、元件炸裂,都是家常便饭。

但当你第一次看到屏幕上稳定显示3.300V的时候,那种成就感,买十个现成的都换不来。

如果你也想尝试,记住几点:

第一,原理图要画清楚,别靠记忆。

第二,调试要分模块,先测电源,再测ADC,最后测显示。

第三,别怕犯错,每一个Bug都是你进阶的台阶。

这次设计制作数字电压表的经历,让我对模拟电路有了更深的理解。

以前觉得模拟电路玄学,现在知道,只要尊重物理规律,它其实很讲道理。

别嫌麻烦,别怕出错。

动手做,才是检验真理的唯一标准。

哪怕最后做出来的东西,只能测个大概,那也是你亲手创造的。

这种粗糙的真实感,是任何完美商品都给不了的。

好了,我要去补觉了。

明天还得去实验室,看看新到的示波器探头,顺带再优化一下滤波算法。

毕竟,路还长着呢。

希望这篇碎碎念,能给你一点启发。

哪怕只是让你决定扔掉那个几块钱的模块,自己买块板子试试,也算没白写。

加油吧,创客们。

哪怕手脏点,累点,心里是亮的。