0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用樹(shù)莓派多線程實(shí)現(xiàn)LED燈陣頻閃

h1654155282.3538 ? 來(lái)源:電子報(bào) ? 作者:h1654155268.1688 ? 2021-06-06 15:38 ? 次閱讀

眾所周知,“線程”指的是一組可以在程序中獨(dú)立執(zhí)行的計(jì)算機(jī)指令集合,引入“多線程”運(yùn)行機(jī)制的根本目的是為了更好利用CPU資源。如果程序在運(yùn)行過(guò)程中只有一個(gè)線程的話(單線程方式),那么下一個(gè)任務(wù)必須要等到上一個(gè)任務(wù)結(jié)束后才能進(jìn)行,這是一種低效的“串行”流程;如果使用多線程,就可以在主線程執(zhí)行任務(wù)的同時(shí)來(lái)“并行”執(zhí)行其他的任務(wù),不需要等待時(shí)間,從而極大提高了程序的運(yùn)行效率。

【實(shí)驗(yàn)?zāi)康摹?/p>

樹(shù)莓派中通過(guò)古德微機(jī)器人平臺(tái)編程,實(shí)現(xiàn)多線程控制LED燈陣彼此獨(dú)立地運(yùn)行,各個(gè)LED燈的閃亮頻率均不同(“頻閃”效果),驗(yàn)證計(jì)算機(jī)編程中多線程運(yùn)行機(jī)制的高效性。

【實(shí)驗(yàn)器材及連接】

樹(shù)莓派一塊,古德微擴(kuò)展板一塊,紅、綠、黃、藍(lán)色LED燈各一支。

首先將古德微擴(kuò)展板正確插入樹(shù)莓派中,注意要四周均勻小心用力,然后將四支LED燈分別插入到擴(kuò)展板的5號(hào)、6號(hào)、12號(hào)和16號(hào)插孔,注意LED燈的長(zhǎng)腳為正極、短腳為負(fù)極,必須正確插入插孔上標(biāo)注有“+”、“-”標(biāo)記的對(duì)應(yīng)處,最后將樹(shù)莓派電源線連接好,通電啟動(dòng)系統(tǒng)(如圖1所示)。

圖1

【平臺(tái)編程與程序運(yùn)行調(diào)試】

1.登錄古德微機(jī)器人平臺(tái)

使用瀏覽器訪問(wèn)http://www.gdwrobot.cn,點(diǎn)擊右上角的“登錄”并輸入自己的賬號(hào)和密碼,然后點(diǎn)擊“設(shè)備控制”進(jìn)入“積木”編程界面,再點(diǎn)擊“連接設(shè)備”按鈕出現(xiàn)五個(gè)連續(xù)的綠色對(duì)勾提示,表示連接成功(如圖2所示)。

pYYBAGC8e6aAHr0mAAFQtgWIpa8513.png

圖2

2.進(jìn)行“積木”編程

“積木”編程非常簡(jiǎn)單,我們只需將對(duì)應(yīng)的命令語(yǔ)句塊從左側(cè)“積木”區(qū)域拖至中央空白編程區(qū)進(jìn)行組合即可。程序包括主程序和四個(gè)函數(shù)共兩大部分,主程序是順序執(zhí)行的四個(gè)子線程調(diào)用語(yǔ)句塊,操作方法是從左側(cè)的“線程”處將“添加子線程,線程函數(shù)名為‘xxx’”拖入編程區(qū),注意其中的線程函數(shù)名必須是英文名稱。每個(gè)子線程就對(duì)應(yīng)主程序待調(diào)用的一個(gè)函數(shù),而每一個(gè)函數(shù)都是控制所對(duì)應(yīng)的LED燈亮滅交替,通過(guò)設(shè)置不同的等待時(shí)間來(lái)實(shí)現(xiàn)不同的閃爍頻率,以第一個(gè)LED5函數(shù)為例:

首先調(diào)用“控制5號(hào)小燈亮”命令語(yǔ)句,然后通過(guò)“等待0.1秒”命令語(yǔ)句讓其保持通電的發(fā)光狀態(tài)持續(xù)0.1秒;接著“控制5號(hào)小燈滅”,第二條“等待0.1秒”命令語(yǔ)句的作用是保持該LED的熄滅狀態(tài)持續(xù)0.1秒。四個(gè)命令語(yǔ)句循環(huán)執(zhí)行,最終實(shí)現(xiàn)的效果就是控制插在古德微擴(kuò)展5號(hào)插孔的紅色LED燈先亮0.1秒、再滅0.1秒,然后再亮0.1秒、滅0.1秒……即控制該LED燈以5Hz的頻率(周期是兩個(gè)0.1秒相加)進(jìn)行“頻閃”。其它三支LED燈的控制函數(shù)分別對(duì)應(yīng)LED6、LED12和LED16,語(yǔ)句基本一致,惟一不同的是等待的時(shí)間分別設(shè)置為0.2秒、0.5秒和1秒(可自行設(shè)置,目的是進(jìn)行對(duì)比觀察),即分別實(shí)現(xiàn)2.5Hz、1Hz和0.5Hz頻率亮、滅的“頻閃”效果(如圖3所示)。

poYBAGC8e6aASA8bAAFR3Ta-Zqg048.png

圖3

3.程序的運(yùn)行調(diào)試

程序編寫(xiě)完畢之后,點(diǎn)擊“保存”按鈕,將程序保存為“四支小燈多線程”,接著點(diǎn)擊右上角的“運(yùn)行”按鈕進(jìn)行程序的調(diào)試。此時(shí),主程序就會(huì)“同時(shí)”調(diào)用四個(gè)函數(shù)進(jìn)行多線程運(yùn)行,每個(gè)子線程函數(shù)都會(huì)“自私”地按照自己的指令來(lái)控制LED燈閃爍,互不干擾,我們就會(huì)看到四支不同顏色的LED燈各自以各自的頻率閃爍起來(lái)(如圖4所示),這就是古德微樹(shù)莓派多線程實(shí)現(xiàn)LED燈陣的“頻閃”效果。

圖4
責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    108188
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    117

    文章

    1710

    瀏覽量

    105760
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    樹(shù)莓2控制一個(gè)LED

    ` 本帖最后由 348081236 于 2016-1-19 16:57 編輯 這個(gè)教程教你怎樣用樹(shù)莓控制一個(gè)LED。這是比較基礎(chǔ)、簡(jiǎn)單、適合新手的。先從一個(gè)
    發(fā)表于 01-19 16:55

    關(guān)閉樹(shù)莓電源LED

    在關(guān)閉樹(shù)莓的電源指示和狀態(tài)指示中,對(duì)關(guān)閉樹(shù)莓指示
    發(fā)表于 12-28 08:18

    利用線程的互斥實(shí)現(xiàn)串口多線程收發(fā)數(shù)據(jù)

    利用線程的互斥實(shí)現(xiàn)串口多線程收發(fā)數(shù)據(jù)從而達(dá)到流水燈的效果。多線程串口編程主要分為三步,第一部分,連接串口及開(kāi)發(fā)板,確定設(shè)備號(hào);第二部分為串口
    發(fā)表于 01-07 08:08

    如何利用HAL庫(kù)實(shí)現(xiàn)LED?

    如何利用HAL庫(kù)實(shí)現(xiàn)LED?
    發(fā)表于 02-08 06:35

    LEDLED效應(yīng)的區(qū)別

    LEDLED效應(yīng)的區(qū)別LED
    發(fā)表于 11-18 13:47 ?2851次閱讀

    LED的制作方法

    LED的制作方法 復(fù)雜的大廈也源于簡(jiǎn)單結(jié)構(gòu),現(xiàn)在我們就來(lái)試試從簡(jiǎn)單的
    發(fā)表于 04-20 11:12 ?6290次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>頻</b><b class='flag-5'>閃</b><b class='flag-5'>燈</b>的制作方法

    五路藍(lán)牙智能無(wú)LED電源方案

    五路藍(lán)牙智能無(wú)LED電源方案,五路藍(lán)牙智能無(wú)LED
    發(fā)表于 07-26 14:31 ?60次下載

    led為什么有_led怎么解決_led測(cè)試方法

    本文介紹了什么是的工作原理,其次介紹了LED
    發(fā)表于 01-17 10:34 ?9.1w次閱讀
    <b class='flag-5'>led</b><b class='flag-5'>燈</b>為什么有<b class='flag-5'>頻</b><b class='flag-5'>閃</b>_<b class='flag-5'>led</b><b class='flag-5'>燈</b><b class='flag-5'>頻</b><b class='flag-5'>閃</b>怎么解決_<b class='flag-5'>led</b><b class='flag-5'>燈</b><b class='flag-5'>頻</b><b class='flag-5'>閃</b>測(cè)試方法

    LED警示密封性測(cè)試解決方案的介紹

    的:結(jié)構(gòu)防水和材料防水。LED警示結(jié)構(gòu)防水是在產(chǎn)品的各結(jié)構(gòu)部件組合后再輔之以硅膠密封圈實(shí)現(xiàn)防水要求;
    發(fā)表于 01-29 14:58 ?1094次閱讀

    關(guān)閉樹(shù)莓電源LED,禁用wifi、藍(lán)牙

    在關(guān)閉樹(shù)莓的電源指示和狀態(tài)指示中,對(duì)關(guān)閉樹(shù)莓指示
    發(fā)表于 01-06 11:55 ?3次下載
    關(guān)閉<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>電源<b class='flag-5'>LED</b><b class='flag-5'>燈</b>,禁用wifi、藍(lán)牙

    關(guān)閉樹(shù)莓的電源指示(紅)和狀態(tài)指示(黃)

    添加一個(gè)硬件開(kāi)、關(guān)機(jī)按鍵中,我已經(jīng)講過(guò)了利用/boot/config.txt文件來(lái)給樹(shù)莓添加一個(gè)硬件的開(kāi)關(guān),如果想了解其中的原理,可以參考該文章。
    發(fā)表于 01-11 09:26 ?9次下載
    關(guān)閉<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>的電源指示<b class='flag-5'>燈</b>(紅)和狀態(tài)指示<b class='flag-5'>燈</b>(黃)

    基于555定時(shí)器構(gòu)建的LED電路

    在這個(gè)項(xiàng)目中,讓我們使用流行的555定時(shí)器IC開(kāi)發(fā)LED電路。
    的頭像 發(fā)表于 01-25 15:17 ?7137次閱讀
    基于555定時(shí)器構(gòu)建的<b class='flag-5'>LED</b><b class='flag-5'>頻</b><b class='flag-5'>閃</b><b class='flag-5'>燈</b>電路

    使用樹(shù)莓GPIO口點(diǎn)亮雙色LED

    上一篇文章向大家介紹樹(shù)莓的硬件部分、安裝操作系統(tǒng)及基礎(chǔ)設(shè)置。這篇文章將介紹樹(shù)莓的強(qiáng)大的開(kāi)發(fā)功能口——GPIO,以及利用GPIO口點(diǎn)亮雙色
    的頭像 發(fā)表于 07-04 11:34 ?2467次閱讀
    使用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>GPIO口點(diǎn)亮雙色<b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    基于樹(shù)莓點(diǎn)亮RGB三基色LED

    上一篇實(shí)現(xiàn)樹(shù)莓的第一個(gè)基礎(chǔ)實(shí)驗(yàn)——點(diǎn)亮雙色LED,并了解了樹(shù)莓
    的頭像 發(fā)表于 07-04 11:34 ?2178次閱讀
    基于<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>點(diǎn)亮RGB三基色<b class='flag-5'>LED</b><b class='flag-5'>燈</b>