常量

出自YFRobotwiki
在2015年8月14日 (五) 11:34由Admin對話 | 貢獻所做的修訂版本

跳轉到: 導覽搜尋

在Arduino語言中Constants 是預定義的變量。他們是用來使程序易於閱讀。我們按組將常量進行分類:


邏輯層定義: true 與 false (Boolean 布爾型常量)


在Arduino語言里有兩個常量被用於表示真和假: true,與false


false

在這兩個常量中 false 更容易被定義。false 被定義為 0 。


true

true通常被定義為1,這個正確的,但其實 true 具有更廣泛的定義。在布爾含義(Boolean sense)里任何非零整數都為 true,所以像-1,2,或者200都被定義為 true。

注意 true 和 false 常量不同於 HIGH, LOW, INPUT 和 OUTPUT 需要小寫。


引腳電壓定義: HIGH 與 LOW


當對數字引腳讀或者寫操作時只有兩個可能的值:HIGHLOW


HIGH

HIGH(參考引腳)的含義有所不同,取決於引腳(pin)設置為 INPUT 還是 OUTPUT。當一個引腳通過pinMode()被設置為 INPUT,並使用digitalRead()函數讀取引腳時,在以下情況中,Arduino控制器將返回 HIGH:

- 引腳電壓大於3V(5V板)
- 引腳電壓大於2V(3.3V板)

引腳也可以通過 pinMode()設置為 INPUT,然後使用digitalWrite() 設置為HIGH。這將使能內部20K上拉電阻並將這個輸入引腳控制為HIGH狀態,除非有外部拉低電路。這是INPUT_PULLUP如何工作及更詳細的描述如。

當引腳通過pinMode()設置為OUTPUT,通過digitalWrite()設置為HIGH時,該引腳狀態:

- 5 V (5V boards);
- 3.3 V (3.3V boards);

在這種狀態下它可以輸出電流,例如:點亮一個通過串聯電阻連接到GND的LED。


LOW

LOW(參考引腳)的含義也有所不同,同樣取決於引腳(pin)設置為 INPUT 還是 OUTPUT。當一個引腳通過pinMode()被設置為 INPUT,並使用digitalRead()函數讀取引腳時,在以下情況中,Arduino控制器將返回 LOW:

- 引腳電壓低於3V(5V板)
- 引腳電壓低於2V(3.3V板)

當一個引腳通過pinMode()被設置為 OUTPUT,並使用digitalWrite()函數設置為 LOW狀態時,該引腳電壓為0V(5V板和3.3V板相同)。在這種狀態下它可以反向電流,例如:點亮一個通過串聯電阻連接到+5V(或者+3.3V)的LED。


Defining Digital Pins modes: INPUT, INPUT_PULLUP, and OUTPUT


數字引腳可以被用做 INPUTINPUT_PULLUPOUTPUT。通過pinMode()改變一個數字引腳使用狀態(在3者中切換)。


引腳配置為INPUT

Arduino(Atmega)引腳通過pinMode()配置為 輸入(INPUT) 即是將其配置在一個高阻抗的狀態。引腳配置為INPUT 使引腳進行取樣時對電路要求非常小,相在引腳前當於串聯一個100M歐電阻。這使得他們更利於讀取一個傳感器。

如果你配置你的引腳為INPUT,並讀取一個開關狀態,當開關處於打開狀態時輸入引腳將是“浮動的”,並導致不可預知的結果。為了保證當開關打開狀態能讀到一個確切的狀態,必須使用上拉或者下拉電阻。這個電阻的目的是當開關打開時,引腳處於一個已知狀態。通常我們會選擇10 K歐姆電阻,因為它阻值低確有效防止浮動輸入,同時當開關關閉是,一個高阻值的電阻阻礙了電流流通。 有關更多信息,請參見教程:Digital Read Serial

如果使用一個下拉電阻,當開關打開時輸入引腳將為低,當開關關閉為高。

如果使用一個上拉電阻,當開關打開時輸入引腳將為高,當開關關閉為低。


引腳配置為INPUT_PULLUP


arduino上的單片機具有內部上拉電阻(電阻連接到電源內部)並且你可以使用。如果你傾向於使用它代替外部上拉電阻,可以使用pinMode()設置引腳為INPUT_PULLUP 。

詳細可以參考使用例程:Input Pullup Serial

引腳作為輸入配置兩者INPUT或INPUT_PULLUP任何一個都可以被損壞或摧毀了,如果連接了負電壓或高電壓(5 v或3 v)。


引腳配置為Outputs

Pins configured as OUTPUT with pinMode() are said to be in a low-impedance state. This means that they can provide a substantial amount of current to other circuits. Atmega pins can source (provide current) or sink (absorb current) up to 40 mA (milliamps) of current to other devices/circuits. This makes them useful for powering LEDs because LEDs typically use less than 40 mA. Loads greater than 40 mA (e.g. motors) will require a transistor or other interface circuitry.

Pins configured as outputs can be damaged or destroyed if they are connected to either the ground or positive power rails.


Defining built-ins: LED_BUILTIN


大多數Arduino電路板都有一個引腳通過串聯電阻連接板載LED。常量LED_BUILTIN 為該引腳的引腳號。大多數板子的板載led都是連接到數字引腳13的。