说明
analogReadResolution() 是用于 Zero、Due、MKR 系列、Nano 33(BLE 和 IoT)和 Portenta 的模拟 API 的扩展。
设置 analogRead()
返回的值的大小(以位为单位)。它默认为 10 位(返回 0-1023 之间的值)以向后兼容基于 AVR 的板。
Zero、Due、MKR 系列和 Nano 33(BLE 和 IoT)板具有 12 位 ADC 函数,可以通过将分辨率更改为 12 来访问。这将返回值analogRead()
介于 0 和 4095 之间。
波特塔H7有一个 16 位 ADC,它允许 0 到 65535 之间的值。
用法
analogReadResolution(bits)
参数
bits
:确定analogRead()
函数返回的值的分辨率(以位为单位)。您可以将其设置在 1 到 32 之间。您可以将分辨率设置为高于支持的 12 位或 16 位,但 analogRead()
返回的值将受到近似值。有关详细信息,请参阅下面的注释。
返回
无
示例代码
该代码显示了如何使用具有不同分辨率的 ADC。
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 16 bits and read A0
analogReadResolution(16);
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);
}
注意事项和警告
如果您将analogReadResolution()
值设置为高于您的板能力的值,Arduino 将仅以最高分辨率报告,用零填充额外的位。
例如:使用带有analogReadResolution(16)
的 Due 将为您提供一个近似的 16 位数字,其中前 12 位包含实际 ADC 读数,最后 4 位用零填充。
如果您将 analogReadResolution()
值设置为低于您的板能力的值,则从 ADC 读取的额外最低有效位将被丢弃。
使用 16 位分辨率(或任何高于实际硬件函数的分辨率)允许您编写草图,当这些设备在未来的板上可用时自动处理具有更高分辨率 ADC 的设备,而无需更改代码行。
相关用法
- Arduino analogRead()用法及代码示例
- Arduino analogWriteResolution()用法及代码示例
- Arduino analogWrite()用法及代码示例
- Arduino array用法及代码示例
- Arduino abs()用法及代码示例
- Arduino attachInterrupt()用法及代码示例
- Arduino long用法及代码示例
- Arduino Arduino_EMBRYO_2 - setLengthXY()用法及代码示例
- Arduino ~用法及代码示例
- Arduino ArduinoBLE - bleDevice.advertisedServiceUuidCount()用法及代码示例
- Arduino const用法及代码示例
- Arduino Ethernet - server.begin()用法及代码示例
- Arduino ArduinoBLE - BLEService()用法及代码示例
- Arduino digitalWrite()用法及代码示例
- Arduino ArduinoBLE - bleCharacteristic.subscribe()用法及代码示例
- Arduino Servo - attach()用法及代码示例
- Arduino write()用法及代码示例
- Arduino Arduino_LSM9DS1 - readGyroscope()用法及代码示例
- Arduino ArduinoSound - FFTAnalyzer.input()用法及代码示例
- Arduino MKRGSM - gprs.attachGPRS()用法及代码示例
- Arduino WiFiNINA - WiFi.config()用法及代码示例
- Arduino MKRGSM - sms.read()用法及代码示例
- Arduino MKRNB - getCurrentCarrier()用法及代码示例
- Arduino Scheduler - Scheduler.startLoop()用法及代码示例
- Arduino Arduino_LSM9DS1 - magneticFieldAvailable()用法及代码示例
注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 analogReadResolution()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。