计算器 KB-44
ADC计算器
analogRead实际测量的是什么?给定电压对应的代码又是多少?
结果
最低有效位的电压值4.883 mV
ADC代码675
ADC输入电压3.3 V
可测量的最高电压5 V
计入分压器后的步进值4.883 mV
理论信噪比62 dB
简要说明: 微控制器ADC计算:以毫伏表示的分辨率、电压对应的代码、测量较高电压所需的分压器,以及理论信噪比。 示例: 最低有效位的电压值: 4.883 mV.
计算示例
| 分辨率 | 10 位 |
|---|---|
| 参考电压 | 5 V |
| 测量电压 | 3.3 V |
| 最低有效位的电压值 | 4.883 mV |
|---|---|
| ADC代码 | 675 |
| ADC输入电压 | 3.3 V |
| 可测量的最高电压 | 5 V |
| 计入分压器后的步进值 | 4.883 mV |
| 理论信噪比 | 62 dB |
计算方式
LSB = Vref / 2ⁿ
N = U / LSB
SNR = 6,02 · n + 1,76 dB
N = U / LSB
SNR = 6,02 · n + 1,76 dB
ADC将0到参考电压的范围划分为2ⁿ个等级,并输出对应的等级编号。精度往往取决于参考电压的稳定性和电源噪声,而不是位数。
需要注意什么
- ADC输入电压不得超过参考电压和电源电压,否则可能损坏引脚。
- ESP32的ADC线性度较差,尤其是在量程两端。要进行精确测量,需要校准。
常见问题
Arduino Uno的ADC每个计数对应多少伏?
10位分辨率,参考电压为5 V:5 / 1024 = 每个计数4.883 mV。3.3 V电压对应的读数为675。
如何用参考电压为3.3 V的ADC测量12 V?
用分压器:10 kΩ和2.2 kΩ可将12 V降至2.16 V,测量范围则扩展到18.3 V。此时12位ADC的每个量化步进对应输入端约4.5 mV。
为什么ESP32的ADC读数不准确?
它的特性曲线并非线性,尤其在量程两端,而且不同芯片的参考电压也有差异。需要进行校准;若要精确测量,可以使用外置ADC,例如ADS1115。
