溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Beaglebone Black中如何實現(xiàn)閃爍板載LED

發(fā)布時間:2021-12-21 14:11:40 來源:億速云 閱讀:128 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹Beaglebone Black中如何實現(xiàn)閃爍板載LED,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

閃爍板載LED

當設(shè)置完你的Beaglebone Black的時候,可能早就非常期待你的第一個項目了。下面就來滿足大家的愿望,當然,這個項目可不是驚天動地的大項目,但萬事總是有個開始的。這個項目不需要額外的電子器件,這可以讓你的精力集中在編程這方面來。這也可以確保你的Beaglebone Black板子所有的設(shè)置都是正確的。

閑話少敘,我們的這個項目是編寫代碼控制Beaglebone Black的板載LED。如果你之前有過編程經(jīng)驗,那么可以把這個項目當做Beaglebone Black的“Hello World”程序。我們將會從零開始完成整個程序,這樣可以使你在Cloud9 IDE中編寫B(tài)oneScript代碼有一個初步的感覺。

下面的就是閃爍板載LED的代碼:

  • var b = require('bonescript');

  • var led = "USR3";

  •  

  • b.pinMode(led, b.OUTPUT);

  •  

  • var state = b.LOW;

  •  

  • b.digitalWrite(led, state);

  •  

  • setInterval(toggle, 1000);

  •  

  • function toggle() {

  •     if(state == b.LOW) state = b.HIGH;

  •     else state = b.LOW;

  •     b.digitalWrite(led, state)

  • }

當使用BoneScript編寫代碼的時候,我們需要將代碼指向BoneScript庫以訪問GPIO端口和Beaglebone Black的其他功能。所以,我們的第一行代碼就創(chuàng)建一個變量(b)來將兩個括號之間的庫引入我們的代碼:

  • var b = require('bonescript');

代碼的下一個邏輯上的代碼段是創(chuàng)建引用板載LED USR3的一個變量:

  • var led = "USR3";

在上面的例子中我們將這個變量稱為led,它對應于板載LED的USR3。

Beaglebone Black上面的GPIO數(shù)字端口可以被設(shè)置為輸入或者輸出端口。所以,在我們的代碼中需要告訴Beaglebone Black我們想要板載LED作為輸出。為了完成這個任務,我們需要使用名為pinMode的函數(shù)并將我們期望的端口作為他的參數(shù);在這個示例中,我們使用變量led并使用變量b.OUTPUT將它設(shè)置為輸出:

  • b.pinMode(led, b.OUTPUT);

在這個代碼中,我們創(chuàng)建了一個集合了LED狀態(tài)的循環(huán)。在這個循環(huán)中,將LED的狀態(tài)在開和關(guān)之間切換。要完成它,我們還需要設(shè)置一個額外的變量state,它用來保存LED此時的狀態(tài);在最開始我們應該給它一個初始值,這里是b.LOW,即對應于“關(guān)”:

  • var state = b.LOW;

現(xiàn)在我們就可以設(shè)置LED的狀態(tài)了,將他設(shè)置為state。做這個需要使用digitalWrite()函數(shù)并將期望操作的GPIO端口和狀態(tài)(開和關(guān))作為參數(shù):

  • b.digitalWrite(led, state);

LED的初始狀態(tài)設(shè)置完畢后,我們需要觸發(fā)LED點亮和熄滅,即改變state變量的狀態(tài)。我們使用setInterval()函數(shù)將這個改變的時間間隔設(shè)置為1000毫秒即1秒。在間隔時間到達的時候,我們調(diào)用toggle()函數(shù):

  • setInterval(toggle, 1000);

現(xiàn)在我們需要創(chuàng)建一個名為toggle的函數(shù)供setInterval()函數(shù)調(diào)用,這個函數(shù)會每1000毫秒調(diào)用一次。這個函數(shù)實現(xiàn)的功能就是切換LED的狀態(tài),即在HIGH和LOW之間切換。由于只有這兩個狀態(tài),所以最簡單的方式就是if…else判斷,它接受一個條件語句,根據(jù)條件語句是TRUE或者FALSE執(zhí)行不同的語句:

  • if (條件語句){

  •          當條件語句為TRUE的時候執(zhí)行

  • }else{

  •          當條件語句不為TRUE時候執(zhí)行

  • }

在我們的函數(shù)中,我們應該檢查state變量的值是否等于LOW。如果是,我們將state設(shè)置為HIGH;如果不是,則執(zhí)行else后的語句,將state設(shè)置為LOW。在設(shè)置完成后,使用digitalWrite()函數(shù)將這個狀態(tài)應用于LED:

  • function toggle() {

  •     if(state == b.LOW) state = b.HIGH;

  •     else state = b.LOW;

  •     b.digitalWrite(led, state)

  • }

執(zhí)行上面的代碼,我們就可以看到LED USR3以1000豪秒的間隔閃爍。如果你想要改變閃爍的頻率,可以修改這條語句:

  • setInterval(toggle, 1000);

實際嘗試一下是最好的。

以上是“Beaglebone Black中如何實現(xiàn)閃爍板載LED”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI