說明
從指定的模擬引腳讀取值。 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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。