Arduino項目:讀取類比輸入
在這個項目中,我們將使用一個電位計並將其連接到Arduino的類比輸入引腳,並編寫一個程式來讀取當前的值。 在Arduino的第2個項目中,我們學會了如何讀取數字輸入。讀取到的值可以是 0 或 1,LOW 或 HIGH。 這可以通過數字I/O引腳來完成,引腳編號從 0 到 13。 類比I/O引腳以 A 開頭。在Arduino Uno上,您可以找到6個類比I/O引腳 A0 / A5: 在Arduino MKR 1010 WiFi上,您有7個類比I/O引腳,從 A0 到 A6: 不同的板子擁有不同數量和位置的引腳。這些引腳可以配置為類比輸入或類比輸出。 數字信號只能是高或低。類比信號可以保持一系列的值,在Arduino的情況下,它的範圍從 0 到 1023,對應著輸入端的電壓從0V到5V的程度。 各種傳感器都會提供給我們類比值。想想溫度傳感器、距離傳感器、聲音傳感器、運動傳感器…我們可以使用Arduino讀取它們的數值,並根據數據決定要做什麼。 我們可以使用一個名為 analogRead() 的函數來實現。 但讓我們先建立一個小電路。 在項目“使用電位計建立一個LED調光器”中,我們建立了一個簡單的電路,使用一個電位計控制LED光。現在讓我們複製該電路的一部分,除了現在我們將Arduino放在那裡。 如果將電位計完全向左轉動,我們讀取到的值應該是 0。完全向右轉動時,我們讀到的值應該是 1023,在中間位置時應該是 512。 以下是使用一個10kΩ電位計構建的電路示意圖: 我們從Arduino的電源輸出引腳獲得0V和5V,並將它們連接到麵包板。然後我們將這些電壓級別連接到電位計的輸入引腳,並獲得輸出引腳,將其連接到類比引腳 A1: 我們編寫一個程式從該引腳讀取,並將讀取到的值打印到串行接口,這樣我們就可以從Arduino IDE的串行監視器上讀取它: void setup() { Serial.begin(9600); } void loop() { int value = analogRead(A1); Serial.println(value); } 需要注意的是,我沒有將 A1 引腳明確設置為輸入引腳,因為引腳默認情況下是輸入的。如果我想寫入該引腳,我需要在 setup() 中使用 pinMode() 进行設置。 以下是我們的程式運行時的結果。當電位計完全向左轉動時,我們讀到的值是 0: 當電位計完全向右轉動時,我們讀到的值是 1023(有時由於處理類比值並且不是100%精確,可能是 1022):...