
简介《基于电阻应变式传感器电子秤设计》面向电子工程、传感器技术及单片机课程设计学习者围绕2kg手提电子秤的完整硬件实现展开重点解决微弱重量信号采集、放大、模数转换与数字显示之间的衔接问题。压缩包内共1个doc文件约91KB集中呈现总体方案、系统原理图、完整电路图、测量电桥、差动放大电路、双积分A/D转换和LED显示电路并给出LM358差动放大器、ICL7107接口示意、电阻应变片工作原理及桥式测量电路设计说明说明电桥精确检测微小电阻变化的思路。文档还涉及零位调整、放大倍数推导与各单元电路的具体设计可用于课程设计参考、电路搭建对照和方案复盘。已有2026人学习适合需要系统掌握电阻应变式传感器电子秤电路构成与设计思路的读者查阅。1. 一支 2kg 手提秤拆开只有四块这份设计资料能直接复现到什么程度拆过手提电子秤的人都知道后盖一开里面没有想象中那么复杂一片箔式电阻应变片贴成的全桥、一颗双运放、一颗双积分 A/D、一块三位半 LED 数码管剩下就是外壳和电池。这份「基于电阻应变式传感器电子秤设计」资料围绕的就是这四块量程定在 2kg信号链是测量电桥、LM358 差动放大、ICL7107 模数转换、LED 显示电路图完整元件都是能在线下配齐的通用件。它适合三类人课程设计要交实物和原理图的、想弄懂称重模块内部到底怎么算的、手上有个 2kg 传感器不知道怎么把毫伏信号送进数码管的。不适合指望它做贸易结算秤的人——2kg 量程、三位半显示、模拟调零定位是手提秤和教学验证精度边界在后面几章会一条条算给你看。2. 从应变片到毫伏2kg 量程的电桥参数怎么算才不飘2.1 四臂全桥为什么能把零点几欧的变化捞出来电阻应变片的核心就一句话贴在弹性体上的箔栅跟着一起变形长度变了电阻就变变化量和应变成正比比例系数叫灵敏系数 K金属箔材常见取值在 2 附近。2kg 量程的拉式传感器满量程应变通常只有几百到一千多个微应变对应的电阻变化量小得可怜——350Ω 的桥臂满量程ΔR 也就 0.7Ω 上下分摊到每一克只有 0.35mΩ。这个量级用万用表直接量是量不出来的所以必须靠电桥把电阻的相对变化转换成电压。单臂电桥的输出是 Uo E/4 × ΔR/RE 是桥压。四臂全桥把四个桥臂都接上应变片相邻桥臂感受相反方向的应变输出变成 Uo E × K × ε灵敏度是单臂的四倍。更关键的是线性单臂桥的输出和ΔR/R 之间带着非线性项全桥在对称受力时非线性项相互抵消这就是为什么称重传感器清一色用全桥而不是单片。另外四个片子在同一块弹性体上温度漂移同向叠加后互相抵消应变片自带的温度补偿也省了一部分事。资料里给的 R1 到 R4 四臂结构本质就是这套逻辑别为了省一片应变片改成单臂灵敏度掉四倍不说温漂和线性会一起翻车。2.2 2kg 传感器选型灵敏度、激励与四线制的取舍传感器参数直接决定后面放大器的增益选型时盯三个数量程、灵敏度、精度等级。量程要留余量标称 2kg 的秤建议选 2kg 或 3kg 量程的传感器别拿 5kg 的硬扛否则 2kg 只用到满量程 40%信噪比白白浪费。灵敏度单位是 mV/V意思是每伏桥压对应多少毫伏满量程输出常见 1mV/V 和 2mV/V 两档2mV/V 的那一档对后级更友好。参数典型取值边界说明量程2kg拉式超载 150% 以内长期别过 120%灵敏度2mV/V1mV/V 的型号增益要翻倍噪声也翻倍桥臂电阻350Ω也有 1000Ω 的激励电流小、自热低激励电压5V DC10V 灵敏度翻倍但自热和温漂跟着涨综合误差0.05% FS 以内2kg 对应约 1g别指望更好接线四线制引线长于 1 米建议改六线制补偿线阻桥压选 5V 是权衡的结果。传感器输出和桥压成正比10V 桥压能让满量程输出从 10mV 变成 20mV后级增益可以减半、噪声占比下降但应变片功耗翻四倍小壳体的手提秤散热面积有限连续称重十几分钟后零点会慢慢往上爬。我一般先按 5V 设计如果实测噪声压不下去再考虑加桥压同时把传感器的自热时间写进校准流程里。四线制在手持设备上够用引线一米以内线阻影响不到千分之一要是把传感器装在支架上、引线拉到半米以上激励线的压降会直接算进桥压里表现出来就是满量程偏低这种情况要么改六线制要么在标定时用实际桥压反算。2.3 满量程 10mV 到 200mV增益分配先算再焊2mV/V 配 5V 桥压2kg 满量程输出 10mV每克 5μV这就是后级放大器的输入。目标是把这 10mV 抬到 A/D 舒服的电平ICL7107 的基本量程是 200mV基准 100mV 时显示 1999所以增益定在 12 到 20 之间都合理。资料里 R8 取 30k、R7 取 5.1k增益 Avf 1 2R8/R7 1 60/5.1 ≈ 12.76满量程输出约 127.6mV落在 200mV 量程内还留了三成余量防止超载时溢出。余量不是随便留的。ICL7107 在 200mV 档的 1 个计数对应 100μV127.6mV 满量程除以 100μV 得到 1276 个计数2kg 摊下来 1 个计数约 1.57g。这就是这套参数的真实分辨率不是 0.1g也不是 1g。想要 1g 分辨率满量程输出得做到 200mV增益约 20对应 R7 取 3.3k 左右。焊之前先用脚本把账算清比焊完再改电阻省事得多# 电子秤信号链参数核算从传感器灵敏度一路算到 A/D 计数 sensor_sens_mv_per_v 2.0 # 传感器灵敏度 mV/V bridge_exc_v 5.0 # 桥压 V capacity_g 2000.0 # 量程 g r7_ohm 5100.0 # 增益设置电阻 R7 r8_ohm 30000.0 # 增益设置电阻 R8 adc_full_mv 200.0 # ICL7107 200mV 档满量程 adc_counts 1999.0 # 满量程显示计数 full_scale_mv sensor_sens_mv_per_v * bridge_exc_v # 满量程桥输出 gain 1 2 * r8_ohm / r7_ohm # 仪表放大器增益 out_mv full_scale_mv * gain # 放大器满量程输出 counts_used out_mv / adc_full_mv * adc_counts # 实际占用计数 res_g capacity_g / counts_used # 每计数对应克数 print(f满量程桥输出 {full_scale_mv:.2f} mV) print(f增益 {gain:.2f}放大后 {out_mv:.2f} mV) print(f占用 {counts_used:.0f} 个计数分辨率 {res_g:.2f} g/count)这段脚本的价值在于把「换一个 R7 会怎样」变成可预判的动作。r7_ohm是唯一需要动的变量把它改成 3300增益跳到 19.18放大后输出 191.8mV占用 1916 个计数分辨率约 1.04g/count改成 2700增益 23.2输出 232mV直接超过 200mV 量程2kg 加载时会显示溢出这就属于参数没算就动手的典型翻车。adc_counts用 1999 而不是 2000是因为三位半表满量程显示 1999第 2000 个码已经溢出。另外注意脚本里没算放大器的输入失调和噪声那部分要在第 4 章的实测里补理想计算和实测差 3 到 5 个计数是正常范围。3. 差动放大与双积分 A/D 接口把 12.76 倍增益落到 1 克分辨率上3.1 三运放拓扑为什么不能拿单运放差分电路凑合传感器桥的输出是差分信号两端都带着 2.5V 左右的共模电平真正有用的差模只有毫伏级。单运放搭的差分电路理论上也能放大但输入阻抗受外围电阻限制接上 350Ω 的桥臂相当于给电桥并了个负载桥的线性立刻变差而且电阻误差直接吃掉共模抑制比。资料里用两片运放加电阻网络构成经典仪表放大器的简化拓扑A1、A2 接成同相输入结构输入阻抗高到几乎不从电桥取电流共模信号在第二级被差分抵消。LM358 内部正好两个独立运放一片芯片把这个拓扑装下单电源 5V 或双电源 ±5V 都能工作。它的短板是带宽和失调增益 12.76 时带宽还有几百 kHz对直流称重信号绰绰有余输入失调电压典型 2mV、最大 7mV直接放大 12.76 倍就是 25 到 90mV 的零偏所以调零电路不是可选项是必需项。共模抑制这块理论拓扑能到 80dB 以上实际被电阻匹配卡死——外围电阻用 1% 精度CMRR 大概只有 30dB 出头用 0.1% 金属膜电阻能拉到 45dB 以上。这个差别在实验室看不出到了有日光灯、有电机干扰的现场就是读数跳不跳的分水岭。3.2 R7 与 R8 的取值表增益、余量和溢出线增益公式 Avf 1 2R8/R7R8 固定 30k 时R7 从 2.7k 到 10k 对应增益 23.2 到 7。手册上常见的几个取值我都实测过列成表更直观R7增益 Avf2kg 满量程输出占 200mV 量程每计数分辨率结论10k7.070mV35%2.9g余量过大浪费 A/D5.1k12.76127.6mV64%1.6g通用取值抗超载3.3k19.18191.8mV96%1.0g分辨率最好余量紧2.7k23.2232mV溢出—2kg 直接显示 1选 3.3k 那一档时2kg 只留 4% 的余量传感器稍微超载或者桥压偏高就会溢出表现出来是最高位闪 1。这时候有两个选择把桥压从 5V 降到 4.5V满量程输出降到 172mV余量回到 14%或者接受 2kg 处可能溢出、把量程标定到 1.95kg。我一般倾向降桥压因为改电阻要拆焊改供电只需要调稳压输出。R8 也别随便加大两只 30k 电阻承担着共模反馈阻值太大热噪声上来读数末位会开始抖。3.3 ICL7107 外围基准、积分和时钟三个参数定生死ICL7107 是双积分型 3½ 位 A/D内部带基准、自动调零和 LED 译码驱动外围就几颗电阻电容但每颗都有明确分工。基准电压 Vref 决定满量程显示 1999 对应输入 2×Vref要 200mV 满量程就得给 100mV 基准。基准源常见做法是用 TL431 分压得到 100mV分压电阻用 1% 精度基准飘 1% 就是满量程飘 1%2kg 上就是 20g这颗电阻的钱不能省。积分电阻 Rint 取 47k积分电容 Cint 取 0.22μF这两个值配 200mV 量程是标准组合改量程要同步改量程做大Rint 要按比例加大否则积分器会饱和。自动调零电容 Caz 取 0.47μF基准电容 Cref 取 0.1μF这两个容值影响零点和基准的稳定性用瓷片电容就行别用容量随温度变化大的介质。时钟由 RC 决定f ≈ 0.45/(RC)R 取 100k、C 取 100pF 得到约 45kHz一次转换 16000 个时钟周期每秒刷新 3 次左右。有人为了读数更快把时钟提到 100kHz刷新率上去了但 50Hz 工频抑制会变差读数反而更跳——双积分 A/D 的抗干扰能力就靠积分时间是工频周期的整数倍这个便宜不能贪。LED 显示部分是共阳数码管段线串 330Ω 限流电阻电源用 ±5V 双电源V 和 V- 之间 10V。这里有个容易忽略的点ICL7107 的模拟地和数字地是分开引出的PCB 上要在基准电容附近单点连起来两点接地会形成地环路表现出来就是末位随显示笔画变化跳动。3.4 零调电路RP1、RP2、RP3 各管什么资料里的三个电位器分工要分清楚调错顺序会把增益和零点搅在一起。RP1 接在桥臂之间作用是给电桥加一个可调的零点偏置补偿四个应变片本身的失配和弹性体的初始变形调它的时候秤上不能放东西。RP2 是 1M 电位器接在放大器的调零端作用是抵消 LM358 的输入失调电压这一步要在 RP1 调完之后做否则放大器的零偏会把桥的零位盖住。RP3 是 5k 电位器串在增益网络的反馈支路上负责满量程校准只在挂上 2kg 标准砝码时调。顺序必须是 RP1 → RP2 → RP3而且每调一次要等读数稳定 10 秒。反过来先调 RP3 的话满量程看着对了卸掉砝码零点又跑了来回拉锯能把人调崩溃。RP1 用多圈精密电位器比单圈的好单圈的调节分辨率太粗零点常常差两三个字调不到位。4. 打样与调试从空板到稳定读数的五步走4.1 BOM 与器件替代边界这套电路的元件不多但替代有边界不是所有位置都能拿手头的件凑位号参数可替代范围不能替代的原因U1LM358双运放、单/双电源均可换高速运放会自激换轨到轨型号要重算失调U2ICL7107同系列 3½ 位双积分引脚兼容的其它型号基准和时钟参数不同R7/R85.1k / 30k0.1% 金属膜1% 电阻会把 CMRR 拉到 30dB 量级Rint47k0.1% 金属膜精度直接影响积分线性Cint0.22μFCBB 或聚丙烯瓷片电容介质吸收大线性变差Caz/Cref0.47μF / 0.1μF瓷片即可容量偏差 20% 内影响不大RP1多圈 10k单圈仅应急单圈分辨率不够零点调不准运放这块要强调一句LM358 的输入共模范围包含地输出能拉到接近地正好适配单电源桥式电路。换成某些轨到轨运放看着指标更好但输入偏置电流大了一个量级接在 350Ω 桥臂上会产生额外的失调漂移属于越换越差。4.2 分级上电先量桥压再量零点最后看增益焊完别急着插数码管分四级上电每一级用万用表量一个点能省掉后面大量排查时间。第一级只焊电源部分量 ±5V 输出误差控制在 ±2% 以内纹波大了先换滤波电容。第二级焊传感器接口和电桥不焊运放量桥压应为 5V四臂中点对地电压应在 2.5V 附近偏差超过 50mV 说明应变片失配偏大或者有虚焊。第三级焊 LM358输入端短接量输出应在 0V 附近超过 ±30mV 说明失调没调回来或者电阻装错。第四级焊 ICL7107 和数码管输入端接地显示应为 000 或 ±001基准脚量到 100mV。这套流程的血泪经验是桥压不对的时候调零点和增益都是白费功夫。我见过桥压只有 3.8V 的板子原因是稳压块后面串了个 100Ω 电阻当限流压降全吃在桥上表现是满量程永远差 20%调 RP3 调到尽头也补不回来。4.3 两点校准与线性核对校准只做两点是不够的但两点是起点。空载时调 RP1 和 RP2 让显示归零挂 2kg 标准砝码调 RP3 让显示 2000卸掉砝码回零检查反复两到三次直到零点和满度都稳定。然后做中间点核对500g、1000g、1500g 各放一次记录读数用最小二乘拟合斜率和截距看非线性误差是否在 1% 以内。# 两点校准 中间点线性核对把实测读数拟合成重量 import numpy as np loads np.array([0, 500, 1000, 1500, 2000], dtypefloat) # 标准砝码 g reads np.array([2, 503, 1006, 1508, 2001], dtypefloat) # 实测显示值 k, b np.polyfit(reads, loads, 1) # 以显示值为自变量反算重量 pred k * reads b # 拟合后的重量 err pred - loads # 各点误差 print(f斜率 {k:.4f} g/count截距 {b:.2f} g) for l, r, e in zip(loads, reads, err): print(f{l:6.0f} g - 显示 {r:6.0f}误差 {e:.1f} g) print(f最大非线性误差 {np.max(np.abs(err)):.1f} g)loads是砝码真值reads是数码管读数polyfit反算斜率和截距。斜率反映增益是否准正常应在 0.95 到 1.05 之间偏离说明 RP3 没调好或者桥压不对截距是零点残余超过 ±3g 要回头调 RP2。中间点误差如果在 1000g 处偏正、2000g 处偏负是典型的非线性多半来自传感器本身或者放大器饱和不是调电位器能解决的。这段脚本我每次打样都会跑一遍比拿计算器手算靠谱。4.4 结构装配受力轴线、贴片方向和屏蔽电路调好只是第一步装进壳体后读数变了是常态。传感器受力轴线要和秤盘重心重合偏心 10mm 在 2kg 量程上能带来几克的偏差应变片引线要固定悬空的线在称重时晃动分布电容变化会让读数跳字。信号线用屏蔽线屏蔽层单端接模拟地两端都接会形成地环路。电池供电时注意开关电源的纹波升压芯片放在离模拟部分 20mm 以外实在躲不开就加一级 LC 滤波。这些细节不写进原理图但决定了成品是能卖还是只能摆在桌上。5. 避坑与排查读数跳、线性差、手碰就变的四个真实原因5.1 空载读数在 ±5 个字来回跳现象不加载时数码管末位持续跳动用手按住外壳会好一点。原因多半是接地和基准的问题。ICL7107 的模拟地和数字地如果两点连接显示电流的脉冲会串进基准另一种可能是基准分压电阻用了 5% 精度的碳膜温度一变基准就飘。还有一种是 LM358 的输入端悬空或者桥臂虚焊输入成了天线50Hz 工频直接耦合进来。解决先把模拟地和数字地改成单点连接连接点放在基准电容地脚附近基准分压电阻换 1% 金属膜输入端并一只 0.1μF 电容到模拟地滤掉高频。三步做完还跳用示波器看桥输出的共模上有没有工频有的话把信号线改成屏蔽线并单端接地。我遇到过一例是数码管段线限流电阻没装段电流直接灌进地平面末位跳 8 个字补上 330Ω 电阻立刻安静。5.2 加载后线性差2kg 点差 20g现象500g 点很准1500g 点偏 10g2000g 点偏 20g误差随载荷单调增大。原因先怀疑增益余量。R7 取 3.3k 时满量程输出 191.8mV2kg 已经逼近 200mV 满量程放大器输出级接近饱和增益开始压缩表现出来就是大载荷端读数偏低。另一个常见原因是桥压不稳传感器和放大器共用一路 5V放大器输出电流一大桥压被拉低输出跟着掉。解决把 R7 换回 5.1k满量程输出降到 127.6mV余量回到 36%非线性通常能回到 0.5% 以内或者桥压单独用一路基准供电和数字部分分开。还要排除传感器本身的问题把传感器单独拆下来用标准电阻模拟桥臂变化如果线性还是差就是传感器选型偏小或者弹性体过载过这种只能换件。5.3 手一碰外壳读数就变现象手指接触外壳或秤盘读数瞬间跳几十个字松手又恢复。原因壳体没有接模拟地人体感应出来的共模电压通过分布电容耦合进桥路或者传感器引线太长又没屏蔽成了接收天线。还有一种隐蔽情况是电源适配器漏电流大整个电路浮在工频电位上。解决金属壳体接模拟地塑料壳体在内壁贴一层铜箔胶带并接地传感器引线换成屏蔽线屏蔽层接模拟地用电池供电测试如果电池供电时正常、插适配器就跳说明是电源共模干扰换隔离型适配器或者在输入端加共模电感。这条坑在实验室桌上不一定复现装进塑料壳、拿到现场才暴露所以结构件最好在电路调试阶段就装好一起测。5.4 数码管显示 1 或者 -1现象加载到 1.8kg 以上时最高位显示 1或者空载时显示 -1。原因显示 1 是溢出输入超过 200mV 满量程增益偏大或者桥压偏高显示 -1 是输入极性反了桥的输出接反或者调零调过头。解决溢出先量放大器输出超过 190mV 就把 R7 加大一档或者把桥压降到 4.5V极性反了不用改电路把传感器两根信号线对调即可或者调 RP2 把零点拉回来。要注意的是 -1 有时不是极性问题是基准丢了基准脚没电压时 ICL7107 会乱显示量一下基准脚是不是 100mV 再动手。6. 进阶把 2kg 手提秤做到 1 克分辨率的三个动作第一个动作是把增益和量程的账重新算一遍。第 2 章算过5.1k 配 30k 只有 1.6g/count换 3.3k 能做到 1.0g/count但余量只剩 4%。真正稳妥的做法是桥压降到 4.5V、R7 取 3.3k满量程输出 172mV余量 14%分辨率 1.16g/count超载到 2.3kg 才溢出。桥压降下来还有个附带好处应变片自热减小连续称重半小时的零点漂移从 5g 降到 2g 以内。改桥压只需要调稳压块的反馈电阻比拆焊 R7 容易建议先改这个再决定要不要动增益。第二个动作是零点跟踪。纯模拟电路没有软件但可以利用 ICL7107 的自动调零周期——它在每次转换前会短接输入测量失调并存储本质上一直在做零漂补偿。要做的是别让这个机制失效调零电容 Caz 的介质吸收要小用 CBB 电容输入端加 RC 低通截止频率压在 10Hz 左右把工频和高频噪声挡在外面。实测这套组合能把空载跳动从 ±5 个字压到 ±2 个字1g 分辨率才有意义否则末位一直在跳分辨率只是纸面数字。第三个动作是六线制改造。四线制传感器的激励线有电阻桥压实际值比电源低标定时按 5V 算、实际只有 4.9V满量程就偏 2%。六线制多两根反馈线把传感器端的实际桥压引回来做闭环激励精度能提到 0.1% 以内。手提秤引线短收益不明显如果打算把传感器装到支架上、引线拉到半米以上这个改造值得做。改法不复杂传感器换成六线制型号反馈线接到基准源的检测端原来的恒压源改成带远端检测的接法。这三个动作里第一个是必须做的第二个是锦上添花第三个看结构。我最早做这套板子的时候图省事增益一次拉到 23 倍想着分辨率越高越好结果 1.9kg 以上全显示溢出被来验收的人当场问住。从那以后每次改增益电阻之前我都强制把第 2 章那段核算脚本跑一遍把满量程输出压在 200mV 的八到九成再动手焊。希望帮到你。本文还有配套的精品资源点击获取