Arduino硬件開發入門點亮LED

原文連接:https://www.shuaihuajun.com/article/arduino-led/

我現在手里有一套Ruff開發板套件和一套Arduino開發板套件。把Ruff開發套件中的所有傳感器用了一個遍之后沒玩夠,于是開始把玩Arduino。沒有對比就沒有傷害真的是,雖然我真正接觸Arduino時間不長,但就我自己的感覺來說,Arduino不論從程序角度還是從硬件角度上來講都比Ruff更底層也就更加靈活,從長遠來看Arduino更具學習和研究價值。所以果斷棄坑Ruff,擁抱Arduino。

不過Ruff基于JavaScript語言編寫控制硬件的程序確實勾起我對宏大的物聯網世界的興趣。Ruff更適合快速做出原型,但無法進入生產環境,這滿足不了我對物聯網世界更底層的好奇。所以再見,Ruff,你好,Arduino。

Arduino IDE

arduino ide集成開發環境界面

Arduino集成開發環境支持語法檢查、上傳程序到開發板、串口監視器等主要功能,最常使用的就是這三個功能。

一個Arduino程序需要包含一個setup函數和一個loop函數,loop函數會在程序運行期間反復執行,setup函數只會在程序開始運行時執行一次。學習就是一個不斷循環重復的過程。

創意構思

不管做什么事情,在開始之前,都有在腦海里先有一個大致的輪廓,雖然在實際操作過程中會萌生新的想法,但一開始就有一個想法是好的。

因為是入門Arduino,所以目的很單純,就是點亮一個LED燈這么簡單,當成功點亮了一個LED等,可以試著點亮一排LED燈,還可以讓這些LED燈拼成一個符號,不停的閃爍也蠻不錯的,或者一個接著一個的點亮和熄滅。

先在腦子里畫一個電路。

對于我這么個剛入門的小白來說,還能記得初中物理的電路知識,也是很值得鼓勵的。如果我沒有說錯的話,上圖中的情況叫做并聯電路。之所以加一塊220歐的電阻,是因為LED承受不住太強的電流。

可以把Arduino開發板看作是一塊電池,我將8號引腳的模式設置為輸出,可以看作是電池的正極,LED燈并聯起來,匯集到Arduino的負極接地引腳。

我先腦子里有個大致的想法,然后一邊擺弄電路再一邊晚上想法,因為當時連接電路的時候也是不斷地嘗試,怎么連接線路能更美觀,最終連成了這個樣子,并且LED燈最終也點亮了。

我認為學習的過程應該是,理解消化前人總結的東西,真正理解之后再去記憶吸收,然后不斷的模仿和重復,再創新,最后將創新總結起來并分享出去,等待那些識得你所創造的價值的人的理解。創新很難,能走到不斷模仿和重復這一步已經很不簡單。

我的學習過程

組裝電路

根據腦子里想象的樣子,摸索著如何連接電路,過程中會不斷改進和完善先前的想法。

一組LED燈插在面包板上杜邦線連接Arduino開發板通過編程線連接電腦

連接好電路,接下來就是編程。使用pinMode(8, OUTPUT)函數將8號引腳作為電平的輸出端口即為正極,在loop函數中不斷變換8號引腳的電平。

因為電路只有通和斷兩個狀態,要么開,要么關,所以digitalWrite()第二個參數只有中可能,要么HIGH要么LOW。當執行digitalWrite(8, HIGH)的時候,通電,電路中有電壓產生,所以就有運動的電流,電流從LED陽極流向陰極,LED就會發光;當執行digitalWrite(8, LOW)的時候,斷電,電路中沒有電壓,也就沒有運動的電流,LED燈就不亮。

intled =8;voidsetup(){// 這里寫初始化配置,只執行一次:pinMode(led, OUTPUT);}voidloop(){// 這里寫主要代碼,會重復執行:digitalWrite(led, HIGH);? delay(500);? digitalWrite(led, LOW);? delay(500);}

digitalWrite(8, HIGH)執行后,電路通電,LED亮,此時執行delay(500)函數主程序會暫停500毫秒在執行,LED就會亮500毫秒,然后digitalWrite(8, LOW)執行,LED滅,主程序再暫停500毫秒,至此一個循環完畢,立即進入下一個循環。

我就看到面包板上的一排LED燈每1秒完成亮和滅的表演。

我還發現,如果將LED燈門串聯起來,每一個LED發的光都很微弱,將LED燈并聯起來每一個LED發的光一樣而且很亮。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容