女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

如何使用RPi控制RGB LED

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

步驟1:簡介-RGB LED

如何使用RPi控制RGB LED

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

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

步驟2:材料

Raspberry Pi,我將使用2型B

無焊料面包板(好吃!)(這是我使用的那個)

一個RGB LED

3個電阻

跳線

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

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

第3步:面包板設置

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

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

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

步驟4:編寫程序

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

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

import sys, time

在這里,我們導入兩個庫中-已經定義并且可以調用的函數,變量等。

import RPi.GPIO as GPIO

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

greenPin = 13

bluePin = 15

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

def blink(pin):

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

GPIO.setmode(GPIO.BOARD)

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

GPIO.setup(pin, GPIO.OUT)

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

GPIO.output(pin, GPIO.HIGH)

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

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

def turnOff(pin):

GPIO.setmode(GPIO.BOARD)

GPIO.setup(pin, GPIO.OUT)

GPIO.output(pin, GPIO.LOW)

我們需要使用剛剛創建的功能定義一些特定于顏色的功能。回想一下,我們將針腳11、13和15用于紅色,綠色和藍色。我們將從打開燈的功能開始。使用這種類型的功能,我們不需要任何參數,因此方括號為空;

def redOn():

blink(redPin)

在這里,我們為“ blink”函數提供一個引腳號以供使用。11。當我們調用redOn()時,閃爍函數將以“ pin”替換為“ redPin”開始執行。回想一下,我們之前將redPin設置為11。

現在,我們對其余的顏色也做同樣的事情。

def greenOn():

blink(greenPin)

def blueOn():

blink(bluePin)

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

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)

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

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

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”,以便以后使用將其設置為等于用戶的輸入。

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

def main():

while True:

cmd = raw_input(“Choose an option:”)

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

if cmd == “red on”:

redOn()

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

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

這是我們代碼的最后一行。運行程序時,此行將調用我們剛剛定義的主要函數,并將設置循環。

步驟5:運行程序

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23682

    瀏覽量

    670518
  • RGB
    RGB
    +關注

    關注

    4

    文章

    803

    瀏覽量

    59560
  • 樹莓派
    +關注

    關注

    121

    文章

    1932

    瀏覽量

    106926
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    FZH12 12通道LED驅動控制芯片中文手冊

    FZH12 是一款專為全彩 LED 點陣控制設計的 12 通道 LED 驅動控制芯片,由深圳市方中禾科技有限公司開發。以下是其主要特性與功能概述:核心特性通道與驅動能力12 通道輸出,
    發表于 05-17 17:46 ?0次下載

    IMX93 evk卡上是否有跳線或開關可供設置,以便為RPI-CAM mipi供電?

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

    Melexis推出MLX80142雙RGB LED驅動芯片

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

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

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

    DLPC7540EVM是怎么控制RGB驅動板調整電流幅值、頻率周期和占空比的?

    根據TIDM564的參考原理圖,REB_EN使能開關激光,PWM_RGB調節輸出電流的幅值大小,SDIM_IN_RGB是調節方波占空比大小。 DLPC7540EVM只輸出了REB_EN和PWM_RGB,那么DLPC7540EV
    發表于 02-21 07:07

    海信全球首款RGB-MiniLED電視國內首次亮相

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

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

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

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

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

    海信116英寸RGB-Mini LED:一朵綻放在科技穹頂的中國花火

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

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

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

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

    電子發燒友網站提供《UART軟件控制RGB LED混色與MSP430? MCU.pdf》資料免費下載
    發表于 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驅動器

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

    基于LP50xx器件的全彩RGB LED矩陣系統設計指南

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

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

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

    三星預計硅基LED將進化為單片RGB面板,用于XR設備

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