這篇文章來源于DevicePlus英語網站的翻譯稿。
使用LED是一種為家庭增添色彩的快捷簡單的方式,可以將LED燈帶應用于廚房儲物柜、客廳角落或者任何可能需要額外照明的地方。如果您想要以低廉的價格制備自己的照明設備,并且對照明設備的顏色和圖案進行更多控制操作,那么可以使用Arduino來實現。
LED燈帶工作原理
LED燈帶有多種形式,但是一般來說,大多數型號是一種放置有周期性LED模塊的帶狀板,并且某些模塊之間還有虛線部分,如果需要,您可以在這些虛線的地方對燈帶進行切割。這些位置通常會標有金屬觸點,因此您可以添加額外的電路以將多個燈帶連接在一起。在端口您會看到有一些可以插入Arduino的電線。
電線的數量可能會有所不同,但在本指南中,我們將會使用包含控制自身電路的燈帶,讓您可以通過使用一根電線對每個單獨的LED進行尋址。還有一根額外的電源線和地線,這意味著整個項目只需要三根電線即可。這種類型的燈帶通常來說都更加方便,所以我們將會使用該類型燈帶,具體使用的型號為基于WS2812B的LED燈帶。
LED燈帶可以使用外部庫進行控制,例如FastLED 或者Adafruit的Neopixel 庫。在本指南中,我們將使用FastLED庫,這個庫包含了用于控制各種LED燈帶控制器的函數,從而使設置顏色或動態模式變得更容易。
請下載此鏈接中的庫,并將其添加到您的草圖中。然后,在您的Arduino IDE中,進入Sketch > Include library > Add .ZIP library,并選擇FastLED庫。在File(文件)菜單的Example(示例)部分還提供了一系列的示例草圖,您可以在探索時查看這些示例。不過現在,我們從一個簡單的工作作為開始—將每個LED設置為相同的顏色。
所需部件
您可以根據需要購買任意數量的LED燈帶布置到您的房間,但需要注意的一點是,每個LED都會消耗電力。如果使用少量的LED,您可以使用Arduino的5V電源,但是如果是大量LED,您需要使用外部電源。我們僅使用Arduino來完成此項目,但是如果您想要擴展項目的話,需要注意電源的選擇?;谝陨蟽热?,您將需要以下部件:
一個LED燈帶 |
![]() |
電源(用于大燈帶) |
![]() |
Arduino Uno |
![]() |
Arduino IDE |
![]() |
USB數據線 |
![]() |
電線 |
![]() |
這個項目的接線相對簡單,因為我們選擇了可尋址的LED燈帶。但在接線前,我們先了解一下將要使用的代碼。
代碼
由于我們使用的是FastLED庫,所以示例所用的代碼非常簡單。我們將指示Arduino按照順序打開每個LED,并將其設置為一種顏色。以下為完整代碼,您可以將其上傳到Arduino Uno。
#include
#define numberOfLEDs 100
#define controlPin 5
CRGB leds[numberOfLEDs];
void setup() {
FastLED.addLeds(leds, numberOfLEDs);},>
void loop() {
for (int thisLED = 0; thisLED < numberOfLEDs; thisLED++) {
leds[thisLED].r = 50;
leds[thisLED].b = 0;
leds[thisLED].g = 0;
FastLED.show();
}
}
現在,我們來看一下這些代碼的內容。
#include
#define numberOfLEDs 100
#define controlPin 5
CRGB leds[numberOfLEDs];
第一行用于導入FastLED庫,使您可以在草圖中使用其中的函數。接下來的兩行用于定義一對常量,這兩個常量分別與燈帶上您要控制的LED數量(如果您愿意的話也可以只控制燈帶上的一部分LED)以及將用于控制LED的Arduino板上的引腳數量相對應。最后,CRGB一行將會創建一個具有上面指定的LED數量的陣列。
在本示例中,我們使用10個LED,這個數量很小,只用Arduino就可以提供足夠的電源,所以我們就可以只用它來進行演示了。
void setup() {
FastLED.addLeds(leds, numberOfLEDs);,>
}
這一行通過使用與LED燈帶對應的控制器芯片組來對LED進行設置。該行內容會因您所使用的燈帶型號而異,您可能需要查看FastLED文檔來找到適用的命令。FastLED的Blink草圖中(不同于Arduino IDE的內置Blink草圖)包含了對應于各種芯片組的代碼。如果您使用的是WS2812B,那么使用上文中的代碼即可。
void loop() {
for (int thisLED = 0; thisLED < numberOfLEDs; thisLED++) {
leds[thisLED].r = 50;
leds[thisLED].b = 0;
leds[thisLED].g = 0;
FastLED.show();
}
}
在本部分中,for()循環將遍歷陣列中的每個LED并將其一一打開。以leds[]開頭的三行通過將紅色、綠色和藍色值(每個值最高255)進行組合來設置LED顏色。您可以嘗試調整這些值來更改LED的顏色。如果把三個值都設置為0,LED將會完全熄滅。
接線
因為我們選擇了一個很簡單的LED燈帶,所以接線工作也變得很簡單。您只需要連接三根電線即可:
● 將LED燈帶上的5V電線連接到Arduino上的5V(僅有幾個LED)或外部電源(有許多LED)。
● 將LED燈帶上的GND連接到Arduino上的GND。
● 將中間的電線(有時標有DIN)連接到Arduino上的5V。
完成三根電線的連接后,為您的Arduino(和您的LED燈帶,如果您使用了單獨的電源的話)供電,LED燈將會被打開。嘗試調整代碼來更改顏色或編寫更復雜的動態模式。FastLED庫還附帶一些預制草圖,您可以參考它們對更多內容進行探索。

DevicePlus 編輯團隊
設備升級版適用于所有熱愛電子和機電一體化的人。
審核編輯黃宇
評論