第二讲:传感器信号基础

各位工程师朋友,大家好。今天我们来聊聊传感器信号的基础知识。说实话,这部分内容看起来简单,但我在实际项目中见过太多人在这里栽跟头。你想想看,传感器选对了,电路焊好了,结果信号读出来全是乱码——这种经历,我猜不少人都遇到过。

2.1 模拟信号与数字信号

传感器输出的信号,归根结底就两种:模拟信号和数字信号。这俩的区别,说白了就是一个连续变化,一个跳变。

模拟信号,就像水龙头的水流。你可以开到任意位置,水流大小是连续变化的。温度传感器输出的电压,压力传感器输出的电流,都是模拟信号。它的特点是:理论上可以有无穷多个取值。

数字信号,就像开关。要么开,要么关,没有中间状态。数字信号只有两个电平:高电平和低电平,对应逻辑1和逻辑0。我刚开始做项目时,总觉得数字信号比模拟信号简单。后来发现,数字信号的时序问题才是真正的坑。

核心区别一览:

  • 模拟信号:连续变化,无限取值,易受干扰
  • 数字信号:离散跳变,有限取值,抗干扰强
  • 模拟信号需要ADC转换才能被MCU处理
  • 数字信号可以直接被MCU读取

2.2 传感器输出类型

传感器的输出类型,我把它分成三大类:电压输出、电流输出、数字协议输出。每种都有它的脾气。

2.2.1 电压输出

电压输出是最常见的。比如一个温度传感器,0°C时输出0V,100°C时输出1V。线性关系,简单明了。但这里有个坑——电压信号在长距离传输时,线阻会导致压降。我记得有一次,传感器离控制器20米远,读到的电压比实际低了0.3V,换算成温度差了将近30°C。

常见的电压输出范围:

  • 0-5V:工业标准,兼容性好
  • 0-10V:常用于PLC系统
  • 0-3.3V:适合现代MCU
  • ±5V:差分信号,抗干扰强

2.2.2 电流输出

电流输出,最经典的就是4-20mA。为什么是4mA而不是0mA?嗯,这里有个巧妙的设计——4mA可以用来检测断线。如果线路断了,电流就是0mA,系统就能判断出故障。

我曾经在一个化工厂的项目中,所有传感器都用的4-20mA输出。现场电磁干扰特别强,电压信号根本没法用,但电流信号稳得很。为什么?因为电流环对线路电阻不敏感,抗干扰能力天生就强。

我的经验:如果传感器和控制器距离超过10米,优先考虑电流输出。如果距离在1米以内,电压输出更经济实惠。

2.2.3 数字协议输出

数字协议输出,现在越来越流行。常见的协议有:

协议 通信方式 典型应用 最大距离
I²C 同步串行 板级传感器 1米
SPI 同步串行 高速传感器 10米
UART 异步串行 GPS、蓝牙 15米
RS-485 差分串行 工业现场 1200米
CAN 差分串行 汽车电子 40米

数字协议的好处是:数据直接就是数字量,不需要ADC转换。而且可以挂多个传感器在同一条总线上。但坏处是:协议解析需要时间,实时性不如模拟信号。

2.3 信号调理概念

信号调理,这个词听起来高大上,其实说白了就是:把传感器输出的原始信号,处理成MCU能读懂的信号。

为什么要调理?因为传感器的原始信号往往有这些问题:

  • 电压太小(比如热电偶只有几毫伏)
  • 有噪声干扰
  • 输出阻抗太高
  • 信号范围不匹配

常见的信号调理手段:

  1. 放大:用小信号放大器,把毫伏级信号放大到伏级。我习惯用仪表放大器,共模抑制比高,噪声小。
  2. 滤波:用低通滤波器滤掉高频噪声。RC滤波是最简单的,但要注意截止频率的计算。
  3. 电平转换:把0-10V转换成0-3.3V,让MCU能直接读取。
  4. 隔离:用光耦或隔离放大器,把传感器和MCU电气隔离。这在工业现场特别重要,我曾经因为没做隔离,烧掉过三块开发板。
  5. 线性化:有些传感器的输出不是线性的,比如NTC热敏电阻。需要用查表法或公式法做线性化处理。

避坑指南:我曾经在一个项目中,直接用MCU的ADC读取热电偶信号。结果发现读数跳得厉害,根本没法用。后来加了仪表放大器和低通滤波器,信号才稳定下来。记住:不要指望MCU的ADC能直接处理微弱信号。

2.4 知识体系总览

下面这张图,是我自己总结的传感器信号知识体系。你可以把它当作一个快速索引。

传感器信号基础 模拟信号 连续变化 · 无限取值 电压输出:0-5V / 0-10V 电流输出:4-20mA ⚠ 易受干扰 · 需ADC转换 数字信号 离散跳变 · 有限取值 I²C / SPI / UART RS-485 / CAN ✓ 抗干扰强 · 直接读取 信号调理 放大 · 滤波 电平转换 · 隔离 线性化 ⚠ 必须做 · 否则信号不可用 核心原则 模拟信号 → 调理 → ADC → 数字信号 → MCU处理 选型时:距离近用电压,距离远用电流,复杂系统用数字协议

好了,这一章的内容就到这里。记住:传感器信号处理,没有银弹。每种方案都有它的适用场景。我的建议是:先搞清楚你的应用环境,再选择合适的信号类型和调理方案。别一上来就想着用最贵的方案,也别为了省钱用最便宜的。合适,才是最好的。

可可精品资料库