“常量”的版本間的差異

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航搜索
(以“constants是在Arduino語言里預(yù)定義的變量。它們被用來使程序更易閱讀。我們按組將常量分類。<br> 邏輯層定義,true與false(布爾...”為內(nèi)容創(chuàng)建頁面)
 

2014年9月12日 (五) 13:36的最后版本

constants是在Arduino語言里預(yù)定義的變量。它們被用來使程序更易閱讀。我們按組將常量分類。
邏輯層定義,true與false(布爾Boolean常量)

在Arduino內(nèi)有兩個常量用來表示真和假:true和 false。
false

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

true通常被定義為1,這是正確的,但true具有更廣泛的定義。在布爾含義(Boolean sense)里任何 非零 整數(shù) 為true。所以在布爾含義內(nèi)-1,2和-200都定義為ture。 需要注意的是true和false常量,不同于HIGH,LOW,INPUT和OUTPUT,需要全部小寫。

——這里引申一下題外話arduino是大小寫敏感語言(case sensitive)。
引腳電壓定義,HIGH和LOW

當(dāng)讀?。╮ead)或?qū)懭耄╳rite)數(shù)字引腳時只有兩個可能的值: HIGH 和 LOW 。
HIGH

HIGH(參考引腳)的含義取決于引腳(pin)的設(shè)置,引腳定義為INPUT或OUTPUT時含義有所不同。當(dāng)一個引腳通過pinMode被設(shè)置為INPUT,并通過digitalRead讀取(read)時。如果當(dāng)前引腳的電壓大于等于3V,微控制器將會返回為HIGH。 引腳也可以通過pinMode被設(shè)置為INPUT,并通過digitalWrite設(shè)置為HIGH。輸入引腳的值將被一個內(nèi)在的20K上拉電阻 控制 在HIGH上,除非一個外部電路將其拉低到LOW。 當(dāng)一個引腳通過pinMode被設(shè)置為OUTPUT,并digitalWrite設(shè)置為HIGH時,引腳的電壓應(yīng)在5V。在這種狀態(tài)下,它可以 輸出電流 。例如,點(diǎn)亮一個通過一串電阻接地或設(shè)置為LOW的OUTPUT屬性引腳的LED。
LOW

LOW的含義同樣取決于引腳設(shè)置,引腳定義為INPUT或OUTPUT時含義有所不同。當(dāng)一個引腳通過pinMode配置為INPUT,通過digitalRead設(shè)置為讀取(read)時,如果當(dāng)前引腳的電壓小于等于2V,微控制器將返回為LOW。 當(dāng)一個引腳通過pinMode配置為OUTPUT,并通過digitalWrite設(shè)置為LOW時,引腳為0V。在這種狀態(tài)下,它可以 倒灌 電流。例如,點(diǎn)亮一個通過串聯(lián)電阻連接到+5V,或到另一個引腳配置為OUTPUT、HIGH的的LED。
數(shù)字引腳(Digital pins)定義,INPUT和OUTPUT

數(shù)字引腳當(dāng)作 INPUT 或 OUTPUT都可以 。用pinMode()方法使一個數(shù)字引腳從INPUT到OUTPUT變化。
引腳(Pins)配置為輸入(Inputs)

Arduino(Atmega)引腳通過pinMode()配置為 輸入(INPUT) 即是將其配置在一個高阻抗的狀態(tài)。配置為INPUT的引腳可以理解為引腳取樣時對電路有極小的需求,即等效于在引腳前串聯(lián)一個100兆歐姆(Megohms)的電阻。這使得它們非常利于讀取傳感器,而不是為LED供電。
引腳(Pins)配置為輸出(Outputs)

引腳通過pinMode()配置為 輸出(OUTPUT) 即是將其配置在一個低阻抗的狀態(tài)。

這意味著它們可以為電路提供充足的電流。Atmega引腳可以向其他設(shè)備/電路提供(提供正電流positive current)或倒灌(提供負(fù)電流negative current)達(dá)40毫安(mA)的電流。這使得它們利于給LED供電,而不是讀取傳感器。輸出(OUTPUT)引腳被短路的接地或5V電路上會受到損壞甚至燒毀。Atmega引腳在為繼電器或電機(jī)供電時,由于電流不足,將需要一些外接電路來實現(xiàn)供電。