這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。
假日季節(jié)來臨之際,我覺得利用Arduino和全彩LED燈條制作裝飾彩燈將會很有趣。這些LED不僅會亮,而且具有多種不同的顏色,能夠為您帶來多彩的節(jié)日氣氛!
今天的電子設(shè)計技巧
估計完成時間:60分鐘
所需部件
Arduino UNO R3
WS2811 5M LED 燈條 240 SMD 5050
目錄
LED燈條簡介
如何連接LED燈條并接線
讓我們來點亮LED燈吧!
1. LED燈條簡介
LED燈條(或者也稱為LED燈帶)與普通的LED有些不同??傮w來講,就是多個LED燈連在一起,組成一個燈條或燈帶。市面上銷售的LED燈條長約30 cm至5 m。
圖1 LED燈條
LED燈條有兩種。第一種是燈條上的所有LED同步開/關(guān)。另一種則具有一個控制IC,可以根據(jù)輸入信號逐一控制燈條上的LED燈。雖然前者擁有更多的LED燈,但是基本上跟普通LED一樣只有正負極端子。而后一種LED燈條則通常具有4個和5個端子,其中包括信號線和正負極端子,如圖3所示。
此外,LED燈條還有一個特點,我們可以通過切割圖2中的黃色虛線來調(diào)整其長度。(但是,如果我們切斷了其他部件,就無法連接正負端子了)
圖2 全彩LED燈條的規(guī)格
圖3 全彩LED燈條端子
除了圖1所示的之外,市面上還有許多類型的LED燈帶。如果您在網(wǎng)上搜索,您會搜到多種不同版本的LED燈條。
圖4 LED燈串
這一次,我們使用圖4所示的LED燈串。
2. 如何連接LED燈串并接線
那么,我們現(xiàn)在該如何點亮全彩LED燈串呢?一個非常方便的庫文件能夠幫我們很容易地處理信號。您可以通過下面的鏈接打開頁面,然后點擊頁面中的“Download Adafruit_NeoPixel for Arduino”按鈕來下載該庫。該頁面還說明了庫的添加方法。
Arduino庫安裝 – adafruit
https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-installation
圖5 下載Adafuit_Neopixel庫
下載壓縮文件之后,如果您用的是Arduino Create,請點擊Libraries(庫)→Import(導入)按鈕,繼續(xù)在Arduino Web Editor中安裝。
如果您正在運行應(yīng)用程序,則可以單擊頂部菜單上的“Sketch”(草圖),然后添加庫。添加庫之后,請將LED燈條連至Arduino。
這次使用的LED燈串所需電壓是5V,且具有四個端子。檢查文件時,除了正極和負極(GND)之外,開發(fā)板一側(cè)還有一個信號端子和一個GND端子。由于LED的輸入電壓是5V,因此我想使用Arduino的5V電源。但是,LED燈條含有多個LED燈,所需電流較大,所以Arduino的5V不夠用,否則Arduino將會損壞。所以,我們會準備一個外部5V電源。
圖6 全彩LED燈帶原理圖
3. 讓我們來點亮LED燈吧!
現(xiàn)在,我們編寫一個程序來點亮LED燈串。下面的示例代碼基于
Adafruit_NeoPixel代碼示例。
LED燈條的示例程序
#include #define PIN 6 //pin number of the signal terminal #define LED_NUM 50 //number of LEDs Adafruit_NeoPixel ledtape = Adafruit_NeoPixel(LED_NUM, PIN, NEO_GRB + NEO_KHZ800); //if the control IC of the LED tape used is WS2812, the third parameter is NEO_KHZ800 and if WS2811 then NEO_KHZ400 void setup() { ledtape.begin(); ledtape.show(); //reflects once in all OFF state } void loop() { uint16_t i, j; for(j=0; j <256; j++) { for(i=0; i < ledtape.numPixels(); i++) { ledtape.setPixelColor(i, rotateColor((((i) * 256 / ledtape.numPixels()) + j) & 255)); } ledtape.show(); delay(20); } } //RGB color transition function uint32_t rotateColor(byte WheelPos) { if(WheelPos < 85) { return ledtape.Color(WheelPos * 3, 255 - WheelPos * 3, 0); } else if(WheelPos < 170) { WheelPos -= 85; return ledtape.Color(255 - WheelPos * 3, 0, WheelPos * 3); } else { WheelPos -= 170; return ledtape.Color(0, WheelPos * 3, 255 - WheelPos * 3); } }
如果已經(jīng)連接LED燈帶并且程序運行正常,您將會看到LED燈點亮。
圖7 LED燈串點亮
而且,如果稍微改變一下程序,我們也可以一個接一個地點亮LED燈。
一次點亮一個LED燈的示例程序
#include #define PIN 6 //pin number of the signal terminal #define LED_NUM 50 //number of LEDs Adafruit_NeoPixel ledtape = Adafruit_NeoPixel(LED_NUM, PIN, NEO_GRB + NEO_KHZ800); //if the control IC of the LED tape used is WS2812, the third parameter is NEO_KHZ800 and if WS2811 then NEO_KHZ400 void setup() { ledtape.begin(); ledtape.show(); //reflects once in all OFF state } void loop() { uint16_t i, j; //Set the state of all colors of the LED in minutes and light in show for(i=0; i < ledtape.numPixels(); i++) { ledtape.setPixelColor(i, Wheel((((i) * 256 / ledtape.numPixels()) + j) & 255)); ledtape.show(); ledtape.setPixelColor(i, ledtape.Color(0,0,0)); delay(20); ledtape.show(); } } //RGB color transition function uint32_t rotateColor(byte WheelPos) { if(WheelPos < 85) { return ledtape.Color(WheelPos * 3, 255 - WheelPos * 3, 0); } else if(WheelPos < 170) { WheelPos -= 85; return ledtape.Color(255 - WheelPos * 3, 0, WheelPos * 3); } else { WheelPos -= 170; return ledtape.Color(0, WheelPos * 3, 255 - WheelPos * 3); } }
現(xiàn)在您可以使用我們剛剛編程的LED燈串裝飾您的室內(nèi)或室外空間了!點燃萬圣節(jié)南瓜燈(即使萬圣節(jié)已經(jīng)過去)后,您會覺得萬圣節(jié)又來了!
今天,我們學習了如何使用LED燈條/燈串的基本知識。下次,我們將使用ROHM傳感器評估套件的傳感器構(gòu)建一個根據(jù)傳感器輸入值控制LED燈串的設(shè)備。假日已經(jīng)提前來臨了!讓我們用這些炫酷的LED燈條/燈串項目,為家里增添一些節(jié)日氣氛吧!
DevicePlus 編輯團隊
設(shè)備升級版適用于所有熱愛電子和機電一體化的人。
審核編輯黃宇
-
led
+關(guān)注
關(guān)注
240文章
22907瀏覽量
650110 -
Arduino
+關(guān)注
關(guān)注
187文章
6453瀏覽量
185922
發(fā)布評論請先 登錄
相關(guān)推薦
評論