使用LED是一種為家庭增添色彩的快捷簡單的方式,可以將LED燈帶應用于廚房儲物櫃、客廳角落或者任何可能需要額外照明的地方。如果您想要以低廉的價格製備自己的照明設備,並且對照明設備的顏色和圖案進行更多控制操作,那麼可以使用Arduino來實現。
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 <FastLED.h>
#define numberOfLEDs 100
#define controlPin 5
CRGB leds[numberOfLEDs];
void setup() {
FastLED.addLeds<WS2812B, controlPin, GRB>(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 <FastLED.h>
#define numberOfLEDs 100
#define controlPin 5
CRGB leds[numberOfLEDs];
第一行用於導入FastLED庫,使您可以在草圖中使用其中的函數。接下來的兩行用於定義一對常量,這兩個常量分別與燈帶上您要控制的LED數量(如果您願意的話也可以只控制燈帶上的一部分LED)以及將用於控制LED的Arduino板上的引腳數量相對應。最後,CRGB一行將會創建一個具有上面指定的LED數量的陣列。
在本示例中,我們使用10個LED,這個數量很小,只用Arduino就可以提供足夠的電源,所以我們就可以只用它來進行演示了。
void setup() {
FastLED.addLeds<WS2812B, controlPin, GRB>(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庫還附帶一些預製草圖,您可以參考它們對更多內容進行探索。