數(shù)字信號
數(shù)字信號是以0、1表示的電平不連續(xù)變化的信號,也就是以二進制的形式表示的信號。 在Arduino中數(shù)字信號通過高低電平來表示,高電平則為數(shù)字信號1,低電平則為數(shù)字信號0 。
Arduino上每一個帶有數(shù)字編號的引腳,都是數(shù)字引腳,包括寫有“A”編號的模擬輸入引腳。使用這些引腳,可以完成輸入輸出數(shù)字信號的功能。
在使用輸入或輸出功能前,你需要先通過pinMode() 函數(shù)配置引腳的模式為輸入模式或輸出模式。
- pinMode(pin, mode);
參數(shù)pin為指定配置的引腳編號;參數(shù)mode為指定的配置模式。
可使用的三種模式:
INPUT 輸入模式
OUTPUT 輸出模式
INPUT_PULLUP 輸入上拉模式
如之前我們在Blink程序中使用到了pinMode(13, OUTPUT),即是把13號引腳配置為輸出模式。
配置成輸出模式后,你還需要使用digitalWrite() 讓其輸出高電平或者是低電平。其調(diào)用形式為:
- digitalWrite(pin, value);
參數(shù)pin為指定輸出的引腳編號;參數(shù)value為你要指定輸出的電平,使用HIGH指定輸出高電平,或是使用LOW指定輸出低電平。
Arduino中輸出的低電平為0V,輸出的高電平為當前Arduino的工作電壓。例如Arduino UNO的工作電壓為5V,其高電平輸出也是5V;Arduino Due工作電壓為3.3V,所以高電平輸出也就是3.3V。
數(shù)字引腳除了用于輸出信號外,還可以用digitalRead() 函數(shù)讀取外部輸入的數(shù)字信號,其調(diào)用形式為:
- int value = digitalRead(pin);
參數(shù)pin為指定讀取狀態(tài)的引腳編號;返回值value為獲取到的信號狀態(tài),1為高電平,0為低電平。
Arduino UNO會將大于3V的輸入電壓視為高電平識別,小于1.5V的電壓視為低電平識別。所以,即使輸入電壓不太準確,Arduino UNO也可以正常識別。需要注意的是,超過5V的輸入電壓可能會損壞Arduino UNO。(不同型號的Arduino有所不同)
在Arduino核心庫中,OUTPUT被定義等于1,INPUT被定義等于0,HIGH被定義等于1,LOW被定義等于0。因此這里也可以用數(shù)字替代這些定義。如:
- pinMode(13,1);
- digitalWrite(13,1)
此處僅作說明,并不推薦這樣寫代碼,因為這樣會降低程序的可讀性。
我們再回到最初的Blink程序,在Arduino IDE菜單>文件>示例>01.Basics>Blink 找到它。程序如下:
- Blink
- 等待一秒鐘,點亮LED,再等待一秒鐘,熄滅LED,如此循環(huán)
- */
- // 在大多數(shù)Arduino控制板上 13號引腳都連接了一個標有“L”的LED燈
- // 給13號引腳連接的設備設置一個別名“l(fā)ed”
- int led = 13;
- // 在板子啟動或者復位重啟后, setup部分的程序只會運行一次
- void setup(){
- // 將“l(fā)ed”引腳設置為輸出狀態(tài)
- pinMode(led, OUTPUT);
- }
- // setup部分程序運行完后,loop部分的程序會不斷重復運行
- void loop()
- {
- digitalWrite(led, HIGH); // 點亮LED
- delay(1000); // 等待一秒鐘
- digitalWrite(led, LOW); // 通過將引腳電平拉低,關閉LED
- delay(1000); // 等待一秒鐘
- }
在Blink中,我們通過新建變量的方法
- int led = 13;
為13腳連接的設備設置了一個變量名“l(fā)ed”,在此后的程序中,使用“l(fā)ed”則可代表對應編號的引腳(或者是該引腳上連接的設備)。這種寫法可以提高程序的可讀性,并且方便修改,如設備需要更換連接引腳,直接修改該變量對應的數(shù)值即可。
也可以使用如下語句:
- #define LED 13
以宏定義的方式,來為設備設置一個名稱。
delay() 為毫秒延時函數(shù),delay(1000) 即延時1秒(1000毫秒),在本程序中用來控制,開關LED的間隔時間。你可以自行修改其中的參數(shù),觀察實際運行效果。
Blink是最簡單的Arduino程序,在此基礎上,我們還可以制作控制多個LED,逐個點亮,逐個熄滅的流水燈效果。
承擔因您的行為而導致的法律責任,
本站有權保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。