本帖最后由 dcexpert 于 2024-12-3 11:27 编辑
手里有一个使用多年的 3位半 830 万用表,功能虽然不多,但比较小巧,使用也方便,也不怕弄坏,一般情况下精度也够用,所以平时使用较多。以前觉得用 9V 电池比较麻烦,每过一段时间就需要换电池,因此改装成了锂电池供电,内部用一个小升压板升压到 9V。
现在又发现一个缺点,或者说缺少了一个功能(毕竟是很多年前的东西了),就是没有自动关机功能,每次用完都需要将转盘转到 off 位置,使用时又再次转到需要档位。因为经常使用的功能就是测电压等很少几档,每次转来转去的觉得很麻烦,因此就想给它加一个电源开关。又想到如果可以加一个自动关机功能会更方便,这样就不怕忘记关电源了。此外如果通过触摸方式开机,比用机械开关省事。
基本思路是检测触摸传感器状态,如果检测到按键动作就控制MOS导通,给升压模块供电。为了去除干扰,当按键时间在0.5-2秒之间,才认为按键动作是有效的,否则不做任何处理。这个功能简单,用任何便宜的单片机加一个触摸芯片就解决了。翻了一下箱底,从以前剩下的元件中找出了 attiny13(单片机)、ttp223(触摸传感器)、SI2301(MOS)等元件,在加上几个电阻、LED等,就组成了基本电路(这里的元件都可以替换为其它类似型号,使用它们是因为手头正好找到这些)。因为偷懒,没有画PCB制版,直接将几个元件和单片机焊接到一起,简单方便。
虽然没有画PCB,但还是先画了原理图(图中LED处需要加一个电阻)
以及设计好元件布局,方便焊接。
先焊接 RESET 的上拉电阻,一端的引脚留出作为MOS和TTP223的VCC导线。然后焊接MOS。焊接MOS前,先在单片机上贴一个双面胶,避免焊接时元件移动。
然后逐步焊接其它元件
以前改装时加的充电板,还加了一个机械开关,可以完全断开电源,这样万一触摸控制电路出了问题也可以切断电源。
升压模块,可以设置成几种不同电压。
用细铜丝折几道,当做触摸时的按键
代码使用 AVRGCC 编写,为此还重新安装了 MPLAB X IDE、XC8、AVRGCC 等软件(因为好多年都没用过了,重装系统时都没有安装)。程序中使用WDG定时器,每15ms检测一次按键状态,根据按键状态控制MOS导通,初始导通30秒,如果需要更长可以多次按下触摸键(这是为了适合我的用法,因为需要经常短时间测试一个电压)。代码比较简单,就不贴出了,重点是低功耗,计算值大约是几十个uA(没有具体测试,实际用了一周,电池电压基本没有变化)。编译后,通过 MPLAB IPE 软件和 MPLAB SNAP 仿真器下载。为了方便下载程序,用洞洞板焊接了一个编程电路,给芯片编程。
最后将编程好的模块安装到万用表,连接触摸键、电源、MOS输出等信号,
实际效果
20e023e6b3f6b777f0f922e83c103fe5