当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Arduino analogRead()用法及代码示例


[模拟输入/输出]

说明

从指定的模拟引脚读取值。 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.cc大神的英文原创作品 analogRead()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。