arduino adc精度
好的,我们来详细解释一下 Arduino 的 ADC 精度问题(针对最常见的 AVR 架构 Arduino,如 Uno, Nano, Mega 等):
-
分辨率 (Resolution):
- 这是最重要的指标,通常被直接称为“精度”,但严格来说它决定了最小可分辨的电压变化。
- 绝大多数 AVR 架构的 Arduino(如 Uno, Nano, Mega 使用 ATmega328P 或 ATmega2560)的 ADC 是 10 位 (10-bit) 的。
- 这意味着 ADC 可以将输入的模拟电压(通常是 0V 到 参考电压 Vref 之间)划分为 2^10 = 1024 个离散的数值(电平)。
- 输出的数字值范围是 0 到 1023。
- 量化间隔 / 最小电压步进: 理论上,每个数字值代表的电压差是
Vref / 1024。- 如果使用默认的 Vref = 5V:最小电压步进 = 5V / 1024 ≈ 4.88 mV。也就是说,电压变化小于 4.88mV,ADC 可能无法检测到变化。
- 如果使用更稳定的内部 1.1V 基准(如果芯片支持且配置)或外部更低/更稳定的基准(如 2.5V, 3.3V):最小电压步进会变得更小。例如 Vref=2.5V 时,步进 ≈ 2.5V / 1024 ≈ 2.44 mV。
-
绝对精度 (Absolute Accuracy):
- 这是指 ADC 测量结果与实际输入电压之间的最大偏差(误差)。
- 10 位的分辨率并不等于 10 位的绝对精度!
- 数据手册(如 ATmega328P)中给出的典型 总不可调整误差 (Total Unadjusted Error - TUE) 通常是 ±2 LSB(最低有效位)左右。
- 以 5V 基准为例:
- 1 LSB = 4.88mV
- ±2 LSB ≈ ±9.76mV (±0.01V)
- 这意味着,对于一个给定的真实输入电压,Arduino ADC 读出的值对应的电压值,可能与真实值相差最大约 ±10mV(在 0℃ 到 70℃ 温度范围内)。这包括了偏移误差、增益误差、积分非线性(INL)、微分非线性(DNL)等所有因素的综合影响。
- 关键点:分辨率 ≠ 精度。10位分辨率只保证了你能区分出1024个等级,但每个等级对应的电压值并不完全精确。
-
影响精度的主要因素:
- 参考电压 (Vref) 的稳定性: 这是最关键的因素!默认的板载 5V 电源(通常来自 USB 或稳压器)通常噪声较大且不够精确(可能标称5V,实际4.8V-5.2V甚至更大波动)。使用更稳定、更精确的参考电压源(如外部精密基准源如 REF1025, LM4040 或芯片内置的 1.1V/2.56V 基准)能显著提高精度。
- 噪声(电源噪声、信号源噪声、电磁干扰EMI): ADC 对噪声非常敏感。PCB 布局、电源滤波、信号滤波(尤其是源阻抗较高时)、远离干扰源都很重要。
- 信号源阻抗: ADC 输入引脚内部有一个采样保持电容。如果信号源的内阻太高,在 ADC 采样瞬间无法迅速给这个电容充电到稳定值,就会导致读数偏低且不稳定。数据手册要求源阻抗 ≤ 10kΩ(使用默认设置时)。对于高阻抗源(如分压电阻值很大、传感器输出阻抗高),必须使用缓冲放大器(如运算放大器构成的电压跟随器)。
- 积分非线性 (INL): 实际转换曲线偏离理想直线的最大偏差。ATmega 的 INL 典型值在 ±0.5 LSB 到 ±1.5 LSB 之间。
- 微分非线性 (DNL): 相邻输出码对应的电压步进与理想步进 (1 LSB) 的最大偏差。理想为 0。ATmega 的 DNL 典型值在 ±0.5 LSB 左右(意味着所有码值都可用)。
- 温度和电源电压变化: ADC 性能会随温度和供电电压变化而漂移。
-
如何提高精度(实用建议):
- 使用更稳定的参考电压 (Vref): 这是最有效的方法。优先使用外部高精度基准源 (如 2.5V, 3.0V, 3.3V, 4.096V, 5.000V) 或芯片内置的 1.1V/2.56V 基准(如果电压范围合适)。通过
analogReference()函数设置。 - 降低信号源阻抗: 确保连接到模拟输入引脚的信号源能提供足够的电流(通常源阻抗 ≤ 10kΩ)。对高阻抗源(如电位计、光敏电阻等),要么使用更小的分压电阻(增加功耗),要么添加一个电压跟随器(运算放大器)进行缓冲。
- 添加硬件滤波: 在模拟输入端添加一个简单的 RC 低通滤波器(如 100Ω电阻 + 0.1uF电容到地),可以有效滤除高频噪声。注意电容值不能太大,否则会影响对快速变化信号的响应。
- 添加软件滤波: 多次采样取平均(
analogRead()读数多次求平均),或使用更高级的滤波算法(如移动平均、中值滤波、卡尔曼滤波),可以显著降低随机噪声的影响。 - 优化电源: 使用干净的电源给 Arduino 供电(线性稳压器通常比开关稳压器噪声小)。在电源输入端和芯片供电引脚附近放置足够的去耦电容(如 100nF 陶瓷电容 + 10uF 电解电容)。
- 减少电磁干扰 (EMI): 让模拟信号线远离数字信号线(特别是 PWM 输出)、电源线、电机等噪声源。使用屏蔽线或双绞线传输模拟信号。缩短信号线长度。
- 校准: 对于要求很高的应用,可以进行两点校准(零点偏移和满量程增益校准),以补偿芯片本身的偏移和增益误差。
- 使用更稳定的参考电压 (Vref): 这是最有效的方法。优先使用外部高精度基准源 (如 2.5V, 3.0V, 3.3V, 4.096V, 5.000V) 或芯片内置的 1.1V/2.56V 基准(如果电压范围合适)。通过
总结:
- 核心分辨率: Arduino (AVR) ADC 是 10 位,输出值范围 0 - 1023。
- 绝对精度: 通常 ±2 LSB 左右(约 ±10mV @ 5V Vref)。分辨率高不代表绝对精度高。
- 瓶颈: 默认的 5V 电源作为 Vref 不稳定且不够精确 是限制精度的最大因素。
- 提升关键: 使用优质稳定的参考电压源 (Vref) 是提高精度的首要步骤。
- 其他要点: 注意信号源阻抗(≤10kΩ)、电源/信号滤波、降噪处理。
理解 ADC 精度是分辨率和误差因素的结合,并针对性地解决 Vref 稳定性和噪声问题,是获得可靠模拟测量结果的关键。
浅谈ADC的分辨率与精度
为确保系统满足所需的精度规范,透彻了解不同的误差源非常重要。决定信号链精度的最关键要素之一是A/D 转换器 (ADC),这是本文的重点。请记住,
2023-05-22 11:39:07
Arduino编程基础(一)——Arduino语言资料下载
电子发烧友网为你提供Arduino编程基础(一)——Arduino语言资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工
资料下载
陈文博
2021-04-12 08:42:01
如何在STM32微控制器中获得最佳ADC精度
STM32微控制器内置最多四个高级12位ADC(取决于器件)。提供自校准功能,用于提高环境条件变化时的ADC精度。
资料下载
姚小熊27
2021-03-19 15:59:40
ADC的各种指标如何理解如何提高ADC转换精度
在此我们简要总结一下ADC的各种指标如何理解,以及从硬件到软件都有哪些可以采用的手段来提高ADC的转换精度。
资料下载
刘满贵
2021-03-18 01:16:14
Arduino开发机器人经典书籍推荐Arduino开发实战指南:机器人卷
单片机中各种复杂的寄存器曾让众多的学习者望而生畏——要完成某项功能需要耗费大量的时间去熟悉单片机的底层。 Arduino的诞生,改变了这一局面。Arduino将各种寄存器封装起来,并提供了易用的接口
资料下载
123
2019-05-07 18:21:00
谈谈ADC的分辨率与精度
为确保系统满足所需的精度规范,透彻了解不同的误差源非常重要。决定信号链精度的最关键要素之一是A/D 转换器 (ADC),这是本文的重点。请记住,
2023-05-15 14:06:10
如何提高AT32 MCU ADC转换精度
AT32的微控制器内置最多三个高级12位片上SAR模拟数字转换器(ADC)并提供自校准功能,用于提高环境条件变化时的ADC精度。在涉及模数转换的
2022-10-24 12:04:09
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览