當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。