2. 传感器接口电路:惠斯通电桥、仪表放大器、ADC选型与信号调理

好,咱们进入第二个核心环节。传感器选好了,压力信号也有了,但问题来了——这个信号太微弱了,而且噪声很大。你想想看,牙刷手柄里那个小小的压阻式压力传感器,满量程输出可能才几十毫伏。直接送给ADC?那基本就是噪声里捞信号,捞不着的。

所以我们需要一套完整的信号链:惠斯通电桥 → 仪表放大器 → ADC。这一节,我就把这几个环节掰开揉碎了讲清楚。

2.1 惠斯通电桥:把电阻变化变成电压

压力传感器内部,说白了就是几个压敏电阻。压力一变化,电阻值就跟着变。但电阻变化本身没法直接测量,我们需要把它转换成电压信号。惠斯通电桥就是干这个活的。

经典的四臂电桥,四个电阻接成菱形。其中两个是敏感电阻(R1、R3),两个是参考电阻(R2、R4)。当压力为零时,电桥平衡,输出电压Vout = 0。压力一上来,R1和R3的阻值变化方向相反,电桥失衡,Vout就有了。

公式很简单:

Vout = Vref × (ΔR / R) × (1 / 2)

举个例子,如果Vref = 3.3V,ΔR/R = 1%,那Vout ≈ 16.5mV。嗯,就这么点。所以后面必须放大。

关键点:电桥的激励电压Vref要稳定。我见过不少项目,Vref直接用电池电压,结果电池一掉电,测量值就飘了。我个人习惯用精密基准源,比如REF3033,温漂低,长期稳定。

2.2 仪表放大器:把微伏信号放大到ADC能用的范围

16.5mV的信号,直接给ADC?不行。大多数MCU内置的ADC,参考电压3.3V,分辨率12位,一个LSB大约0.8mV。16.5mV也就20个LSB,精度太差了。所以必须放大。

普通运放行不行?理论上可以,但实际不行。为什么?因为共模噪声。电桥输出的信号是差模信号,但上面叠加了很大的共模电压(比如Vref/2)。普通运放对共模抑制比(CMRR)不够,放大差模信号的同时,共模噪声也被放大了。结果就是信号淹没在噪声里。

仪表放大器就是专门解决这个问题的。它的CMRR通常能做到100dB以上,对共模噪声的抑制能力极强。

常用的型号:

  • AD620:经典款,一个外部电阻设定增益,增益范围1~1000。我最早做项目就用它,皮实耐用。
  • INA333:低功耗、零漂移,适合电池供电的牙刷。静态电流才50μA,非常省电。
  • INA826:性价比高,带宽够用,适合消费电子。

增益怎么算?以AD620为例:

G = 49.4kΩ / RG + 1

如果RG = 1kΩ,G ≈ 50.4倍。16.5mV放大后约830mV,刚好在ADC的输入范围内。

我的经验:增益不要一次设太大。我曾经在一个项目里,为了省一级放大,直接把增益设到500倍。结果运放自己就振荡了,输出波形像心电图。后来老老实实分两级放大,第一级50倍,第二级10倍,稳得很。

2.3 ADC选型:分辨率、采样率、输入范围

信号放大好了,接下来就是数字化。ADC选型主要看三个参数:

参数 要求 说明
分辨率 ≥12位 10位也能用,但精度差。12位是底线,16位更好。
采样率 ≥100Hz 刷牙时压力变化频率不高,100Hz足够。但为了滤波,建议500Hz以上。
输入范围 0~Vref 确保放大后的信号不超出ADC的输入范围,否则会削顶。

实际项目中,我常用两种方案:

  • MCU内置ADC:比如STM32G0系列,12位,采样率1Msps,够用。优点是省成本、省PCB面积。
  • 外部ADC:比如ADS1115,16位,I2C接口,精度高。适合对压力测量精度要求高的场景。

注意:ADC的参考电压Vref必须和电桥的激励电压Vref一致,或者至少是已知的比例关系。否则测量结果会随Vref波动。我见过有人直接用MCU的3.3V做Vref,结果电池电压一降,测量值就偏了。正确的做法是用同一个基准源给电桥和ADC供电。

2.4 信号调理:滤波、偏置、保护

信号从传感器到ADC,中间还有几件事要做。我按顺序说:

  1. 低通滤波:在仪表放大器输出端加一个RC低通滤波器,截止频率设10~50Hz。为什么?因为刷牙时的压力信号是低频的,而电机转动、手部抖动都会引入高频噪声。滤掉高频,信号就干净了。
  2. 偏置调整:如果电桥输出有直流偏置(比如零点漂移),可以在仪表放大器的REF引脚上加一个偏置电压,把信号拉到ADC的中间范围。这样正负压力都能测量。
  3. ESD保护:牙刷是手持设备,人体静电很容易通过刷头传到传感器。我建议在信号线上加TVS管,比如PESD5V0S1UB,钳位电压5V,响应时间纳秒级。

避坑指南:我曾经在一个量产项目中,忽略了ESD保护。结果产线上有5%的牙刷,用户用了一周后压力检测就失灵了。拆开一看,仪表放大器的输入引脚被静电打坏了。从那以后,TVS管成了我的标配。

2.5 完整电路示例

说了这么多,不如直接看个电路。下面是一个典型的压力传感器接口电路:

传感器(惠斯通电桥)
    │
    ├── Vref(3.3V基准源)
    │
    ├── 仪表放大器(AD620,G=50)
    │   ├── RG = 1kΩ
    │   └── REF = Vref/2(偏置到1.65V)
    │
    ├── 低通滤波器(RC,fc=16Hz)
    │   ├── R = 10kΩ
    │   └── C = 1μF
    │
    ├── TVS管(PESD5V0S1UB)
    │
    └── ADC输入(STM32G0,12位,Vref=3.3V)

这个电路我用了很多次,稳定可靠。当然,具体参数要根据你的传感器和MCU调整。比如传感器灵敏度不同,增益就要跟着变。

小技巧:调试时,先用示波器看仪表放大器的输出波形。如果波形干净、没有毛刺,再接到ADC。如果波形有高频振荡,先查电源去耦电容,再查PCB布局。我遇到过好几次,都是因为电源走线太长导致的振荡。

2.6 总结

这一节内容不少,但核心就三句话:

  • 惠斯通电桥把电阻变化转成微弱电压
  • 仪表放大器把微弱电压放大,同时抑制共模噪声
  • ADC把模拟信号数字化,别忘了加滤波和保护

下一节,我们会讲压力数据的校准和滤波算法。到时候你会看到,硬件做完了,软件才是真正的考验。嗯,先到这吧。