单片机 ADC 电压与电流检测及电阻选型指南

在嵌入式开发与电源设计中,使用单片机(MCU)的 ADC(模数转换器)采集电路中的电压和电流是极常见的需求。由于单片机 ADC 引脚有严格的输入电压范围(通常为 0~3.3V),因此需要通过合理的硬件电路将大电压或电流信号转换/缩放到 ADC 可读取的范围内。

一、 电压检测原理与分压电阻选型

1. 检测原理

由于待测电压(如 12\\text{V} / 20\\text{V})超出了单片机 ADC 的输入上限(3.3\\text{V}),需利用电阻串联分压原理,将高电压按固定比例缩小后送入 ADC 引脚。

电路拓扑:

待测高压 V_{\\text{IN}} 经过上拉电阻 R_1 与下拉电阻 R_2 串联接地,中间节点接 ADC:

V_{\\text{ADC}} = V_{\\text{IN}} \\times \\frac{R_2}{R_1 + R_2}

复制代码
V_IN  ----+---- [ R1 ] ----+---- [ R2 ] ---- GND
          |                |
          +---- V_OUT ----> MCU_ADC

2. 分压电阻选型三步法

  1. 计算分压比:

    确定待测最高电压 V_{\\text{IN\\_MAX}}(留出约 20% 裕量)与 ADC 最高参考电压 V_{\\text{ADC\\_MAX}}(如 3.3\\text{V})。

    \\frac{R_2}{R_1 + R_2} \< \\frac{V_{\\text{ADC\\_MAX}}}{V_{\\text{IN\\_MAX}}}

  2. 确定总阻值范围(关键折中):

    • 阻值不能太小: 阻值过小会导致分压支路通过电流过大,增加电路静态功耗并引发电阻发热偏差。

    • 阻值不能太大: 单片机 ADC 采样保持电路内部有输入阻抗(通常为几十 \\text{k}\\Omega),如果外部分压电阻阻值过大,会导致 ADC 采样电容充放电速度不够,引发测量不准。

    • 推荐经验值: 分压网络总阻值建议在 10\\text{k}\\Omega \\sim 100\\text{k}\\Omega 之间。

  3. 标称阻值匹配举例:

    若需检测最高 12\\text{V} 电压:

    • 选择 R_1 = 10\\text{k}\\OmegaR_2 = 3.3\\text{k}\\Omega

    • V_{\\text{IN}} = 12\\text{V} 时,V_{\\text{ADC}} = 12\\text{V} \\times \\frac{3.3}{10 + 3.3} \\approx 2.977\\text{V} \< 3.3\\text{V},在安全范围内。

    • 精度建议: 选用 1% 或 0.1% 精度的贴片电阻(如 0805/0603 封装),避免普通 5% 精度电阻带来的累计误差。

二、 电流检测原理与采样电阻选型

1. 检测原理

电流信号无法直接被 ADC 读取,必须转换为电压。通常在主回路中串联一颗毫欧级别的采样电阻(Shunt Resistor),利用欧姆定律 V = I \\times R 将电流转化为微弱压差。

因为毫欧电阻上的压差极小(仅几毫伏到几十毫伏),单片机 ADC 无法精准分辨,所以必须配合电流检测放大器(如 INA180/INA219 等) 将信号放大数十到上百倍后再送入 ADC。

复制代码
VBUS/VOUT ----+---- [ R_shunt ] ----+---- 负载
              |                     |
             IN+                   IN-
              |                     |
              +---> [运放/INA180] <--+
                         |
                         +---> MCU_ADC (放大后电压)

2. 采样电阻选型三大核心考量

(1) 阻值选择(越小越好)
  • 核心目的: 降低插入压降发热功耗

  • 计算逻辑:

    如果电路电流为 3\\text{A},若选用 1\\Omega 电阻,压降达 3\\text{V}(后级电路供电不足),且功耗 P = I\^2 R = 9\\text{W}(严重发热);若改用 10\\text{m}\\Omega (0.01\\Omega) 采样电阻:

    • 压差: V = 3\\text{A} \\times 0.01\\Omega = 0.03\\text{V} (30\\text{mV})(对后级供电几乎无影响)。

    • 功耗: P = 3\^2 \\times 0.01 = 0.09\\text{W} (90\\text{mW})(普通贴片电阻即可承受)。

  • 推荐经验值: 采样电阻通常选 5\\text{m}\\Omega \\sim 50\\text{m}\\Omega 之间。

(2) 电阻额定功率(耐功率能力)

采样电阻必须保证在最大电流下不被烧毁。

  • 计算公式: P_{\\text{rated}} \\ge I_{\\text{MAX}}\^2 \\times R_{\\text{shunt}} \\times 2 (建议留出 2 倍以上安全裕量)。

  • 封装选择: 大电流采样通常选用 25121206 封装的合金采样电阻(如 3\\text{W} 功率)。

(3) 结合运放倍数推导最大测量电流

假设运放增益为 G(如 INA180A3 的 G = 100),ADC 允许的最大电压为 V_{\\text{ADC\\_MAX}} = 3.3\\text{V},采样电阻为 R_{\\text{shunt}}

I_{\\text{MAX}} = \\frac{V_{\\text{ADC\\_MAX}}}{G \\times R_{\\text{shunt}}}

  • 例: R_{\\text{shunt}} = 10\\text{m}\\OmegaG = 100,则最大能测量的电流为:

    I_{\\text{MAX}} = \\frac{3.3\\text{V}}{100 \\times 0.01\\Omega} = 3.3\\text{A}

三、 设计总结与避坑要点

  1. 电压检测:

    • 注意串联电阻总阻值,推荐 10\\text{k}\\Omega \\sim 100\\text{k}\\Omega

    • 可以在下拉电阻两端并联一个 10\\text{nF} \\sim 100\\text{nF} 的 RC 滤波电容,吸收高频噪声,稳定 ADC 读数。

  2. 电流检测:

    • 必须采用高精度低温飘的合金采样电阻,防止温度升高导致阻值偏移从而引发测量失准。

    • 优先选择高边采样(High-Side Sensing),将采样电阻接在电源正极线(VOUT),避免低边采样破坏系统共地。

    • PCB 走线时,采样电阻到运放 IN+/IN- 引脚的连线必须采用 开尔文走线(Kelvin Sensing),防止走线铜箔本身的电阻干扰微弱信号采集。

相关推荐
茯苓gao2 小时前
嵌入式开发笔记:QSerialPort 完整使用指南——从基础 API 到工程实战
笔记·嵌入式硬件·qt·学习
wuyk5552 小时前
67.嵌入式C语言进阶:结构体指针实战指南——STM32外设、传感器数据访问的高效技巧
c语言·开发语言·stm32·单片机
西城微科方案开发3 小时前
LCD智能婴儿秤方案
单片机·嵌入式硬件
三佛科技-134163842125 小时前
灭蚊灯MCU方案开发,FT60E112-RB作为灭蚊灯主控芯片优势
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
Mr+范5 小时前
电源诱骗芯片CH224K
单片机·学习
起床学FPGA5 小时前
I2C、SPI
单片机·嵌入式硬件
xuxie995 小时前
start10 电机电流检测方法
单片机·嵌入式硬件
风雨中的蜜蜂5 小时前
CMT2310A 超低功耗高性能射频收发器概述
stm32·单片机·嵌入式硬件
LCG元6 小时前
STM32 ADC 多通道 DMA 采样与数字滤波实战
stm32·嵌入式硬件·microsoft