這篇文章來(lái)源于DevicePlus.com英語(yǔ)網(wǎng)站的翻譯稿。
假日季節(jié)來(lái)臨之際,我覺(jué)得利用Arduino和全彩LED燈條制作裝飾彩燈將會(huì)很有趣。這些LED不僅會(huì)亮,而且具有多種不同的顏色,能夠?yàn)槟鷰?lái)多彩的節(jié)日氣氛!
今天的電子設(shè)計(jì)技巧
估計(jì)完成時(shí)間:60分鐘
所需部件
Arduino UNO R3
WS2811 5M LED 燈條 240 SMD 5050
目錄
LED燈條簡(jiǎn)介
如何連接LED燈條并接線
讓我們來(lái)點(diǎn)亮LED燈吧!
1. LED燈條簡(jiǎn)介
LED燈條(或者也稱(chēng)為L(zhǎng)ED燈帶)與普通的LED有些不同。總體來(lái)講,就是多個(gè)LED燈連在一起,組成一個(gè)燈條或燈帶。市面上銷(xiāo)售的LED燈條長(zhǎng)約30 cm至5 m。
圖1 LED燈條
LED燈條有兩種。第一種是燈條上的所有LED同步開(kāi)/關(guān)。另一種則具有一個(gè)控制IC,可以根據(jù)輸入信號(hào)逐一控制燈條上的LED燈。雖然前者擁有更多的LED燈,但是基本上跟普通LED一樣只有正負(fù)極端子。而后一種LED燈條則通常具有4個(gè)和5個(gè)端子,其中包括信號(hào)線和正負(fù)極端子,如圖3所示。
此外,LED燈條還有一個(gè)特點(diǎn),我們可以通過(guò)切割圖2中的黃色虛線來(lái)調(diào)整其長(zhǎng)度。(但是,如果我們切斷了其他部件,就無(wú)法連接正負(fù)端子了)
圖2 全彩LED燈條的規(guī)格
圖3 全彩LED燈條端子
除了圖1所示的之外,市面上還有許多類(lèi)型的LED燈帶。如果您在網(wǎng)上搜索,您會(huì)搜到多種不同版本的LED燈條。
圖4 LED燈串
這一次,我們使用圖4所示的LED燈串。
2. 如何連接LED燈串并接線
那么,我們現(xiàn)在該如何點(diǎn)亮全彩LED燈串呢?一個(gè)非常方便的庫(kù)文件能夠幫我們很容易地處理信號(hào)。您可以通過(guò)下面的鏈接打開(kāi)頁(yè)面,然后點(diǎn)擊頁(yè)面中的“Download Adafruit_NeoPixel for Arduino”按鈕來(lái)下載該庫(kù)。該頁(yè)面還說(shuō)明了庫(kù)的添加方法。
Arduino庫(kù)安裝 – adafruit
https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-installation
圖5 下載Adafuit_Neopixel庫(kù)
下載壓縮文件之后,如果您用的是Arduino Create,請(qǐng)點(diǎn)擊Libraries(庫(kù))→Import(導(dǎo)入)按鈕,繼續(xù)在Arduino Web Editor中安裝。
如果您正在運(yùn)行應(yīng)用程序,則可以單擊頂部菜單上的“Sketch”(草圖),然后添加庫(kù)。添加庫(kù)之后,請(qǐng)將LED燈條連至Arduino。
這次使用的LED燈串所需電壓是5V,且具有四個(gè)端子。檢查文件時(shí),除了正極和負(fù)極(GND)之外,開(kāi)發(fā)板一側(cè)還有一個(gè)信號(hào)端子和一個(gè)GND端子。由于LED的輸入電壓是5V,因此我想使用Arduino的5V電源。但是,LED燈條含有多個(gè)LED燈,所需電流較大,所以Arduino的5V不夠用,否則Arduino將會(huì)損壞。所以,我們會(huì)準(zhǔn)備一個(gè)外部5V電源。
圖6 全彩LED燈帶原理圖
3. 讓我們來(lái)點(diǎn)亮LED燈吧!
現(xiàn)在,我們編寫(xiě)一個(gè)程序來(lái)點(diǎ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燈帶并且程序運(yùn)行正常,您將會(huì)看到LED燈點(diǎn)亮。
圖7 LED燈串點(diǎn)亮
而且,如果稍微改變一下程序,我們也可以一個(gè)接一個(gè)地點(diǎn)亮LED燈。
一次點(diǎn)亮一個(gè)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)或室外空間了!點(diǎn)燃萬(wàn)圣節(jié)南瓜燈(即使萬(wàn)圣節(jié)已經(jīng)過(guò)去)后,您會(huì)覺(jué)得萬(wàn)圣節(jié)又來(lái)了!
今天,我們學(xué)習(xí)了如何使用LED燈條/燈串的基本知識(shí)。下次,我們將使用ROHM傳感器評(píng)估套件的傳感器構(gòu)建一個(gè)根據(jù)傳感器輸入值控制LED燈串的設(shè)備。假日已經(jīng)提前來(lái)臨了!讓我們用這些炫酷的LED燈條/燈串項(xiàng)目,為家里增添一些節(jié)日氣氛吧!
DevicePlus 編輯團(tuán)隊(duì)
設(shè)備升級(jí)版適用于所有熱愛(ài)電子和機(jī)電一體化的人。
審核編輯黃宇
-
led
+關(guān)注
關(guān)注
242文章
23252瀏覽量
660577 -
Arduino
+關(guān)注
關(guān)注
188文章
6468瀏覽量
186954
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論