跳到主要内容

ADC 模数转换器入门:分辨率、参考电压与采样

单片机擅长处理数字,但现实世界充满连续变化的电压:电位器中点、光敏分压、麦克风信号、某些传感器模拟输出。ADC(Analog-to-Digital Converter)负责把这些模拟电压变成数字值,让程序能读懂。

用一把尺子理解 ADC

ADC 需要参考电压 Vref(有的芯片用 VDDA)。输入电压相对参考的比例,被量化成整数:

# N 位 ADC,理想情况下
code ≈ Vin / Vref × (2^N - 1)
Vin_est ≈ code / (2^N - 1) × Vref

例如 12 位 ADC、Vref = 3.3V,1LSB 大约是 3.3 / 4095 ≈ 0.8mV 量级。你可以把它想成:尺子总长是 Vref,刻度有 2^N 格。

你真正要关心的指标

概念含义入门注意
分辨率(位数)分成多少级位数高不等于系统真的更准
参考电压量程尺子参考不稳,读数跟着晃
采样率每秒转多少次变化快的信号要够快
输入范围允许的 Vin超范围可能损坏或饱和
输入阻抗是否拖垮前级分压电阻别随意用得太大

嵌入式里怎么用得稳

  1. 确认通道与引脚真的支持模拟功能
  2. 共地:传感器/分压电路与 MCU 必须共地
  3. 滤波与去耦:电源脚去耦;必要时输入端加小电容抑制毛刺
  4. 多采样平均:换稳定,但会变慢
  5. 校准:用已知电压核对,别盲目相信原始 code

常见 ADC 类型(了解即可)

  • SAR(逐次逼近):MCU 片内最常见
  • 积分型:抗干扰好,速度慢,多见于电表类
  • ∑-Δ / 流水线等:高精度或高速场景,入门较少直接接触

你不必先成为 ADC 架构专家,但要能看懂手册里的位数、采样时间与参考电压来源。

选型与模块化思路

如果用外置 ADC 模块,关注:位数、速率、接口(I2C/SPI)、供电、输入范围与成本。更完整的“敏感元件 → 调理 → ADC”链路,可结合 传感器概论

建议练习

用电位器做分压,接到 ADC 引脚,串口打印原始值与换算电压;转动电位器看读数是否平滑。若跳变很大,检查供电、接线与是否共地。

下一篇补上经常被忽略、却决定系统能不能稳的基础:电源、地与共地