LED照明的興起是平流層的,很容易理解為什麼。它們生產成本低廉,耗電量明顯低於其他照明選擇,而且在大多數情況下不會發熱,因此可安全地用於各種用途。
其中最常見的LED產品是LED帶。在本文中,我們將介紹如何使用Arduino設置兩種最常見的類型。這些項目非常簡單,即使你是一個初學者與Arduino或DIY電子,你將能夠做到這一點。
我們還將使用ArduinoIDE來控制它們。這個項目使用一個Arduino Uno,儘管你可以使用幾乎任何兼容的板(比如NodeMCU)。
當購買LED帶材時,有一些事情需要考慮。首先是功能性。如果您計劃使用的帶主要用於環境照明,那麼一個簡單的12v RGB LED帶(SMD5050)將是正確的選擇。
許多這樣的條帶帶有一個紅外遙控器來控制它們,儘管在這個項目中我們將使用Arduino來代替。花點時間逛街,在寫這篇文章的時候,每米只要1美元就可以買到這些金屬條。
如果你想要更高技術的東西,可以考慮WS2811/12/12B。這些條帶(有時稱為Neopix)集成了芯片組,可以單獨尋址。這意味著它們不僅僅能夠提供環境照明。
你可以用它們從頭開始構建一個廉價的LED像素顯示器。你甚至可以用它們來**你自己的室內風暴雲燈。
這些條帶只需要5伏的電源。雖然可以直接從Arduino板上為少量電池供電,但通常最好使用一個單獨的5V電源來避免油炸Arduino的味道。如果您正在尋找單獨可編程的LED,這些是為您。在撰寫本文時,它們的價格約為每米4美元。
另一個需要考慮的問題是,這些條帶可能會在哪裡使用。這兩種類型的帶都有不同的長度、LED密度(每米LED的數量)和不同的耐候性。
查看LED燈帶時,請注意列表上的數字。通常,第一個數字將是每米LED的數量,字母IP後跟數字將是其防風雨功能。例如,如果列表中顯示30 IP67,這意味著每米將有30個LED。6表示完全密封防塵,7表示防止臨時浸入水中。(瞭解更多有關防風雨和IP等級的信息。)一旦您選擇了LED燈帶,就可以將其與Arduino連接起來了。讓我們從SMD5050開始。
為了將12v LED帶連接到Arduino,您需要幾個組件:
在設置電路之前,我們先來談談MOSFET。
每當你控制的是比你的微控制器更高的電壓的東西,你需要一些中間的東西來阻止你的電路板被炸。其中一個簡單的方法是使用MOSFET。通過向柵極支路發送脈寬調製(PWM)信號,可以控制漏極和源極支路之間傳遞的功率。通過將每個LED條的顏色通過MOSFET,可以控制LED條上每個顏色的亮度。
在使用微控制器時,使用邏輯級組件是很重要的,以確保事情按您希望的方式工作。確保你的MOSFET是邏輯電平而不是標準的。
像這樣設置電路:
大多數LED帶都有杜邦(Dupont)連接器,很容易連接。如果你沒有你可能需要焊接電線到LED帶。不要驚慌,如果你是相當新的焊接,這是一個簡單的工作,我們有一個指南,以開始焊接,如果你需要它。
我們將為這個項目提供USB電源。您可以選擇使用VIN pin為您的板供電,但在執行此操作之前,請確保您知道板的電源限制。
當您的電路完成時,它應該如下所示:
現在你已經連接了所有的東西,是時候做一個簡單的Arduino草圖來控制它了。
通過USB將Arduino板連接到計算機並打開Arduino IDE。確保在Tools>;board和Tools>;port菜單中為您的電路板選擇了正確的電路板和端口號。打開一個新草圖並用適當的名稱保存它。
這個素描會使燈光一次淡入一種顏色,保持亮幾秒鐘,然後淡出直到再次熄滅。您可以在這裡完成並自己繪製草圖,或者從GitHub下載完整的代碼。
首先定義將用於控制MOSFET的管腳。
#define RED_LED 6#define BLUE_LED 5#define GREEN_LED 9接下來需要一些變量。創建一個整體亮度變量,以及每個顏色的亮度變量。我們將只使用主亮度變量來關閉LED,因此在這裡將其設置為最大亮度值255。
您還需要創建一個變量來控制淡入的速度。
int brightness = 255;int gBright = 0;int rBright = 0;int bBright = 0;int fadeSpeed = 10;在您的設置功能中,我們將設置我們的Arduino引腳輸出。我們還將調用兩個函數,其中延遲5秒。這些函數還不存在,但是別擔心,我們會找到它們的。
void setup() { pinMode(GREEN_LED, OUTPUT); pinMode(RED_LED, OUTPUT); pinMode(BLUE_LED, OUTPUT); TurnOn(); delay(5000); TurnOff();}現在創建TurnOn()方法:
void TurnOn() { for (int i = 0; i < 256; i++) { ****ogWrite(RED_LED, rBright); rBright +=1; delay(fadeSpeed); } for (int i = 0; i < 256; i++) { ****ogWrite(BLUE_LED, bBright); bBright += 1; delay(fadeSpeed); } for (int i = 0; i < 256; i++) { ****ogWrite(GREEN_LED, gBright); gBright +=1; delay(fadeSpeed); } }這三個for循環使每種顏色在fadeSpeed值指定的時間內達到最大亮度。
最後,您需要創建TurnOff()方法:
void TurnOff() { for (int i = 0; i < 256; i++) { ****ogWrite(GREEN_LED, brightness); ****ogWrite(RED_LED, brightness); ****ogWrite(BLUE_LED, brightness); brightness -= 1; delay(fadeSpeed); }}void loop() {}此方法將亮度變量應用於所有三個顏色管腳,並在一段時間內將其降至零。為了避免編譯錯誤,這裡也需要一個空循環方法。
完成此草圖後,請保存它。驗證草圖並將其上載到Arduino板。如果出現錯誤,請再次檢查代碼是否有任何令人討厭的拼寫錯誤或缺少分號。
現在,您應該看到您的LED條分別向上漸變每種顏色,保持白色5秒鐘,然後均勻地淡出為零:
如果您遇到任何困難,請重新檢查您的接線和代碼。
這個項目是一個簡單的方式開始,但其中涵蓋的思想可以擴展到真正有效的照明。只需幾個組件,你就可以創建自己的日出警報。如果您的Arduino配備了啟動套件,您可以使用任何按鈕或傳感器在進入房間時觸發LED,例如:
現在我們已經介紹了SMD5050,讓我們繼續討論WS2812B條帶。
這些條帶需要較少的組件才能運行,而且對於您可以使用的組件的具體值有一定的迴旋餘地。此電路中的電容器確保5v LED獲得穩定的電源。電阻器確保從Arduino接收到的數據信號不受任何干擾。
您需要:
如圖所示設置電路:
注意,電容器的方向必須正確。你可以通過尋找電容器主體上的減號(-)來判斷哪一側連接到接地軌。
這次我們使用5v電源為Arduino供電。這使得項目在我們完成之後就獨立了,儘管這裡有一些重要的事情需要注意。
首先,在將電路板連接到電源之前,請確保電路板可以接收5v電源。幾乎所有的開發板都通過USB端口以5v的電壓運行,但是有些開發板上的電源輸入管腳有時會跳過電壓調節器,把它們變成土司。
另外,確保多個單獨的電源沒有連接到Arduino也是一個很好的做法——在使用外部電源時,請斷開USB電纜。
一旦接通電源,它應該是這樣的:
現在我們的LED帶已經連接好了,讓我們繼續看代碼。
為了安全地對電路板進行編程,請斷開VIN線與電源線的連接。稍後再重新連接。
將Arduino連接到計算機並打開Arduino IDE。檢查是否在“工具”>;“板和工具”>;“端口”菜單中選擇了正確的板和端口號。
我們將使用FastLED庫來測試我們的設置。您可以通過單擊“草圖”>;“包含庫”>;“管理庫”並搜索FastLED來添加庫。單擊install,庫將被添加到IDE中。
在“文件”>;“示例”>;“快速LED”下,選擇DemoReel100草圖。這個素描循環的各種事情,可以做的WS2812發光二極管帶,是難以置信的容易設置。
您只需更改DATA\u PIN變量,使其與PIN 13匹配,並更改NUM\u LEDS變量,以定義您正在使用的條帶中有多少個led。在本例中,我只使用從較長的條帶上切下的10個LED的一小行。用更多的燈光表演更大!
就這樣!將草圖上傳到電路板,斷開USB電纜並打開5v電源。最後,將Arduino的車輛識別號重新連接到電源線上,觀看演出!
如果什麼也沒發生,檢查你的線路,並確認你在演示草圖中指定了正確的Arduino引腳。
演示草圖展示了WS2812條帶可以實現的許多可能的效果組合中的一些。除了比普通的LED燈條更先進之外,它們還可以投入實際使用。一個好的下一個項目將是建立自己的環境光為您的媒體中心。
雖然這些帶肯定比SMD5050更具功能性,但不要對標準12v LED帶大打折扣。它們在價格上是無與倫比的,而且LED燈帶的應用也非常廣泛。
學習使用LED燈帶是熟悉Arduino上基本編程的好方法,但最好的學習方法是修修補補。修改上面的代碼,看看你能做什麼!如果所有這些對你來說有點太多了,可以考慮從這些面向初學者的Arduino項目開始。
圖片來源:mkarco/Shutterstock
... 現在,從燈帶與交流介面卡連線的一端開始,取下粘合膠的紙張襯墊。如果這種背襯很難去除,用吹風機將粘合劑加熱一點。它應該很容易移除。 ...
...。隨著這門新語言的興起,DIY電子領域也蓬勃發展。來自Arduino和Raspberry Pi等公司的開發板和單板計算機改變了人們生產家用電子產品的方式。如果你能用Python程式設計一個Arduino,那不是很棒嗎? ...
... 在本文中,我們將介紹一些基於Arduino的星球大戰專案,你可以在預算。這些專案有的只花了幾美元,有的甚至高達40美元。我們還加入了一些更大專案的連結,雖然沒有一個專案可以說是預算意識強,但...
...當你的框架完成後,是時候安裝LED了。我們有一個LED帶和Arduino的終極指南,但你今天不需要Arduino。RGB LED條基本上是三色LED,每英寸左右排列在一條細條上。它們的美妙之處在於,透過組合單個的紅色、綠色和藍色LED,幾乎可以...
... 這些板條是一個奇妙的專案,學習使用與Arduino板相結合,在你知道它之前,你將使用它們照亮你的一生。 ...
所以,你有一個Arduino。你已經學會了一些基礎知識,也許你已經按照初學者指南開始了。接下來呢? ...
Arduino板和類似的微控制器使創造力比以往任何時候都更容易獲得。無論你是控制LED燈帶,自動化你的家,甚至保護你的財產,這些小奇蹟是大多數DIY電子產品的核心。 ...
Arduino板,以及隨之而來的許多價格合理的微控制器,永遠改變了人們的電子愛好。曾經是超級極客的領域,擁有廣泛的電子和計算知識,現在所有人都可以使用。 ...
...何工作的基礎知識,並給出一些任何人都能做的簡單DIY Arduino專案的例子。 ...
... 我們將使用NodeMCU板來控制它們。雖然你可以使用任何與Arduino相容的Wi-Fi板,但NodeMCU是我們作為Arduino**的最愛。 ...