外部分压是最直接的方案,核心是电阻分压网络。假设ADC参考电压Vref=3.3V,需测量0~10V,则分压比R2/(R1+R2)=3.3/10≈0.33。选R1=20kΩ、R2=10kΩ(比值0.333),注意电阻精度(1%或0.1%)影响线性度。
实操建议:
1. **输入阻抗匹配**:ADC采样保持电容会拉低电压,需在分压点加运放跟随器(如LM358)或选大阻值(但热噪声增加)。若MCU内置ADC输入阻抗>10kΩ,可直连,但建议加100nF滤波电容。
2. **保护二极管**:在ADC引脚对VCC和GND各接一个肖特基二极管(如BAT54),防止过压损坏。
3. **校准**:用精密电压源实测两点,做软件线性校正(y=kx+b),消除电阻误差。
4. **代码示例**:
```c
uint16_t adc_val = ADC_Read();
float voltage = (adc_val / 4096.0f) * 3.3f / 0.333f; // 12位ADC
```
注意:分压会降低分辨率,10V量程时每LSB约2.44mV(12位),若需更高精度,考虑外部ADC(如ADS1115)或可编程增益运放。
mcuku 阿沐 · 2026-08-17