今天咱們開始同時講解理論以及實踐。對於絕大部分有過單片機編程經歷的人來講,第一個接觸的大多數就是LED燈(突然想起博主大一那個懵懂的時代,當時大三的師兄給咱們展示了一把流水燈功力,當時真是炫了一把,心中無比激動)。git
第三課主要用到數字IO口,因此在開始實驗以前,咱們先來認識一下Arduino的數字IO口。
數字信號是以0、1表示的不連續信號,也就是以二進制形式表示的信號。在Arduino中數字信號用高低電平來表示,高電平爲數字信號1,低電平爲數字信號0。Arduino上每個帶有數字編號的引腳都是數字引腳,包括寫有"A"編號的模擬輸入引腳。使用這些引腳能夠完成輸入/輸出數字信號的功能。
在使用輸入或者輸出功能前,須要先經過pinMode()函數配置引腳的模式爲輸入或者輸出模式:編程
方法:pinMode(pin,mode)
參數:pin爲指定配置的引腳編號,參數mode爲指定的配置模式。函數
而咱們接下來的LED主要須要用輸出模式,因此咱們須要配置成 pinMode(pin,OUTPUT);配置爲輸出模式之後,還須要使用digitalWrite()函數使該引腳輸出高電平或低電平。oop
方法:digitalWrite(pin,value)
參數:pin爲指定輸出的引腳編號。參數value爲要指定的輸出電平,使用HIGH指定輸出高電平,使用LOW指定輸出低電平。ui
數字引腳除了用於輸出信號外,還可用digitalRead()函數讀取外部輸入的數字信號。code
方法:digitalRead(pin)
參數:pin爲指定讀取狀態的引腳編號。
注意:blog
因爲咱們接下來的實驗程序不少都用到延時函數,那麼這裏就介紹幾個:it
實驗代碼:io
/** * @Desc 點亮熄滅單個LED * @author 單片機菜鳥 * @Date 2016/12/2 * 注意:LED的一端接到5V,另一端接到輸出引腳,低電平亮 */ #define LED 2 //定義2號引腳爲LED void setup() { // 將2號引腳設置爲輸出狀態 pinMode(LED,OUTPUT); } void loop() { digitalWrite(LED,LOW);//點亮LED delay(1000);//延時1s digitalWrite(LED,HIGH);//關閉LED delay(1000);//延時1s }
燒寫到mega2560板子,鏈接LED引腳到2端口,正常現象會看到LED閃爍。class
實驗代碼:
/** * @Desc 流水燈(8個LED依次亮滅) * @author 單片機菜鳥 * @Date 2016/12/2 * 注意:LED的一端接到5V,另一端接到輸出引腳,低電平亮 */ #define LED_START 2 #define LED_END 9 #define DELAY_TIME 500 //延時時間,能夠調節而後就能夠看到亮滅頻率 void setup() { // 將2-9號引腳設置爲輸出狀態 for(int i=LED_START;i<=LED_END;i++){ pinMode(i,OUTPUT); digitalWrite(i,HIGH);//滅掉LED } } void loop() { //從引腳2到9引腳,逐個點亮LED,等待1S再熄滅LED for(int i=LED_START;i<=LED_END;i++){ digitalWrite(i,LOW);//LED亮 delay(DELAY_TIME); digitalWrite(i,HIGH);//LED滅 } //從引腳9到2引腳,逐個點亮LED,等待1S再熄滅LED for(int i=LED_END;i>=LED_START;i--){ digitalWrite(i,LOW);//LED亮 delay(DELAY_TIME); digitalWrite(i,HIGH);//LED滅 } }
不出意外,應該會看到LED燈流水亮滅.
這一節咱們主要學到: