這篇文章來源于DevicePlus.com英語網站的翻譯稿。
假日季節來臨之際,我覺得利用Arduino和全彩LED燈條制作裝飾彩燈將會很有趣。這些LED不僅會亮,而且具有多種不同的顏色,能夠為您帶來多彩的節日氣氛!
今天的電子設計技巧
估計完成時間:60分鐘
所需部件
Arduino UNO R3
WS2811 5M LED 燈條 240 SMD 5050
目錄
LED燈條簡介
如何連接LED燈條并接線
讓我們來點亮LED燈吧!
1. LED燈條簡介
LED燈條(或者也稱為LED燈帶)與普通的LED有些不同。總體來講,就是多個LED燈連在一起,組成一個燈條或燈帶。市面上銷售的LED燈條長約30 cm至5 m。
圖1 LED燈條
LED燈條有兩種。第一種是燈條上的所有LED同步開/關。另一種則具有一個控制IC,可以根據輸入信號逐一控制燈條上的LED燈。雖然前者擁有更多的LED燈,但是基本上跟普通LED一樣只有正負極端子。而后一種LED燈條則通常具有4個和5個端子,其中包括信號線和正負極端子,如圖3所示。
此外,LED燈條還有一個特點,我們可以通過切割圖2中的黃色虛線來調整其長度。(但是,如果我們切斷了其他部件,就無法連接正負端子了)
圖2 全彩LED燈條的規格
圖3 全彩LED燈條端子
除了圖1所示的之外,市面上還有許多類型的LED燈帶。如果您在網上搜索,您會搜到多種不同版本的LED燈條。
圖4 LED燈串
這一次,我們使用圖4所示的LED燈串。
2. 如何連接LED燈串并接線
那么,我們現在該如何點亮全彩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(導入)按鈕,繼續在Arduino Web Editor中安裝。
如果您正在運行應用程序,則可以單擊頂部菜單上的“Sketch”(草圖),然后添加庫。添加庫之后,請將LED燈條連至Arduino。
這次使用的LED燈串所需電壓是5V,且具有四個端子。檢查文件時,除了正極和負極(GND)之外,開發板一側還有一個信號端子和一個GND端子。由于LED的輸入電壓是5V,因此我想使用Arduino的5V電源。但是,LED燈條含有多個LED燈,所需電流較大,所以Arduino的5V不夠用,否則Arduino將會損壞。所以,我們會準備一個外部5V電源。
圖6 全彩LED燈帶原理圖
3. 讓我們來點亮LED燈吧!
現在,我們編寫一個程序來點亮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); } }
如果已經連接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); } }
現在您可以使用我們剛剛編程的LED燈串裝飾您的室內或室外空間了!點燃萬圣節南瓜燈(即使萬圣節已經過去)后,您會覺得萬圣節又來了!
今天,我們學習了如何使用LED燈條/燈串的基本知識。下次,我們將使用ROHM傳感器評估套件的傳感器構建一個根據傳感器輸入值控制LED燈串的設備。假日已經提前來臨了!讓我們用這些炫酷的LED燈條/燈串項目,為家里增添一些節日氣氛吧!
DevicePlus 編輯團隊
設備升級版適用于所有熱愛電子和機電一體化的人。
審核編輯黃宇
-
led
+關注
關注
242文章
23332瀏覽量
662132 -
Arduino
+關注
關注
188文章
6477瀏覽量
187490
發布評論請先 登錄
相關推薦
評論