首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
嵌入式三种传感机制:电阻式、电容式、电感式从原理到选型实战
📅 2026/10/29 16:24:37
✍️ 爱科研究院
👁 阅读 3,247
做嵌入式这行屏幕、协议栈、RTOS 这些东西再花哨最后决定项目能不能落地的往往还是最前面那一段——传感器怎么把物理量变成电信号。标题里说的三种传感机制指的是嵌入式系统里最基础也最常见的那一套划分电阻式、电容式、电感式。这三种机制几乎覆盖了温度、压力、应变、触摸、液位、接近、位移、金属检测等一大半的常见需求而且它们都不需要什么高深的算法拼的是对模拟前端的理解、对布线的耐心、对噪声和温漂的处理。这篇内容适合刚接手传感器驱动的嵌入式新人也适合做了几年、被现场漂移和误触发折磨过的老手我会把三种机制的物理来源、读出电路、参数计算、实操步骤和踩坑记录摊开讲尽量让你看完就能动手接线、算参数、写采样代码。1. 三种传感机制的划分逻辑与工程意义1.1 为什么按电阻—电容—电感来切分工程上给传感器分类的方法很多按被测物理量分、按输出信号分、按是否有源分都能分。但我更愿意按被改变的那个电学参数来分因为对嵌入式工程师来说传感器最终都要接到一根线、一个引脚上而引脚能看见的只有电压、电流、频率、时间这几种东西。电阻式、电容式、电感式这三种机制恰好对应了三种最原始的物理变化它们的读出电路思路完全不同踩的坑也完全不一样。电阻式最简单给个电流测电压或者串个电阻分压一路 ADC 就完事所以它最便宜、最普及但也最容易被引线电阻自热接触电阻这种细节做坏。电容式变化量极小典型触摸检测的电容变化只有零点几皮法到几皮法在几十皮法的底噪里找信号考验的是布线、屏蔽和软件基线跟踪。电感式则是另一条路它靠磁场耦合天生不怕油污、灰尘、水汽适合恶劣环境代价是需要振荡电路、需要处理频率或者相位模拟前端复杂一些。这个划分不是为了学术上的整齐而是因为它直接决定了你选什么 MCU 外设、画几层板、留多大 PCB 空间。同样是做一个检测物体靠近的功能用红外反射、电容接近、电感接近硬件方案差出十万八千里成本可能差三倍可靠性表现也完全不同。1.2 三种机制在嵌入式链路中的共性与差异不管哪一种完整的嵌入式传感链路都是四段物理量 → 电学参数变化 → 模拟前端调理 → 数字化与处理。前三段是模拟的活儿最后一段是数字的活儿。很多人栽跟头就栽在只盯着最后一段觉得我 ADC 精度 16 位、我采样率 1MHz应该很准结果前面一段分压电阻用了 5% 精度的碳膜电阻后面再怎么算都是白搭。三种机制的差异集中在第二段和第三段。电阻式的电学参数变化范围大几欧到几百千欧调理电路简单一个分压或者一个电桥加仪表放大器就够电容式的变化范围是皮法级甚至飞法级调理电路要么用 RC 充放电把电容变成时间要么用专用电荷转移前端要么用交流激励加同步解调电感式的变化体现为阻抗和相位得先用 LC 谐振把电感变化转成频率变化或者用电桥把阻抗变化转成电压再或者测时间常数。还有一个容易被忽视的共性三种机制全都是比例测量更准。电阻式用比例法消除激励源漂移电容式用比例法消除寄生电容电感式用比例法消除振荡器温漂。这一点后面每个机制我都会单独讲因为它是把精度从 1% 做到 0.1% 的关键也是大多数教程不会提的地方。2. 电阻式传感机制最简单也最容易被做坏的一条路2.1 从物理量到电阻几种典型转换方式电阻式传感的本质是让被测物理量去改变一段导体的几何尺寸或者电阻率。应变片靠的是拉伸压缩改变长度和截面积灵敏系数典型值在 2 左右意思是应变 1000 微应变时电阻相对变化大约是 0.2%。铂电阻靠的是金属电阻率随温度线性上升Pt100 在 0℃ 是 100Ω平均温度系数约 3850ppm/℃折算下来每摄氏度变化 0.385Ω。热敏电阻靠的是半导体载流子浓度随温度指数变化灵敏度高但线性度差。还有一类是位置式的比如电位器、导电塑料位移传感器靠滑动触点改变有效长度输出是纯电阻分压线性度好但触点是机械磨损件寿命有限。选型时要问自己一个问题这个物理量最终是想要绝对精度还是重复性应变片绝对精度一般但重复性极好所以称重场景用它铂电阻绝对精度好所以测温场景用它。搞混这两个需求选型一定跑偏。2.2 分压、电桥、恒流源三种读出电路的取舍最廉价的读出方式是分压。一个固定电阻 R1 和传感器 Rs 串联中间点接 ADCVout Vcc × Rs / (R1 Rs)。优点是便宜一个电阻解决缺点是输出对 Vcc 敏感Vcc 抖 1% 读数就抖 1%而且非线性——Rs 变化和 Vout 变化不是线性关系只有当 Rs 变化远小于 R1 时才近似线性。电桥则是把单个电阻变化转成差分电压四臂电桥里应变片占一臂或者两臂输出 Vout Vex × ΔR / (4R)。用差分输入的好处是共模干扰、温漂四臂同温时可以被抵消掉。我实测下来同样的应变片分压方案在电机旁边漂 20 个码全桥差分方案只漂 3 个码这就是共模抑制的直接收益。恒流源驱动是第三种专门对付铂电阻这类阻值随温度显著变化的传感器。恒流源的好处是输出是纯线性的——V I × RR 和 V 严格成正比不需要做线性化补偿坏处是要多一个恒流源电路而且电流会产生自热。用 1mA 驱动 Pt100功耗是 I²R 0.1mW自热引起的温升在静止空气中小于 0.01℃可以接受如果用 5mA自热就上来了测液体温度还行测静止空气温度就会偏高零点几度。下面这张表是我选型时常用的对照读出方式成本线性度抗电源波动典型场景分压极低差需软件补偿差热敏电阻、光敏电阻、低精度场合惠斯通电桥中好中需稳定激励应变片、称重、压力恒流源中高极好好恒流本身抗扰铂电阻测温、高精度 RTD比例法采样低省基准好极好所有需要消除激励漂移的场合2.3 参数计算与实操铂电阻测温链路的完整配置我拿一个最典型的场景走一遍用 Pt100 做 -20℃ 到 150℃ 的测温精度目标 0.1℃。第一步算阻值范围。Pt100 在 -20℃ 约 92.16Ω150℃ 约 157.33Ω跨度 65Ω 左右。第二步选激励电流。这里有个权衡电流越大每摄氏度产生的电压越大越容易分辨但自热和引线压降也越大。取 1mA对应电压范围 92.16mV 到 157.33mV每摄氏度 0.385mV。第三步算前端增益。如果 ADC 的参考电压是 2.048V、PGA 可设 8 倍那输入满量程是 ±0.256V我们的信号只用了 92mV 到 157mV 这一段浪费了不少码值。更聪明的做法是比例法让同一个 1mA 电流流过一颗 100Ω 的精密参考电阻产生 100mV 的基准电压送进 ADC 的 REF 引脚这样传感器电压和基准电压同源激励电流漂 100ppm比值只漂接近 0ADC 读数几乎不动。这是我把精度从 ±0.5℃ 做到 ±0.05℃ 的关键一步比换更贵的 ADC 有效得多。第四步处理引线。两线制下每根引线 0.5Ω 很常见两根就是 1Ω折算温度误差 1/0.385 ≈ 2.6℃这在现场是不可接受的。改成三线制让 ADC 的差分负端走一根补偿线在恒流回路里把两根引线的压降抵消掉误差能降到 0.1℃ 以内。四线制更彻底用独立的电压检测线完全不受引线电阻影响代价是线缆多两根。第五步是软件。ADC 出来的是码值要做三件事中值滤波去掉脉冲干扰、滑动平均压噪声、查表或多项式换算温度。铂电阻的换算我用 Callendar-Van Dusen 公式0℃ 以上用二次项就够-20℃ 到 0℃ 段补一个三次项系数直接按分度表拟合误差能压到 0.01℃。/* 采集与换算示意中值 滑动平均 比例法换算 */ #define N_MED 9 #define N_AVG 16 static int32_t buf_avg[N_AVG]; static uint8_t idx_avg 0; int32_t read_rtd_raw(void) { int32_t s[N_MED]; for (int i 0; i N_MED; i) { s[i] adc_read_diff(); /* 差分通道RTD 正端 - 参考电阻端 */ } /* 插入排序取中值抗单点脉冲 */ for (int i 1; i N_MED; i) { int32_t key s[i], j i - 1; while (j 0 s[j] key) { s[j 1] s[j]; j--; } s[j 1] key; } return s[N_MED / 2]; } float rtd_to_temp_c(float r_ratio) { /* r_ratio R_rtd / R_ref与激励电流绝对值无关 */ const float R0 100.0f; float r r_ratio * R0; /* 0℃ 以上R R0(1 At Bt^2)A/B 按分度表拟合 */ const float A 3.9083e-3f, B -5.775e-7f; float disc A * A - 4.0f * B * (1.0f - r / R0); if (disc 0.0f) return -999.0f; return (-A sqrtf(disc)) / (2.0f * B); }注意上面这段代码里的系数是针对正温区间的简化形式负温区间要补三次项正式产品里建议直接用分度表查表加线性插值比拟合公式更稳。2.4 电阻式机制的实操心得与禁忌第一条心得别用普通贴片电阻做分压的上臂。1% 精度的厚膜电阻温漂能到 100ppm/℃夏天机箱内温升 30℃阻值漂 0.3%直接吃掉你一半精度预算。换成 25ppm/℃ 的薄膜电阻成本多几毛钱省下的标定时间值几十倍。第二条ADC 输入端一定要加 RC 低通。1kΩ 串阻加 100nF 对地截止频率约 1.6kHz能挡掉绝大多数开关电源和电机换向的干扰。但注意串阻不能太大否则 ADC 采样保持电容充电不够读数会偏低具体上限查 ADC 手册里的源阻抗要求。第三条电桥供电要稳压最好和 ADC 基准同源。我见过一个项目电桥用 5V 供电ADC 用 3.3V 基准结果 5V 那边一波动读数就跟着跳查了两天才发现是电源问题。第四条禁忌别在传感器线上跑 PWM 或者开关信号。哪怕只是并排走 10cm容性耦合就能把几百毫伏的尖峰灌进高阻抗的传感器输入端。实在要同走一根线缆中间加地线隔离或者把传感器信号改成差分。3. 电容式传感机制变化量最小最考验布线3.1 电容怎么被测量三种主流检测方式电容式传感的物理基础是平行板电容公式 C ε₀εᵣA/d。改变面积、改变间距、改变介质都能改变电容。麻烦在于绝对量太小一个 10mm×10mm 的触摸焊盘对地电容大概是 5 到 15pF手指靠近带来的变化只有 0.1 到 2pF信噪比天然很差。主流检测方式有三种。第一种是RC 充放电计时用一个 GPIO 通过已知电阻给电容充电用另一个引脚或者比较器测充电到阈值的时间t R·C·ln(...)时间正比于电容。这种方式只要两个引脚加一个电阻成本几乎为零缺点是分辨率受定时器精度和阈值抖动限制抗干扰一般适合按键、简单的液位判断。第二种是电荷转移也叫开关电容法用一组开关把被测电容的电荷反复搬运到一颗积分电容上搬 N 次后测积分电容电压。这种方式的优势是可以用多次累积把微弱信号放大抗噪能力比 RC 计时好一个档次很多专用触摸芯片内部就是这套架构。第三种是交流激励加同步解调用方波或者正弦波驱动传感器测流过它的电流的幅度和相位。这种方式精度最高能同时得到电容和损耗也就是介质损耗可以判断是不是有水膜、结露但电路复杂一般用专用前端芯片。3.2 自电容与互电容触摸和液位的不同打法自电容是一个电极对地的电容手指靠近时电容增大检测简单一个电极一根线适合按键和接近感应。缺点是多点触摸时会出鬼影而且人手悬空不接地时灵敏度会下降。互电容是发射电极和接收电极之间的电容手指靠近时电场被分流接收端信号减小能做真正的多点矩阵手机屏幕用的就是这套。液位检测属于另一种应用把两根平行板或者同心管插进容器液体上升时介质从空气εᵣ≈1变成水εᵣ≈80电容大幅增加。这种场景里电容变化可能有几十 pF 甚至上百 pF信噪比很好用 RC 计时就够了。麻烦的是液体的介电常数会随温度、浓度、杂质变化纯水 80污水可能 60 也可能 90所以绝对液位精度很难做高一般做到满量程的 2% 到 5%除非加一路参考电极做比值补偿。这里有个很实用的技巧做两根一模一样的电极一根泡在固定参考位置一根做测量。两路信号做比值介电常数变化被抵消掉剩下的就是液位信息。我在一个模拟项目里用这个办法把介电常数波动带来的误差从 8% 压到 1.5%。3.3 实操一套电容式液位检测的完整实现场景设定一个塑料水箱高度 300mm要在外侧贴铜箔做非接触液位检测量程 0 到 250mm分辨率 2mm。第一步算电容。两片 20mm 宽、250mm 高的铜箔间距 3mm塑料壁厚中间介质是塑料加水。空箱时 C ≈ ε₀ × 1 × (0.02×0.25) / 0.003 ≈ 14.7pF满水时下半段介质变成水等效 εᵣ 按 3 到 5 算塑料和水混合C 能到 45 到 70pF。变化量 30pF 以上够用。第二步选检测方式。这种量级用 RC 计时完全够但要注意两个细节一是充电电阻取 1MΩ时间常数 RC 1MΩ × 50pF 50μs用 1MHz 定时器计数分辨率 1μs对应约 2% 的电容分辨率勉强二是充电阈值要稳定最好用内部比较器加基准而不是靠 GPIO 的数字阈值后者随温度和电压漂得厉害。第三步是软件。核心是基线跟踪系统启动时记录空箱电容对应的计数值作为基线之后每次测量值和基线做差。但水箱会结垢、会老化基线必须慢速跟踪——用一阶低通时间常数取几十秒只在液位长时间不变时才更新否则液位上升会被误当成基线漂移吃掉。/* 电容式液位充电时间测量 基线慢跟踪 */ static float base_cnt 0.0f; static uint8_t stable_ticks 0; uint32_t cap_charge_time_us(void) { gpio_set_low(PIN_SENSE); delay_us(5); /* 充分放电避免历史电荷残留 */ gpio_set_input(PIN_SENSE); uint32_t t0 timer_count(); gpio_set_high(PIN_CHG); /* 通过 1M 电阻充电 */ while (!comparator_out() (timer_count() - t0) 5000) { } uint32_t dt timer_count() - t0; gpio_set_low(PIN_CHG); return dt; } void cap_level_task(void) { uint32_t raw cap_charge_time_us(); /* 中值滤波省略实际用 5 次取中值 */ if (stable_ticks 100) { /* 液位稳定才更新基线 */ base_cnt ((float)raw - base_cnt) * 0.002f; } float delta (float)raw - base_cnt; float level_mm delta * K_MM_PER_US; /* 标定得到的比例系数 */ if (level_mm -5.0f || level_mm 260.0f) { stable_ticks 0; /* 异常跳变冻结基线 */ } else { stable_ticks; } }注意放电时间一定要留够。我吃过一次亏放电只给了 1μs残余电荷让下一次读数系统性偏低 3%而且随刷新频率变化查了整整一天。3.4 电容式机制的坑与布线规则电容式是所有传感机制里对 PCB 最挑剔的一个。第一条铁律传感器焊盘下面不能铺地哪怕是完整的地平面也会把电场吃掉一大半灵敏度直接砍半。正确做法是焊盘正下方挖空或者用驱动屏蔽guard跟着传感器信号同相位摆动把寄生电容推掉。第二条走线越短越好且不能和高速信号平行。传感器到检测芯片的走线超过 5cm寄生电容就开始不受控而且容易耦合噪声。我用过的方案里走线控制在 2cm 以内、四周用地线包围、背面不铺铜误触发率能从每天几次降到几乎为零。第三条湿度是隐形杀手。结露会在焊盘表面形成一层水膜电容直接增加几 pF等于一直有人按着。对策是加防水涂层三防漆、在软件里用双阈值加长确认时间、或者在结构上做疏水斜面让水珠滚走。第四条人手接地状态会影响灵敏度。设备插着电源适配器时人体通过大地形成回路灵敏度高用电池供电时人体是浮空的灵敏度可能掉一半。所以标定必须在最差条件下做也就是电池供电、人手不接触金属外壳的状态。4. 电感式传感机制抗污染能力强的那一类4.1 电感变化的来源涡流、磁路气隙、互感电感式传感的物理基础是 L N²μ₀μᵣA/l改变匝数、磁导率、截面积、磁路长度都能改变电感。实际工程里有三条主要路径。第一条是涡流。线圈通交流电产生交变磁场金属目标靠近时目标内部感应出涡流涡流产生的反向磁场削弱原磁场表现为线圈等效电感下降、等效电阻上升、Q 值下降。这就是电感式接近开关的原理检测距离和线圈直径、频率、目标材料都有关铁质目标比不锈钢远铝又比不锈钢近一些但不如铁。第二条是磁路气隙。典型的 LVDT线性可变差动变压器就是中间一个可动铁芯两边各一个次级线圈铁芯位置改变两个次级线圈的互感比例输出差动电压。这种结构精度极高能到微米级工业上测位移、测阀门开度用得很多代价是需要交流激励和同步解调电路复杂。第三条是磁致伸缩或者磁通门靠材料的磁特性变化灵敏度高但需要特殊材料一般用在高端场合。嵌入式项目里最常碰到的还是第一条涡流和第二条气隙式。4.2 测量方法谐振频率法、电桥法、时间常数法涡流检测最便宜的读法是把电感和电容组成 LC 谐振回路测谐振频率。f 1/(2π√(LC))金属靠近时 L 下降f 上升。比如 L 100μH、C 100nF谐振频率约 50.3kHz金属靠近让 L 掉 5%f 就升到约 51.6kHz变化 1.3kHz用 MCU 定时器完全可以测出来。这种方法的优点是电路极简一个电感和一个电容加一个比较器或者直接用 MCU 的模拟比较器就能起振缺点是频率变化和距离不是线性关系近距离时灵敏度高、远距离时几乎没反应而且温度会让电容和电感都漂需要软件做温度补偿或者定期自校准。电桥法是把电感放在交流电桥的一臂用交流激励测桥臂不平衡电压的幅度。好处是线性度好、可以做得很精密坏处是需要一路稳定的交流激励还要同步解调模拟前端成本高。时间常数法是测 L/R 的充放电时间简单但精度一般容易受线圈电阻温漂影响——铜的电阻温度系数是 0.4%/℃温度升 25℃ 电阻就变 10%时间常数直接漂 10%所以这个方法我只在温度稳定的场合用。下面这张表是三种读法的对比读法电路复杂度线性度温漂敏感度适合场景LC 谐振测频低差中可软件补偿接近开关、金属检测交流电桥高好低精密位移、测厚L/R 时间常数低中高温度稳定场合、粗略检测专用电感数字转换器中好低需要直接读电感值的场合4.3 实操LC 振荡加频率计数做金属接近检测场景在一条模拟产线上检测工件是否到位检测距离 8mm工件是铁质环境有油污和切削液要求响应时间小于 10ms。第一步选线圈。检测距离大约等于线圈半径8mm 距离需要一个内径 6 到 8mm、绕 30 到 50 匝的线圈。我用直径 0.2mm 漆包线在 8mm 骨架上绕 40 匝实测电感约 120μH配 100nF 电容谐振频率约 46kHz。电感量和匝数平方成正比绕的时候尽量整齐松紧不均会让 Q 值下降。第二步搭振荡。用一只三极管或者用 MCU 内部的模拟比较器加正反馈就能起振输出是方波幅度接近电源电压。这里有个关键细节振荡幅度要限幅否则金属靠近时 Q 值下降会导致停振读数直接失效。限幅可以用背靠背二极管钳位或者用比较器加迟滞。第三步测频率。用 MCU 的定时器输入捕获测周期比固定闸门计数法分辨率高得多。固定闸门 100ms 计数46kHz 只有 4600 个计数±1 计数就是 0.02%而测周期法46kHz 的周期是 21.7μs用 1MHz 计数能数到 21 个计数分辨率同样有限。更好的办法是用定时器的预分频把计数时钟提到 10MHz 甚至更高或者用多次周期平均。第四步标定。空载时记录频率 f0工件到位时记录 f1取中值作为判据阈值并留 5% 的迟滞防止抖动。我实测下来8mm 处频率变化约 600Hz迟滞取 200Hz误判率很低。/* LC 谐振测频周期捕获 中值 迟滞判断 */ #define HYST_HZ 200 #define N_CAP 7 static uint32_t period_buf[N_CAP]; static uint8_t pidx 0; static uint8_t obj_present 0; float get_freq_hz(void) { /* 定时器输入捕获已把周期值填入 period_buf */ uint32_t tmp[N_CAP]; memcpy(tmp, period_buf, sizeof(tmp)); for (int i 1; i N_CAP; i) { /* 插入排序取中值 */ uint32_t k tmp[i]; int j i - 1; while (j 0 tmp[j] k) { tmp[j 1] tmp[j]; j--; } tmp[j 1] k; } uint32_t p tmp[N_CAP / 2]; return (p 0) ? (1000000.0f / (float)p) : 0.0f; /* 计数时钟 1MHz */ } void metal_detect_task(void) { float f get_freq_hz(); if (!obj_present f F0_HZ HYST_HZ) { obj_present 1; } else if (obj_present f F0_HZ - HYST_HZ) { obj_present 0; } }4.4 电感式机制的注意事项与现场经验第一条线圈的 Q 值决定一切。Q 值低谐振峰就宽频率变化被抹平灵敏度上不去。提高 Q 值的办法是加粗线径、减少匝间电容、用高频损耗小的骨架材料。我试过同样匝数密绕和间绕的 Q 值能差 20%检测距离差 1mm。第二条温度补偿必须有。铜线电阻随温度变电容的介电常数也随温度变谐振频率会整体平移。简单做法是开机时或者每隔一段时间做一次空载自校准把当前频率当基线讲究一点的做法是加一路温度传感器按实测的温漂曲线做补偿。我在一个常温车间用过纯自校准方案零点漂移控制在 ±0.3% 以内够用。第三条检测距离和目标材料强相关。同一个线圈检测铁能到 10mm检测不锈钢只有 5mm检测铝可能只有 4mm 而且频率变化方向还不一样。产品说明书上写的检测距离永远是针对标准铁片的实际项目必须拿真实工件重新标定。第四条相邻线圈要拉开距离或者分时工作。两个线圈靠太近磁场互相耦合成一个大线圈两个通道的读数都不对。间距至少取线圈直径的 1.5 倍做不到就分时轮流激励中间留 1ms 以上的间隔。5. 三种机制横向对比与选型方法5.1 关键维度对比表选型时我一般会拉一张表把几个关键维度摆一起看比拍脑袋靠谱得多维度电阻式电容式电感式典型信号变化量0.1%~100%0.5%~200%相对底容0.5%~20%前端成本极低低到中中抗油污灰尘中取决于封装差表面污染影响大极好抗水汽结露中差好抗电磁干扰中差分后好中好本身是磁场功耗低中需要周期性激励中高持续振荡温漂中中中可自校准响应速度快中需要多次积分快典型应用测温、称重、压力触摸、液位、接近金属检测、位移、转速5.2 选型时的决策顺序我的决策顺序是这样的先问环境里有什么污染再问需要多高精度最后问成本能压到多少。如果现场有油、有粉尘、有切削液电容式基本可以排除了除非你把传感器完全密封在结构件里但那又失去了成本和安装优势。这时候优先看电感式如果是检测金属电感式几乎是唯一解如果非金属就退回到电阻式加机械结构比如用浮球带动电位器、用波纹管加应变片。如果环境干净、精度要求高、要非接触电容式是首选比如液位、触摸、微小位移。如果精度要求极高且允许接触电阻式里选高精度 RTD 或者应变片配合比例法采样能做到 0.01% 级别。成本这条线要算总账。电容式的芯片可能比电阻式贵几块钱但如果电阻式方案需要加机械结构、需要定期更换磨损件全生命周期成本反而更高。我见过一个项目为了省 2 块钱用碳膜电位器做角度检测结果现场一年换三次售后成本几千块。5.3 混合与冗余把两种机制叠起来用实际项目里单一机制经常不够。比如一个智能水表既要用电阻式或者电容式测水流量又要用电容式或者电感式做防拆检测再比如工业阀门既要电感式测阀位又要电阻式测温度做补偿。混合方案的设计原则是让两种机制的失效模式不相关。电容式怕水电感式不怕水但怕附近有铁如果两个都用一个因为水膜误触发时另一个还能正常工作用与逻辑输出可靠性就上来了。反之如果两个机制都依赖同一个 ADC 基准或者同一路电源那就是伪冗余电源一挂两个一起挂。还有一种用法是分工用电容式做粗定位快速判断有东西靠近了唤醒系统后再用电感式做精确认确认是不是金属工件。这样平均功耗能压得很低适合电池供电的场合。6. 常见问题与排查实录6.1 现象与原因速查表现象可能原因排查动作ADC 读数持续跳动几十个码电源纹波、地线环路、缺少 RC 滤波示波器看基准和输入端纹波加 RC 与地平面读数随温度整体漂移分压电阻温漂、激励源温漂、接触电势换低温漂电阻改比例法采样触摸按键无故触发结露、走线耦合、基线跟踪过快检查表面水膜加三防漆放慢基线速率液位计满量程误差大介电常数变化、边缘效应、容器壁厚不均加参考电极做比值重新标定分段线性电感接近开关检测距离变短线圈 Q 值下降、温度漂、目标材料不符测谐振峰做空载自校准拿真实工件重标电感式通道之间互相干扰线圈磁耦合拉开间距或分时激励上电后前几秒读数异常电容未放电、基准未稳定、自校准未完成加上电延时和放电流程等待基准稳定6.2 三个典型问题的复盘第一个是电阻式测温的幽灵漂移。某现场设备用的铂电阻夏天下午读数总是偏高 0.8℃。一开始怀疑传感器换了三根都没用后来怀疑 ADC换了一片还是一样。最后用万用表量分压电阻的实际阻值发现它在高温下比标称值低了 0.4%查器件手册才发现用的是 100ppm/℃ 的普通厚膜电阻机箱内温度比外面高 25℃正好对应 0.25% 的漂移。换成 25ppm/℃ 的薄膜电阻后问题消失。这件事之后我所有高精度分压的上臂电阻一律用低温漂型号。第二个是电容式液位的随缘报警。设备在南方梅雨季频繁报满液位拆开看电路板上一层次水膜。原因是传感器焊盘周围没有做阻焊开窗控制水汽在焊盘边缘凝结成连续水膜把两根电极短接了一部分。对策是把焊盘改成指状交错结构、加三防漆、软件里把确认时间从 200ms 拉长到 2s三管齐下才彻底解决。第三个是电感式接近开关的冬天失灵。北方客户反馈冬季检测距离明显变短有时直接不动作。实测发现 LC 回路的电容用的是普通陶瓷电容温度系数大低温下容量掉了 8%谐振频率整体上移正好跑出了软件的自校准窗口。换成温度稳定的电容类型并把自校准范围放宽到 ±20%问题解决。6.3 我个人的几条硬经验模拟前端这件事布线的时间永远比写代码的时间值钱。我现在的习惯是画板前先把传感器到前端的路径在纸上画一遍标出每一段多长、附近有什么信号、下面有没有地平面画完再动 PCB。这一小时能省掉后面一周的调试。标定流程要写进产品流程不要靠人记。三种机制都需要标定电阻式标零点满度电容式标基线和灵敏度电感式标空载频率和判据阈值。这些如果只写在某个人的笔记本里换个人接手就得从头摸。我现在一律把标定做成串口命令或者上位机工具参数存进 EEPROM带版本号。先怀疑硬件再怀疑软件最后才怀疑传感器本身。传感器是标准件坏的概率最低电源、地线、走线、连接器接触电阻这些才是问题高发区。我踩过的坑里至少七成最后查出来是硬件连接或者电源问题而不是传感器或者算法。给每种机制留一个原始数据口。调电阻式留原始 ADC 码值调电容式留充电计数值调电感式留周期计数值通过串口打出来。别一上来就做工程量换算原始值才能看出噪声形态和干扰规律。这个习惯帮我省下的时间比任何调试技巧都多。温度补偿别偷懒用固定系数。三种机制的温漂都不是纯线性的用一阶系数补偿在常温附近能糊弄一拉宽温区就露馅。要么做分段线性要么老老实实做多点标定拟合曲线尤其是要过 -20℃ 到 60℃ 这种工业温区的产品。最后一点是关于文档的每种传感机制的电路参数、标定方法、判定阈值、异常处理策略我在项目里都会单独写一页纸附上实测波形和标定数据。不是为了交差是因为半年后自己回头看没有这页纸很多东西真的想不起来当时为什么取那个电阻值。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/29 16:24:37
C# Winform仓库温控系统开发与优化实践
2026/10/29 16:19:35
Linux环境下Redis安装配置与性能优化指南
2026/10/29 16:19:35
上班人导航:面向知识工作者的高精度信息路标系统
2026/10/29 17:29:54
LeNet-5解析:卷积神经网络的基础与实践优化
2026/10/29 17:29:54
手机该不该换?从持有成本到换代周期,一套判断逻辑讲透
2026/10/29 17:29:54
AI Agent原生操作系统:Agentic OS实战解析
2026/10/29 17:29:54
Jev浏览器Agent:基于行为模仿的零代码网页自动化工具
2026/10/29 17:29:53
游戏平台合作解析:Hellogamebox与Garena可能性探讨
2026/10/29 17:24:53
LLM结构化输出四层保障:让模型生成的JSON不再翻车
2026/10/29 0:00:09
服务器巡检报告模板怎么写:从检查项到PowerShell数据回填
2026/10/29 0:00:09
Zed编辑器Split Diff功能深度评测与优化指南
2026/10/29 0:00:09
OpenAI新模型定价解析:基础档便宜八成,快档贵六倍值不值?
2026/10/28 12:27:10
全国计算机二级C语言真题PDF高效刷题指南
2026/10/28 15:37:16
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/28 12:37:46
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/28 15:37:16
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/28 15:37:15
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/28 15:37:15
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)