LED照明的興起是平流層,很容易理解為什么。它們的生產成本低廉,比其他照明選項消耗的功率少得多,并且在大多數情況下不會發熱,因此可以安全地用于多種用途。
最常見的LED產品之一是燈帶。在本文中,我們將介紹如何使用Arduino設置兩種最常見的類型。這些項目非常簡單,即使您是Arduino或DIY電子產品的初學者,您也可以做到這一點。
我們還將使用Arduino IDE對其進行控制。該項目使用Arduino Uno,盡管您幾乎可以使用任何兼容的板(例如NodeMCU)。
選擇條帶
在購買LED條帶時,需要注意以下幾點:考慮。首先是功能。如果您打算將這些燈條主要用于環境照明,那么簡單的 12v RGB LED 燈條( SMD5050 )將是正確的選擇。
這些條帶中的許多條帶紅外遙控器來控制它們,盡管在本項目中,我們將使用Arduino代替。花一些時間購物,在撰寫本文時,有可能以每米1美元的低價獲得這些帶。
圖片來源:通過Shutterstock的phanu suwannarat
如果您想要更高一點的技術,請考慮 WS2811 / 12 / 12B 。這些條帶(有時稱為 Neopixels )具有集成的芯片組,可以單獨進行尋址。這意味著它們不僅具有環境照明的功能。
您可以使用它們從頭開始構建便宜的LED像素顯示器。您甚至可以使用它們來制作自己的個人室內暴風云燈。
這些條只需5v即可為其供電。雖然可以直接從Arduino板上直接為少量的電源供電,但通常最好使用單獨的5V電源,以免被油炸Arduino散發出臭味。如果您正在尋找可單獨編程的LED,那么這些適合您。在撰寫本文時,它們的價格為每米4美元左右。
要考慮的另一件事是這些條帶可能在哪里使用。這兩種類型的燈帶都有不同的長度,LED密度(每米的LED數量)和不同的耐候程度。
在查看LED燈帶時,請注意清單上的數字。通常,第一個數字是每米的LED數量,字母 IP 后跟數字是其防風雨性能。例如,如果列表中顯示 30個IP67 ,則表示每米將有 30 個LED。 6 表示已完全隔絕灰塵,而 7 表示已對其進行了防護,防止其暫時浸入水中。 (了解有關防風雨和IP等級的更多信息。)一旦選擇了LED燈條,就可以將其與Arduino鏈接了。讓我們從SMD5050開始。
開始連接
為了將12v LED燈條連接到Arduino,您將需要一些組件:
12v RGB LED燈條( SMD5050 )
1 x Arduino Uno(任何兼容的板都可以)
3 x 10k 歐姆電阻
3 x 邏輯電平 N溝道MOSFET
1 x面包板
連接線
12v電源
在設置電路之前,我們先討論一下 MOSFET 。
每當您控制的電壓高于微控制器的電壓時,都需要在兩者之間進行控制以防止電路板被炸。一種簡單的方法是使用MOSFET。通過將脈寬調制( PWM )信號發送到 gate 支路,可以控制在漏極和之間傳遞多少功率源腿。通過使LED燈帶的每種顏色都通過MOSFET,您可以控制LED燈帶上每種顏色的亮度。
使用微控制器時,使用邏輯電平組件以確保性能很重要。按照您希望他們的方式工作。確保您的MOSFET是邏輯電平,而不是標準。
像這樣設置電路:
將Arduino引腳 9 , 6 和 5 連接到門支腳,然后將與之成一直線的 10k 電阻連接到接地軌。
將 Source 支腳連接到地面
將排水支腳連接到綠色,紅色和藍色連接器
將電源導軌連接到LED燈條的 + 12v 連接器(請注意,在此圖像中,電源線為黑色,以匹配連接器的顏色)
將Arduino地面連接到接地軌。
將您的 12v 電源連接到電源軌。
大多數LED燈帶都帶有Dupont連接器,易于連接到。如果不是,則可能需要將導線焊接到LED燈條上。如果您不熟悉焊接,請不要著急,這是一件容易的事,如果有需要,我們會提供焊接入門指南。
為此,我們將通過USB為Arduino板供電項目。您可以選擇使用VIN引腳為電路板供電,但在執行此操作之前,請確保您知道電路板的電源限制。
電路完成后,電路外觀應如下所示:
現在您已經連接了所有東西,是時候制作一個簡單的Arduino草圖來對其進行控制了。
淡化
通過USB將Arduino開發板連接到計算機,然后打開Arduino IDE。確保在工具》電路板和工具》端口菜單中為電路板選擇了正確的電路板和端口號。打開一個新草圖并用適當的名稱保存它。
此草圖將一次將燈光淡化為一種顏色,將其保持點亮幾秒鐘,然后將其淡出直到再次熄滅。您可以按照此處進行操作,自己制作草圖,也可以直接從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++) {
analogWrite(RED_LED, rBright);
rBright +=1;
delay(fadeSpeed);
}
for (int i = 0; i 《 256; i++) {
analogWrite(BLUE_LED, bBright);
bBright += 1;
delay(fadeSpeed);
}
for (int i = 0; i 《 256; i++) {
analogWrite(GREEN_LED, gBright);
gBright +=1;
delay(fadeSpeed);
}
}
這三個 for 循環使每種顏色在 fadeSpeed 指定的時間內達到其全亮度。 》值。
最后,您需要創建 TurnOff()方法:
void TurnOff() {
for (int i = 0; i 《 256; i++) {
analogWrite(GREEN_LED, brightness);
analogWrite(RED_LED, brightness);
analogWrite(BLUE_LED, brightness);
brightness -= 1;
delay(fadeSpeed);
}
}
void loop() {
}
此方法將應用我們的亮度變量設置為所有三個色針,并在一段時間內將其減小為零。為了避免編譯錯誤,我們在這里也需要一個空循環方法。
完成此草圖后,請保存它。驗證草圖并將其上傳到您的Arduino開發板。如果出現錯誤,請再次檢查代碼中是否有討厭的拼寫錯誤或分號丟失。
現在,您應該看到LED燈條將每種顏色分別傾斜,保持白色5秒鐘,然后均勻地逐漸消失:
如果遇到任何困難,請仔細檢查接線并再次編碼。
該項目是入門的簡單方法,但是可以擴展其中包含的思想,以實現真正有效的照明。僅需幾個組件,您就可以創建自己的日出警報。如果您的Arduino帶有入門套件,則可以在進入房間時使用任何按鈕或傳感器來觸發LED,例如:
現在我們已經介紹了 SMD5050s ,讓我們繼續進行 WS2812B 條帶。
好主意
這些條帶需要更少的組件要使它們運行,就可以使用哪些組件的確切值還有一些余地。該電路中的電容器可確保5v LED獲得穩定的電源。電阻器確保從Arduino接收的數據信號不受任何干擾。
您將需要:
WS2811 / 12 / 12B 5v LED燈帶(所有三種型號都集成了芯片,并且工作方式大致相同)
1個Arduino Uno(或類似的兼容板)
1 x 220-440歐姆電阻(這兩個值之間的任何值都可以)
1 x 100-1000 microFarad 電容器(任何值)在這兩個值之間都可以)
面包板并連接導線
5V電源
按如下所示設置電路:
請注意,電容器的方向必須正確。您可以通過查找電容器主體上的減號(-)來確定哪一側連接到接地軌。
這一次,我們將使用5v電源為Arduino供電。盡管這里有一些重要的事情要注意,但這使項目一旦完成就成為獨立項目。
首先,請確保在將板連接到電源上之前,您的板可以接收5v電源。幾乎所有開發板都通過USB端口以5v的電壓運行,但是某些開發板上的電源輸入引腳有時會跳過穩壓器,而變成烤面包片。
此外,請確保將多個獨立的開發板分開電源未連接到Arduino —每當使用外部電源時,請斷開USB電纜。
插入電源后應如下所示:
現在我們的LED燈條已連接好,讓我們繼續進行代碼。
跳舞燈
為了安全地對我們的電路板進行編程,從電源線斷開 VIN 線。您將在稍后重新連接。
將Arduino連接到計算機,然后打開Arduino IDE。檢查您在工具》板子和工具》端口菜單中選擇的板子和端口號是否正確。
我們將使用 FastLED 庫以測試我們的設置。您可以通過單擊素描》包括庫》管理庫并搜索FastLED來添加庫。單擊安裝,該庫將添加到IDE。
在文件》示例》 FastLED 下,選擇 DemoReel100 草圖。該草圖循環了 WS2812 LED燈帶可以完成的各種事情,并且設置起來非常簡單。
您需要更改的只是 DATA_PIN 變量,使其與引腳13 和 NUM_LEDS 變量相匹配,以定義您正在使用的燈條中有多少個LED。在這種情況下,我只使用從較長條帶上切下的一小行10個LED。
就是這樣!將草圖上傳到板上,斷開USB電纜的連接,然后打開5v電源。最后,將Arduino的VIN重新連接到電源線并觀看表演!
如果什么都沒發生,請檢查接線并指定正確的Arduino
無盡的可能性
該演示草圖展示了WS2812試條可以實現的多種可能效果組合。除了從常規的LED燈帶升級之外,它們也可以投入實際使用。一個不錯的下一個項目將是為媒體中心建立自己的氛圍。
盡管這些燈帶肯定比SMD5050更實用,但還不要打折標準的12v LED燈帶。它們在價格方面是無與倫比的,并且LED燈條的應用很多。
學習使用LED燈條是熟悉Arduino上基本編程的好方法,但是最好的學習方法是修修補補。修改上面的代碼,看看可以做什么!如果這一切對您來說太多了,請考慮從適合初學者的Arduino項目開始。
責任編輯:wv
-
led
+關注
關注
242文章
23153瀏覽量
658620 -
Arduino
+關注
關注
187文章
6464瀏覽量
186681
發布評論請先 登錄
相關推薦
評論