1. 项目概述
这个基于51单片机的双档交流电压表项目,是我去年为某工业设备厂商开发的配套测量模块。当时客户需要一款能同时测量微弱信号和常规电压的低成本解决方案,经过多轮方案对比,最终选择了这个经典架构。别看51单片机已经面世几十年,在这种中小规模测量系统中依然能打——成本控制在30元以内,精度达到1%,完全满足产线质检需求。
双档位的设计灵感来自老式万用表,但用单片机实现自动切换后,操作体验直接提升了一个维度。系统默认上电进入高压档(100mV-10V),当检测到输入低于100mV时自动切换到低压档(1mV-100mV),整个过程无需人工干预。实测在50Hz工频环境下,基本误差能控制在±0.8%以内,比市面上百元级的通用表还要精准。
2. 核心硬件设计
2.1 信号调理电路
电压测量最头疼的就是前端处理,我的方案是用两级运放搭建预处理电路:
- 第一级是阻抗匹配:采用OP07构成电压跟随器,输入阻抗提升到10MΩ以上
- 第二级是程控放大:通过CD4053模拟开关切换反馈电阻,实现x1和x100两档增益
c复制// 档位切换逻辑
if(ADC_Value < 50) { // 阈值根据实际校准调整
RELAY = 1; // 吸合继电器切到低压档
GAIN_SEL = 1; // 运放增益切到x100
} else {
RELAY = 0; // 返回高压档
GAIN_SEL = 0; // 运放增益x1
}
2.2 精密整流模块
交流测量离不开整流电路,但普通二极管整流在低压时误差惊人。我的解决方案是:
- 采用AD824仪表运放搭建精密全波整流
- 在二极管并联100K电阻补偿死区电压
- 整流后增加二阶巴特沃斯低通滤波(截止频率15Hz)
实测这个设计在10mV输入时,整流线性度仍能保持99%以上。有个容易踩的坑是:滤波电容必须选用C0G材质的,普通X7R电容的压电效应会导致读数漂移。
2.3 ADC接口设计
51单片机自带的10位ADC分辨率不够用,我外挂了TI的ADS1115(16位分辨率):
- 采样率设置为860SPS
- 配置为连续转换模式
- 通过硬件I2C接口连接
c复制
