常量
在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
當對數字引腳讀或者寫操作時只有兩個可能的值:HIGH和LOW。
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
數字引腳可以被用做 INPUT,INPUT_PULLUP或OUTPUT。通過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的。
更多建議和問題歡迎反饋至 YFRobot論壇