原文連接:https://www.shuaihuajun.com/article/arduino-led/
我現(xiàn)在手里有一套Ruff開發(fā)板套件和一套Arduino開發(fā)板套件。把Ruff開發(fā)套件中的所有傳感器用了一個遍之后沒玩夠梭稚,于是開始把玩Arduino吊宋。沒有對比就沒有傷害真的是动知,雖然我真正接觸Arduino時間不長,但就我自己的感覺來說摔刁,Arduino不論從程序角度還是從硬件角度上來講都比Ruff更底層也就更加靈活,從長遠來看Arduino更具學(xué)習(xí)和研究價值。所以果斷棄坑Ruff蒂阱,擁抱Arduino。
不過Ruff基于JavaScript語言編寫控制硬件的程序確實勾起我對宏大的物聯(lián)網(wǎng)世界的興趣狂塘。Ruff更適合快速做出原型录煤,但無法進入生產(chǎn)環(huán)境,這滿足不了我對物聯(lián)網(wǎng)世界更底層的好奇荞胡。所以再見妈踊,Ruff,你好泪漂,Arduino廊营。
Arduino IDE
Arduino集成開發(fā)環(huán)境支持語法檢查、上傳程序到開發(fā)板萝勤、串口監(jiān)視器等主要功能露筒,最常使用的就是這三個功能。
一個Arduino程序需要包含一個setup函數(shù)和一個loop函數(shù)敌卓,loop函數(shù)會在程序運行期間反復(fù)執(zhí)行慎式,setup函數(shù)只會在程序開始運行時執(zhí)行一次。學(xué)習(xí)就是一個不斷循環(huán)重復(fù)的過程趟径。
創(chuàng)意構(gòu)思
不管做什么事情瘪吏,在開始之前,都有在腦海里先有一個大致的輪廓蜗巧,雖然在實際操作過程中會萌生新的想法掌眠,但一開始就有一個想法是好的。
因為是入門Arduino惧蛹,所以目的很單純扇救,就是點亮一個LED燈這么簡單,當(dāng)成功點亮了一個LED等香嗓,可以試著點亮一排LED燈迅腔,還可以讓這些LED燈拼成一個符號,不停的閃爍也蠻不錯的靠娱,或者一個接著一個的點亮和熄滅沧烈。
先在腦子里畫一個電路。
對于我這么個剛?cè)腴T的小白來說像云,還能記得初中物理的電路知識锌雀,也是很值得鼓勵的蚂夕。如果我沒有說錯的話,上圖中的情況叫做并聯(lián)電路腋逆。之所以加一塊220歐的電阻婿牍,是因為LED承受不住太強的電流。
可以把Arduino開發(fā)板看作是一塊電池惩歉,我將8號引腳的模式設(shè)置為輸出等脂,可以看作是電池的正極,LED燈并聯(lián)起來撑蚌,匯集到Arduino的負極接地引腳上遥。
我先腦子里有個大致的想法,然后一邊擺弄電路再一邊晚上想法争涌,因為當(dāng)時連接電路的時候也是不斷地嘗試粉楚,怎么連接線路能更美觀,最終連成了這個樣子亮垫,并且LED燈最終也點亮了模软。
我認為學(xué)習(xí)的過程應(yīng)該是,理解消化前人總結(jié)的東西饮潦,真正理解之后再去記憶吸收撵摆,然后不斷的模仿和重復(fù),再創(chuàng)新害晦,最后將創(chuàng)新總結(jié)起來并分享出去,等待那些識得你所創(chuàng)造的價值的人的理解暑中。創(chuàng)新很難壹瘟,能走到不斷模仿和重復(fù)這一步已經(jīng)很不簡單。
組裝電路
根據(jù)腦子里想象的樣子鳄逾,摸索著如何連接電路稻轨,過程中會不斷改進和完善先前的想法。
一組LED燈插在面包板上杜邦線連接Arduino開發(fā)板通過編程線連接電腦
連接好電路雕凹,接下來就是編程殴俱。使用pinMode(8, OUTPUT)函數(shù)將8號引腳作為電平的輸出端口即為正極,在loop函數(shù)中不斷變換8號引腳的電平枚抵。
因為電路只有通和斷兩個狀態(tài)线欲,要么開,要么關(guān)汽摹,所以digitalWrite()第二個參數(shù)只有中可能李丰,要么HIGH要么LOW。當(dāng)執(zhí)行digitalWrite(8, HIGH)的時候逼泣,通電趴泌,電路中有電壓產(chǎn)生舟舒,所以就有運動的電流,電流從LED陽極流向陰極嗜憔,LED就會發(fā)光秃励;當(dāng)執(zhí)行digitalWrite(8, LOW)的時候,斷電吉捶,電路中沒有電壓夺鲜,也就沒有運動的電流,LED燈就不亮帚稠。
intled =8;voidsetup(){// 這里寫初始化配置谣旁,只執(zhí)行一次:pinMode(led, OUTPUT);}voidloop(){// 這里寫主要代碼,會重復(fù)執(zhí)行:digitalWrite(led, HIGH);? delay(500);? digitalWrite(led, LOW);? delay(500);}
digitalWrite(8, HIGH)執(zhí)行后滋早,電路通電榄审,LED亮,此時執(zhí)行delay(500)函數(shù)主程序會暫停500毫秒在執(zhí)行杆麸,LED就會亮500毫秒搁进,然后digitalWrite(8, LOW)執(zhí)行,LED滅昔头,主程序再暫停500毫秒饼问,至此一個循環(huán)完畢,立即進入下一個循環(huán)揭斧。
我就看到面包板上的一排LED燈每1秒完成亮和滅的表演莱革。
我還發(fā)現(xiàn),如果將LED燈門串聯(lián)起來讹开,每一個LED發(fā)的光都很微弱盅视,將LED燈并聯(lián)起來每一個LED發(fā)的光一樣而且很亮。