说明
从指定的模拟引脚读取值。 Arduino 板包含一个多通道、10 位模数转换器。这意味着它将 0 和工作电压(5V 或 3.3V)之间的输入电压映射为 0 和 1023 之间的整数值。例如,在 Arduino UNO 上,这会产生读数之间的分辨率:5 伏特/1024 单位或, 每单位 0.0049 伏 (4.9 mV)。有关某些 Arduino 板的可用引脚、工作电压和最大分辨率,请参见下表。
可以使用 analogReference() 更改输入范围,而使用 analogReadResolution() 可以更改分辨率(仅适用于 Zero、Due 和 MKR 板)。
在基于 ATmega 的板(UNO、Nano、Mini、Mega)上,读取模拟输入大约需要 100 微秒(0.0001 秒),因此最大读取速率约为每秒 10,000 次。
木板 | 工作电压 | 可用引脚 | 最大分辨率 |
---|---|---|---|
Uno |
5 伏 |
A0 至 A5 |
10 位 |
Mini, Nano |
5 伏 |
A0 至 A7 |
10 位 |
兆丰,兆丰2560,MegaADK |
5 伏 |
A0 至 A14 |
10 位 |
Micro |
5 伏 |
A0 至 A11* |
10 位 |
Leonardo |
5 伏 |
A0 至 A11* |
10 位 |
Zero |
3.3 伏 |
A0 至 A5 |
12 位** |
Due |
3.3 伏 |
A0 至 A11 |
12 位** |
MKR 家族板 |
3.3 伏 |
A0 至 A6 |
12 位** |
*A0 到 A5 标记在板上,A6 到 A11 分别在引脚 4、6、8、9、10 和 12 上可用
**默认analogRead()
为了兼容性,这些板的分辨率为 10 位。你需要使用analogReadResolution()将其更改为 12 位。
用法
analogRead(pin)
参数
pin
:要读取的模拟输入引脚的名称(大多数板上的 A0 到 A5,MKR 板上的 A0 到 A6,Mini 和 Nano 上的 A0 到 A7,Mega 上的 A0 到 A15)。
返回
引脚上的模拟读数。虽然它受限于模数转换器的分辨率(0-1023 为 10 位或 0-4095 为 12 位)。数据类型:int
。
示例代码
该代码读取analogPin上的电压并显示它。
int analogPin = A3; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup() {
Serial.begin(9600); // setup serial
}
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
注意事项和警告
如果模拟输入引脚未连接任何东西,analogRead()
返回的值将根据多种因子(例如其他模拟输入的值、您的手离电路板的距离等)而波动。
相关用法
- Arduino analogReadResolution()用法及代码示例
- 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大神的英文原创作品 analogRead()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。