|
Hi,大家好!經(jīng)過前幾次的學(xué)習(xí),我們對Arduino有了基本的了解。接下來我們將繼續(xù)深入的學(xué)習(xí)。 還記得嗎?在前幾次的學(xué)習(xí)過程中,我們曾經(jīng)多次使用到了delay()這個可以讓時間延遲的方法。為了在接下來的學(xué)習(xí)過程中,能夠更靈活的對延時進行控制,這一次,我們試著挑戰(zhàn)一下如何在不使用delay()方法的情況下,依然可以做到時間延時! 開始之前,還讓我們準(zhǔn)備一下所需的材料。 硬件方面
圖片來源:Arduino 電路配件 具體包括如下:
配件看起來是不是很眼熟?其實和點亮LED神燈所需的配件一樣的。不僅如此,電路的連接上也是一樣的呢! 軟件方面Arduino官方提供的IDE。 連接電路
圖片來源:Arduino連接LED電路示意圖 看看是不是和之前學(xué)過的點亮LED神燈的電路連接是一樣的?畢竟這次我們的重點在程序,電路起到的是一個輔助的角色。好!關(guān)于這個就不啰嗦了,下面重點看程序! 添加幾行代碼首先打開Arduino的IDE,新建一個Arduino項目窗口。
圖片來源:Arduino官方IDE 新建完成之后,向其中添加幾行代碼。如下:
哈!今天的代碼猛然看起來有點長。其實吧,還好,還好!如果刪除代碼注釋,其實也是很簡短滴!叫板的話,今天的代碼里其實也只出現(xiàn)了一個新面孔,那就是millis()方法。這個方法的作用是獲取當(dāng)前的時間,返回的數(shù)值為無符號長整型,時間單位是毫秒。loop()方法中的if語句,作用就是判斷上一次的時間和當(dāng)前時間的間隔是否大于等于interval數(shù)值,此處設(shè)置的為1秒鐘。如果大于等于1秒鐘,則重新記錄,將previousMillis變量設(shè)置為當(dāng)前時間,即currentMillis數(shù)值。 圖片來源:Arduino官方IDE的文件編輯菜單選項 最后點擊上圖中指向右側(cè)的箭頭圖標(biāo),將代碼燒入Arduino UNO電路板中?,F(xiàn)在看看LED燈是否是每隔1秒鐘閃爍一次?你還可以在interval數(shù)值定義的地方更改其數(shù)值,重新將代碼燒入Arduino UNO電路板,以加快或減慢LED燈閃爍的頻率。 總結(jié)今天我們一起學(xué)習(xí)了如何在不使用delay()方法的情況下實現(xiàn)時間延遲。不使用delay()方法的好處是,可以在每次延遲中加入自定義邏輯,在每次延遲的過程中完成多個操作。 下期預(yù)告前面的學(xué)習(xí),我們每次只涉及一個元器件。接下來,我們將嘗試加入多個元器件。下一次,我們將嘗試用開關(guān)按鍵控制LED神燈的亮和滅! ohcoder的系列精彩Arduino教程: Arduino教程-初識Arduino(包含本教程目錄):http://www./bbs/dpj-41334-1.html Arduino教程-開篇:http://www./bbs/dpj-41335-1.html Arduino教程-點亮LED神燈:http://www./bbs/dpj-41336-1.html Arduino教程-讓LED神燈閃爍:http://www./bbs/dpj-41337-1.html Arduino教程-讓LED神燈亮度漸變:http://www./bbs/dpj-41338-1.html Arduino教程-獲取輸入數(shù)字信號:http://www./bbs/dpj-41339-1.html Arduino教程-獲取輸入模擬信號:http://www./bbs/dpj-41340-1.html Arduino教程-另一種時間延遲:http://www./bbs/dpj-41331-1.html Arduino教程-按鍵開關(guān):http://www./bbs/dpj-41341-1.html Arduino教程-停止抖動!:http://www./bbs/dpj-41333-1.html Arduino教程-拋棄外部電阻!:http://www./bbs/dpj-41332-1.html Arduino教程-用按鍵開關(guān)計數(shù):http://www./bbs/dpj-41330-1.html ………后續(xù)持續(xù)更新中請打開:http://www./bbs/dpj-41334-1.html |
|
|