一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何使用RPi控制RGB LED

454398 ? 來源:wv ? 2019-10-28 17:16 ? 次閱讀

步驟1:簡介-RGB LED

如何使用RPi控制RGB LED

在開始之前,請先快速了解一下電路以及LED的行為。當購買LED時,包裝背面應(yīng)顯示大量文字,顯示技術(shù)規(guī)格。如果您似乎找不到任何規(guī)格,請嘗試在零件的序列號上運行Google搜索。我們關(guān)注正向電壓(VF,以伏為單位)和正向電流(IF,以毫安為單位)。對于這些變量中的每一個,典型的LED(燃燒一種顏色)將具有一個值。但是,您可能會注意到,不同顏色的LED具有不同的值。特別是紅色似乎降低了最低的正向電壓,而藍色則降低了最高的正向電壓。同樣,三種顏色的RGB LED很可能具有不同的值。購買材料時,您需要牢記這些值,以便能夠選擇合適的電阻器-不用擔(dān)心,我們會到達那里!

您會還請注意,RGB LED有四根引線,而不是兩根。如前所述,RGB LED實際上是一個很小的電路,由三個不同的LED組成?,F(xiàn)在,在這里事情可能會變得有些棘手。 RGB LED有兩種類型:共陽極和共陰極。在共陽極類型上,最長的導(dǎo)線連接到正極端子,并允許電流流向內(nèi)部的所有三個LED,而導(dǎo)線1、3和4分別是紅色,綠色和藍色的接地導(dǎo)線。另一方面,普通陰極類型共用接地線。三個較短的導(dǎo)線分別以相同的順序分別連接到正極端子。那么,您應(yīng)該使用哪個呢?作為一個初學(xué)者,我會堅持使用普通陰極類型。普通陰極將使您更好地了解Raspberry如何處理輸出以及電路如何工作,并且盡管普通陽極類型仍可在電流吸收的情況下工作,但它要先進一些。

步驟2:材料

Raspberry Pi,我將使用2型B

無焊料面包板(好吃?。ㄟ@是我使用的那個)

一個RGB LED

3個電阻

跳線

電阻很重要,因為它們也會阻止LED發(fā)送通過您的Pi的電流很大,如果有機會他們會做的。這可能會導(dǎo)致您燒毀LED,油炸GPIO引腳和/或破壞Pi。將輸出連接到Pi時,即使它們是低電平,也要始終使用電阻。通常,這些LED各自可以處理高達30mA的電流,但我們將其保持在17mA以下。我們?yōu)槭裁床荒茏叩媚敲锤撸?Pi只能向GPIO引腳提供這么多的電流,并且再次消耗過多電流會造成嚴重損壞。那么我們能走多高呢?答案不是超級簡單,但是可以推斷出來。根據(jù)eLinux,GPIO引腳連接到3.3v電源軌,該電源能夠一次提供最大50mA的電流。但是,這并不意味著該電源軌具有將其限制為50mA的調(diào)節(jié)器。如果允許這樣做,連接到該電源軌的電路將繼續(xù)汲取超過50mA的電流,直到發(fā)生短路。將所有三個引腳保持在至少17mA以下將確保我們的Pi受到足夠的保護,即使所有三種顏色都在一次燃燒。

您購買的電阻將取決于您的單個LED。您將需要三個電阻,每種顏色一個。要計算電阻,請轉(zhuǎn)到LEDCalculator.net。該網(wǎng)站使用歐姆定律,因此您不必這樣做。只需輸入提供的電壓(3.3v),壓降(單個顏色的正向電壓),額定電流(保持在16mA或以下)和LED的數(shù)量(在這種情況下,將每種顏色視為單個LED) )。對每種顏色執(zhí)行此操作,適當更改電壓降?,F(xiàn)在,您已經(jīng)有了電阻的值!在1/4瓦特大小中各取一個(在這種情況下,瓦特數(shù)衡量電阻器在故障之前將吸收的熱量)。現(xiàn)在我們有了所需的一切。讓我們開始吧!

第3步:面包板設(shè)置

從技術(shù)上講,無焊面包板不是必需的,但它可以使事情變得簡單更快,更容易。但是,如果您確實選擇焊接,那么我將假設(shè)您至少具有一些電路的基本知識,并且以下圖表將足以幫助您入門。

無焊料面包板是用于原型制作,因為它使您可以輕松地在電路中移動組件,而無需焊接和拆焊。相信我,即使是一個簡單的項目,無焊板也可以節(jié)省數(shù)小時的時間。在無焊板上,稱為總線的正極和負極列都可以連接到電源的正極和負極端子。使用跳線,我們可以連接到這些總線以形成電路。兩組總線之間的列(標記為A-E和F-J)通過行連接,但這些連接不與中間分隔線交叉。例如,第1行的A-E列構(gòu)成一條軌道,第1行的F-J列構(gòu)成另一條軌道,第2行的A-E列構(gòu)成另一條軌道?,F(xiàn)在我們了解了這一點,讓我們來談?wù)勲娐?。對于此電路,我們需要將公共陰極連接到接地引腳,并將三個陽極中的每個陽極通過一個電阻器連接到不同的可編程引腳。在這種情況下,我們將使用編號為9、11、13和15的GPIO引腳(Pi的GPIO引腳有兩種不同的命名約定-這是使用“板”約定)。引腳號9是接地,因此我們將其陰極連接至該引腳,然后將紅色,綠色和藍色連接至引腳11、13和15。

一旦完成所有設(shè)置,便可以繼續(xù)測試我們的電路-我們不希望出現(xiàn)故障電路,使我們認為我們的代碼是錯誤的。為此,請斷開您的Pi的電路(接地連接除外),然后打開Pi。操作系統(tǒng)啟動后,首先從面包板上取下紅色導(dǎo)線并將其連接到引腳號1。此引腳不可編程,并且始終設(shè)置為3.3v,因此,當連接紅色導(dǎo)線時,紅色LED應(yīng)亮起。對所有三種顏色都執(zhí)行此操作。

步驟4:編寫程序

在進入程序之前,請務(wù)必注意縮進在Python語言。其他語言使用括號等標點符號來告訴程序運行程序的順序。 Python使用縮進。因此,您可能無法簡單地將代碼從此頁復(fù)制并粘貼到程序中,因為可能無法完全保留格式。請隨時隨便繼續(xù)編寫自己的代碼,或者在此處下載我的示例代碼。

如果您是編碼新手,那么請務(wù)必指出,沒有一種方法可以編寫程序。人們有自己的風(fēng)格,但這主要取決于您如何解決問題。我將提供示例代碼并逐行進行說明,但是請注意,這不是獲得完全相同結(jié)果的唯一方法。

import sys, time

在這里,我們導(dǎo)入兩個庫中-已經(jīng)定義并且可以調(diào)用的函數(shù),變量等。

import RPi.GPIO as GPIO

這是一個Raspbian庫,允許我們使用Python控制GPIO引腳。/p》 redPin = 11

greenPin = 13

bluePin = 15

現(xiàn)在,我們定義一些變量-我們將哪些引腳連接到RGB引線。此步驟不是必需的,但是如果需要,它可以更輕松地更改引腳。

def blink(pin):

在這里,我們定義了一個功能。功能是計算機按照我們賦予它的順序執(zhí)行的一組步驟。此特定功能需要一個變量才能運行:我們要點亮的引腳號。

GPIO.setmode(GPIO.BOARD)

我們通過引用我們的庫之一GPIO開始我們的功能。然后,我們告訴我們要為GPIO引腳(其中有兩個)選擇一個命名約定,以便程序知道我們要指的是哪一個。然后,我們告訴它再次使用GPIO庫使用“ board”約定(而不是BMC約定)。

GPIO.setup(pin, GPIO.OUT)

現(xiàn)在,再次使用GPIO庫,我們告訴我們要使用的Pi引腳。但是首先,我們需要指定輸入或輸出引腳以及使用方式。在這里,“ pin”是將插入眨眼(pin)的變量。

GPIO.output(pin, GPIO.HIGH)

現(xiàn)在已經(jīng)設(shè)置了該引腳,此行將其打開。您應(yīng)該現(xiàn)在就識別語法;在這里,我們使用相同的變量“ pin”,并使用GPIO庫將引腳設(shè)置為“ high”值。對于GPIO引腳,“高”值導(dǎo)致通過3.3v或“ on”,而“低”值導(dǎo)致通過0v或“ off”。

現(xiàn)在我們將定義一個關(guān)閉燈的功能。它看起來與以前的功能幾乎相同,只是我們將引腳設(shè)置回低電平。

def turnOff(pin):

GPIO.setmode(GPIO.BOARD)

GPIO.setup(pin, GPIO.OUT)

GPIO.output(pin, GPIO.LOW)

我們需要使用剛剛創(chuàng)建的功能定義一些特定于顏色的功能?;叵胍幌?,我們將針腳11、13和15用于紅色,綠色和藍色。我們將從打開燈的功能開始。使用這種類型的功能,我們不需要任何參數(shù),因此方括號為空;

def redOn():

blink(redPin)

在這里,我們?yōu)椤?blink”函數(shù)提供一個引腳號以供使用。11。當我們調(diào)用redOn()時,閃爍函數(shù)將以“ pin”替換為“ redPin”開始執(zhí)行?;叵胍幌拢覀冎皩edPin設(shè)置為11。

現(xiàn)在,我們對其余的顏色也做同樣的事情。

def greenOn():

blink(greenPin)

def blueOn():

blink(bluePin)

記住,在處理光時,黃色是通過將紅色與綠色混合而成,青色是通過綠色與藍色混合而成,品紅色與紅色和藍色混合而成,而白色則是通過將所有這三種結(jié)合在一起而制成的。關(guān)閉。再次,語法將類似于上面的函數(shù)。

def yellowOn():

blink(redPin)

blink(greenPin)

def cyanOn():

blink(greenPin)

blink(bluePin)

def magentaOn():

blink(redPin)

blink(bluePin)

def whiteOn():

blink(redPin)

blink(greenPin)

blink(bluePin)

現(xiàn)在,我們準備定義我們的主要功能;一個不斷詢問用戶輸入并通過調(diào)用各種函數(shù)做出反應(yīng)的循環(huán)。在這種情況下,用戶將能夠打開和關(guān)閉顏色。編寫該程序的目的是僅接受一些預(yù)先指定的輸入。否則,它將不執(zhí)行任何操作并顯示相應(yīng)的信息。

同樣,我們不要求使用此函數(shù)提供任何變量,因此括號保持空白。 “ while True”本質(zhì)上表示“程序正在運行時,請執(zhí)行此操作”,因此它將一直運行,直到退出為止。

def redOff():

turnOff(redPin)

def greenOff():

turnOff(greenPin)

def blueOff():

turnOff(bluePin)

def yellowOff():

turnOff(redPin)

turnOff(greenPin)

def cyanOff():

turnOff(greenPin)

turnOff(bluePin)

def magentaOff():

turnOff(redPin)

turnOff(bluePin)

def whiteOff():

turnOff(redPin)

turnOff(greenPin)

turnOff(bluePin)

我們定義了一個新變量“ cmd”,以便以后使用將其設(shè)置為等于用戶的輸入。

現(xiàn)在,僅當用戶輸入的內(nèi)容與引號內(nèi)的文本完全匹配時,“ if”語句才會運行。請注意,這里我們使用兩個“等于”符號。在Python和實際上大多數(shù)語言中,使用單個“等于”來更改變量的值,而使用雙精度來比較變量值是否彼此匹配。

def main():

while True:

cmd = raw_input(“Choose an option:”)

“ elif”代表“ else,如果”。這將附加到較早的“ if”語句并添加新參數(shù),從而使我們可以輕松地創(chuàng)建“ else,if”語句鏈。

if cmd == “red on”:

redOn()

使用我們的最后一個“ else”語句,if如果用戶嘗試輸入除上述指定命令之一以外的任何其他命令,它將告訴用戶這是無效命令。函數(shù)需要的最后一件事是“返回”,因此程序知道何時循環(huán)。

elif cmd == “red off”:

redOff()

elif cmd == “green on”:

greenOn()

elif cmd == “green off”

greenOff()

elif cmd == “blue on”:

blueOn()

elif cmd == “blue off”:

blueOff()

elif cmd == “yellow on”:

yellowOn()

elif cmd == “yellow off”:

yellowOff()

elif cmd == “cyan on”:

cyanOn()

elif cmd == “cyan off”:

cyanOff()

elif cmd == “magenta on”:

magentaOn()

elif cmd == “magenta off”:

magentaOff()

elif cmd == “white on”:

whiteOn()

elif cmd == “white off”:

whiteOff()

else:

print(“Not a valid command.”)

return

這是我們代碼的最后一行。運行程序時,此行將調(diào)用我們剛剛定義的主要函數(shù),并將設(shè)置循環(huán)。

步驟5:運行程序

就是這樣!現(xiàn)在該運行程序了。導(dǎo)航至頂部菜單欄,然后選擇運行-》運行模塊,或按F5。在IDLE運行程序之前,系統(tǒng)會要求您保存所做的工作。繼續(xù),在提示后鍵入“ red on”,然后按Enter。紅燈應(yīng)亮起!

請注意,退出程序之前,至少應(yīng)確保已關(guān)閉所有顏色。但是,我建議您在退出之前運行GPIO.cleanup()函數(shù)。這是RPi.GPIO庫隨附的內(nèi)置函數(shù),可重置程序中使用的所有引腳。您可以修改此代碼以包含運行GPIO.cleanup()的命令,也可以按CTRL + C中斷程序,然后直接在用戶輸入中鍵入GPIO.cleanup()。

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

    關(guān)注

    242

    文章

    23617

    瀏覽量

    669370
  • RGB
    RGB
    +關(guān)注

    關(guān)注

    4

    文章

    803

    瀏覽量

    59446
  • 樹莓派
    +關(guān)注

    關(guān)注

    120

    文章

    1910

    瀏覽量

    106748
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    IMX93 evk卡上是否有跳線或開關(guān)可供設(shè)置,以便為RPI-CAM mipi供電?

    /rpi-cam-mipi_overview.html 此攝像頭未被 yocto 識別:/dev/video 未掛載 RPI-CAM mipi 板上有 LED 嗎? IMX93 evk 卡上是否有跳線或開關(guān)可供設(shè)置,以便為
    發(fā)表于 04-10 07:18

    Melexis推出MLX80142雙RGB LED驅(qū)動芯片

    Melexis宣布推出MLX80142雙RGB LED驅(qū)動芯片(六通道),作為邁來芯智能狀態(tài)機LED驅(qū)動芯片系列的最新成員,這是第一款支持MeLiBu? 2.0協(xié)議的產(chǎn)品。該芯片不僅搭載邁來芯成熟
    的頭像 發(fā)表于 03-18 11:20 ?510次閱讀

    請問DLP4710 EVM-LC中的RGB三個LED的參數(shù)是多少?

    DLP4710 EVM-LC中的RGB三個LED 的參數(shù)是多少?用什么產(chǎn)品代替可以滿足功率和亮度的要求
    發(fā)表于 02-26 07:50

    DLPC7540EVM是怎么控制RGB驅(qū)動板調(diào)整電流幅值、頻率周期和占空比的?

    根據(jù)TIDM564的參考原理圖,REB_EN使能開關(guān)激光,PWM_RGB調(diào)節(jié)輸出電流的幅值大小,SDIM_IN_RGB是調(diào)節(jié)方波占空比大小。 DLPC7540EVM只輸出了REB_EN和PWM_RGB,那么DLPC7540EV
    發(fā)表于 02-21 07:07

    海信全球首款RGB-MiniLED電視國內(nèi)首次亮相

    2025年CES展會上,海信憑借RGB三維控色液晶顯示技術(shù)以及全球最大的116吋RGB-Mini LED電視獲得全球關(guān)注。2月19日,海信在北京舉辦了世俱杯旗艦新品媒體前瞻體驗會,正式在國內(nèi)展示了
    的頭像 發(fā)表于 02-20 17:54 ?583次閱讀
    海信全球首款<b class='flag-5'>RGB</b>-MiniLED電視國內(nèi)首次亮相

    DLP4710EVM-LC斷開RGB LED中的一路(或兩路)供電線后,整個評估模塊就無法工作怎么解決?

    已購買DLP4710EVM-LC評估模塊。我們在使用中,想將RGB LED照明模式更換成單光源照明。在斷開RGB LED中的一路(或兩路)供電線后,整個評估模塊就無法工作。 現(xiàn)在想請
    發(fā)表于 02-20 06:41

    SM16703TH三通道LED驅(qū)動芯片 RGB端口默認輸出電流 8mA

    電子芯片的創(chuàng)新不斷推動著各領(lǐng)域的進步。今天要給大家介紹一款在 LED 驅(qū)動控制領(lǐng)域表現(xiàn)極為出色的芯片 ——SM16703TH。 SM16703TH是一款單線傳輸三通道LED驅(qū)動芯片,它采用的單線歸零
    的頭像 發(fā)表于 02-14 17:24 ?450次閱讀
    SM16703TH三通道<b class='flag-5'>LED</b>驅(qū)動芯片 <b class='flag-5'>RGB</b>端口默認輸出電流 8mA

    海信116英寸RGB-Mini LED:一朵綻放在科技穹頂?shù)闹袊ɑ?/a>

    中國顯示技術(shù)的花火就在你我眼前,變革將從RGB-Mini LED開始
    的頭像 發(fā)表于 01-08 09:11 ?3690次閱讀
    海信116英寸<b class='flag-5'>RGB</b>-Mini <b class='flag-5'>LED</b>:一朵綻放在科技穹頂?shù)闹袊ɑ? />    </a>
</div>                              <div   id=

    寵物屋體驗控制電機、RGB全彩LED燈與溫濕度傳感器

    GoKit2代,把應(yīng)用板與主控板分離,使用了arduino標準接口,如下圖:應(yīng)用板依然板載了正反轉(zhuǎn)可調(diào)速電機馬達、溫濕度傳感器、紅外感應(yīng)器、RGB全彩LED燈,另外增加了OLED擴展接口,你可以
    的頭像 發(fā)表于 10-13 08:03 ?474次閱讀
    寵物屋體驗<b class='flag-5'>控制</b>電機、<b class='flag-5'>RGB</b>全彩<b class='flag-5'>LED</b>燈與溫濕度傳感器

    UART軟件控制RGB LED混色與MSP430? MCU

    電子發(fā)燒友網(wǎng)站提供《UART軟件控制RGB LED混色與MSP430? MCU.pdf》資料免費下載
    發(fā)表于 10-09 11:41 ?0次下載
    UART軟件<b class='flag-5'>控制</b>的<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>混色與MSP430? MCU

    如何選擇RGB LED驅(qū)動器

    電子發(fā)燒友網(wǎng)站提供《如何選擇RGB LED驅(qū)動器.pdf》資料免費下載
    發(fā)表于 09-25 14:29 ?1次下載
    如何選擇<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驅(qū)動器

    基于LP50xx器件的全彩RGB LED矩陣系統(tǒng)設(shè)計指南

    電子發(fā)燒友網(wǎng)站提供《基于LP50xx器件的全彩RGB LED矩陣系統(tǒng)設(shè)計指南.pdf》資料免費下載
    發(fā)表于 09-25 11:52 ?0次下載
    基于LP50xx器件的全彩<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>矩陣系統(tǒng)設(shè)計指南

    ESP-12 ESP8266如何通過I2C將SSID和RSSI信息發(fā)送到RPi / Arduino?

    我正在尋找我的 ESP-12 ESP8266,以便通過 I2C 將 SSID 和 RSSI 信息發(fā)送到 RPi / Arduino。關(guān)于如何進行的任何建議? 我查看了文檔,不禁注意到 SSID
    發(fā)表于 07-22 07:36

    三星預(yù)計硅基LED將進化為單片RGB面板,用于XR設(shè)備

    三星顯示的一位高管近日表示,用于增強現(xiàn)實(XR)設(shè)備的硅基LED(LEDoS)顯示面板有望在未來發(fā)展為單片式面板,在單片基板之上制造RGB微型發(fā)光體。
    的頭像 發(fā)表于 05-28 11:43 ?1764次閱讀

    TIDA-00980-具有 IO-li<x>nk 接口的 RGB LED 信號塔 PCB layout設(shè)計

    電子發(fā)燒友網(wǎng)站提供《TIDA-00980-具有 IO-link 接口的 RGB LED 信號塔 PCB layout設(shè)計.pdf》資料免費下載
    發(fā)表于 05-10 09:28 ?0次下載
    TIDA-00980-具有 IO-li<x>nk 接口的 <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b> 信號塔 PCB layout設(shè)計