模数转换器 (ADC)(高达 14 位)
在当代电子项目中,准确读取和处理模拟信号至关重要。模数转换器 (ADC) 将模拟信号转换为数字信号供微控制器处理。Arduino Uno R4 在这方面取得了显著进步,这得益于其更强大的处理器。上一代 Arduino Uno R3 的最大分辨率为 10 位,而 Arduino Uno R4 的 ADC 分辨率现在为 14 位。这一改进允许从模拟信号中获取更精确的值,提高数据收集和处理的精细度和准确性。
设置 ADC 分辨率
Arduino 板上的标准分辨率设置为 10 位 (0-1023)。UNO R4 WiFi 支持高达 14 位 (0-16383) 的分辨率,可从模拟信号中提供更精确的值。要更新分辨率,您只需使用 analogReadResolution() 命令。
void setup() {
// open a serial connection
Serial.begin(9600);
}
void loop() {
// read the input on A0 at default resolution (10 bits)
// and send it out the serial connection
analogReadResolution(10);
Serial.print("ADC 10-bit (default) : ");
Serial.print(analogRead(A0));
// change the resolution to 12 bits and read A0
analogReadResolution(12);
Serial.print(", 12-bit : ");
Serial.print(analogRead(A0));
// change the resolution to 14 bits and read A0
analogReadResolution(14);
Serial.print(", 16-bit : ");
Serial.print(analogRead(A0));
// change the resolution to 8 bits and read A0
analogReadResolution(8);
Serial.print(", 8-bit : ");
Serial.println(analogRead(A0));
// a little delay to not hog Serial Monitor
delay(100);
}
注意事项和警告
设置 ADC 分辨率时,请考虑以下几点:
硬件能力限制 :如果您将
analogReadResolution()值设置得高于板的能力,Arduino 将仅以其最高分辨率报告,并用零填充额外的位。例如,使用 Uno R4 并设置analogReadResolution(16)将给出一个近似的 16 位数字,前 14 位包含实际的 ADC 读数,最后 2 位用零填充。较低分辨率设置 :如果您将
analogReadResolution()值设置得低于板的能力,则从 ADC 读取的多余最低有效位将被丢弃。如果您的应用程序不需要全分辨率,这允许您使用简化范围。
理解这些注意事项将帮助您有效利用 Arduino Uno R4 的 ADC 功能,确保您的特定应用获得最佳性能和精度。
参考 - Arduino Reference - analogReadResolution() - Arduino UNO R4 Minima ADC Resolution - Arduino UNO R4 WiFi ADC Resolution