/

Arduino項目:讀取類比輸入

Arduino項目:讀取類比輸入

在這個項目中,我們將使用一個電位計並將其連接到Arduino的類比輸入引腳,並編寫一個程式來讀取當前的值。

在Arduino的第2個項目中,我們學會了如何讀取數字輸入。讀取到的值可以是 01LOWHIGH

這可以通過數字I/O引腳來完成,引腳編號從 013

類比I/O引腳以 A 開頭。在Arduino Uno上,您可以找到6個類比I/O引腳 A0 / A5

Arduino Uno類比I/O引腳

在Arduino MKR 1010 WiFi上,您有7個類比I/O引腳,從 A0A6

Arduino MKR 1010 WiFi類比I/O引腳

不同的板子擁有不同數量和位置的引腳。這些引腳可以配置為類比輸入或類比輸出。

數字信號只能是高或低。類比信號可以保持一系列的值,在Arduino的情況下,它的範圍從 01023,對應著輸入端的電壓從0V到5V的程度。

各種傳感器都會提供給我們類比值。想想溫度傳感器、距離傳感器、聲音傳感器、運動傳感器…我們可以使用Arduino讀取它們的數值,並根據數據決定要做什麼。

我們可以使用一個名為 analogRead() 的函數來實現。

但讓我們先建立一個小電路。

在項目“使用電位計建立一個LED調光器”中,我們建立了一個簡單的電路,使用一個電位計控制LED光。現在讓我們複製該電路的一部分,除了現在我們將Arduino放在那裡。

如果將電位計完全向左轉動,我們讀取到的值應該是 0。完全向右轉動時,我們讀到的值應該是 1023,在中間位置時應該是 512

以下是使用一個10kΩ電位計構建的電路示意圖:

電路示意圖

我們從Arduino的電源輸出引腳獲得0V和5V,並將它們連接到麵包板。然後我們將這些電壓級別連接到電位計的輸入引腳,並獲得輸出引腳,將其連接到類比引腳 A1

連接圖

我們編寫一個程式從該引腳讀取,並將讀取到的值打印到串行接口,這樣我們就可以從Arduino IDE的串行監視器上讀取它:

1
2
3
4
5
6
7
8
void setup() {
Serial.begin(9600);
}

void loop() {
int value = analogRead(A1);
Serial.println(value);
}

需要注意的是,我沒有將 A1 引腳明確設置為輸入引腳,因為引腳默認情況下是輸入的。如果我想寫入該引腳,我需要在 setup() 中使用 pinMode() 进行設置。

以下是我們的程式運行時的結果。當電位計完全向左轉動時,我們讀到的值是 0

結果示例1

當電位計完全向右轉動時,我們讀到的值是 1023(有時由於處理類比值並且不是100%精確,可能是 1022):

結果示例2

在中間位置,您將讀到表示電位計轉動程度的數值:

結果示例3

tags: [“Arduino”, “analog input”, “potentiometer”, “circuit”]