常量

從 YFRobotwiki
在2015年8月14日 (五) 11:22由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

See the Input Pullup Serial tutorial for an example of this in use.

Pins configured as inputs with either INPUT or INPUT_PULLUP can be damaged or destroyed if they are connected to voltages below ground (negative voltages) or above the positive power rail (5V or 3V).


引腳配置為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


Most Arduino boards have a pin connected to an on-board LED in series with a resistor. The constant LED_BUILTIN is the number of the pin to which the on-board LED is connected. Most boards have this LED connected to digital pin 13.