步驟1:接線
大多數WS2812板帶三線連接器。我卸下了連接器的塑料外殼,然后將電線直接連接到插針上(它們非常合適)。白色是GND,紅色是+ 5V,綠色是數據輸入。
大多數LED燈帶的兩端都有額外的電源線。這些導線通常是裸露的,因此請確保將其隔離(否則可能會導致其意外短路)。
請注意,LED需要很多功率。如果有30個LED燈帶,則可以直接從任何PC或USB電源以全亮度運行它(它將消耗小于500mA的電流)。大約100個LED在低亮度下也能正常工作,但是如果您想要更多,最好使用單獨的電源。對于長條,建議從兩端供電,對于長條,建議連接額外的電源線,每個100-200個LED。
WS2812串行接收彩色數據,因此您實際上可以控制任何數量的僅具有一個數據引腳的LED。您可以使用任何數字輸出引腳(不要忘記在代碼中輸入正確的數字)。
一旦連接了插排,就可以進入編碼部分。
步驟2:編碼
該代碼在我的github存儲庫中可用–您可以將代碼下載為單個文件此處:https://goo.gl/abFfxz
要快速入門,請找到 #define PIN 0 ,并將0替換為與NeoPixel的數據輸入連接的引腳數
您可能還希望調整其他設置,如代碼注釋中所述:
#define NUMPIXELS 30 –設置數字像素控制
#define RNDPIN 2 –設置為任何具有模擬輸入的引腳(僅用于初始化隨機數生成器一次)
#define BRIGHTNESS 64 –最大LED亮度(1到255)。請注意,高亮度需要很多功率,因此從低值開始
#define FOCUS 65 –色斑的形狀(增加以獲得狹窄的斑點,減少以獲得較寬的斑點)
#define DELAY 4000 –設置動畫的速度:降低以加快速度,增加以減慢速度(實際上并不是延遲)
#define DEBUG 0 –設置為1以顯示FPS速率
使用常規方法上傳代碼。盡情享受吧!
步驟3:故障排除
如果根本看不到任何東西,請檢查連接,極性和數據引腳。
如果某些LED閃爍或卡住–可能是電源問題。嘗試降低 #define BRIGHTNESS 設置,并確保您具有足夠的功能。
如果您發現代碼中有任何錯誤或想要改進–歡迎您!
第4步:如何工作
對于此項目,我們有三個“色斑”,它們可以向后跑沿著地帶以不同的速度前進。當斑點彼此相遇時,紅色,綠色和藍色的疊加會產生各種顏色。我們將每個光斑的位置和速度保持在變量中,我們需要為每個重繪上的每個LED重新計算顏色。雖然我們每秒可以做很多次,但動畫看起來會很平滑。
像素的每個顏色分量都與 exp(-d * d)成比例,其中 d 是像素與相應顏色的光點中心之間的距離。換句話說,像素顏色代表正態分布(高斯分布),與在圖形編輯器中使用“高斯模糊”濾鏡完全相同。
Arduino庫中包含的指數函數看起來非常慢,因此我僅使用兩個乘法和一個除法進行了近似: 1.0/(1.0-(0.634-1.344 * x)* x)。請注意,此近似值僅適用于 x 《0 。
我們計算循環中每個像素的顏色,并通過調用 strip.setPixelColor將其發送到內存緩沖區。 ()即可。當我們遍歷每個像素時,我們調用 strip.show(),NeoPixel庫將所有數據同步發送到指定的引腳-所有像素,一個像素一個像素,一個24位彩色數據。 First NeoPixel讀取前24位數據,將其本地存儲在寄存器中,然后將所有其他數據傳遞到下一個像素。第二個“像素”獲取其數據,并將剩余的數據發送到下一個像素,依此類推,直到每個像素獲取其數據。您可以安全地發送少于條帶中的LED數量的數據-只有第一個 NUMPIXELS 才可以工作。
該代碼已被詳細記錄(希望!),請詢問問題在這里!
第5步:調整
當然,有很多方法可以修改此想法并創建其他項目。
例如,我為我的一個項目制作了一個金屬環,并將其中的一條膠粘到其中。現在,這是一個不錯的裝飾燈,您可以將其放在墻壁或天花板上。在窗玻璃附近放置一個條帶可以產生很好的反射效果(如您在照片上看到的那樣)。
在技術方面,通過在定點計算中重寫數學運算可以大大改善代碼。我正在使用float來保持事物的描述性和易于理解,但這非常慢。我可能稍后會發布優化版本,或者,如果有人愿意,歡迎您!
我的另一個想法是使用麥克風調整動畫聲音。可能需要比ATtiny更強大的功能。
最后,您可以將Digispark插入任何移動電源,并在便攜式模式下欣賞您的小工具。將條帶粘在手提包,衣服或自行車上,并用作獨特的個人配件。)
-
LED燈條
+關注
關注
2文章
100瀏覽量
13430
發布評論請先 登錄
相關推薦
開源項目!手把手教你制作一個互動式LED墻壁時鐘!
使用伺服機構開發板控制 NeoPixel LED

成興光 LED燈珠點亮壁燈,綻放獨特光彩

【每天學點AI】一個例子帶你了解Python裝飾器到底在干嘛!

APM805F應用于太陽能草坪燈升壓芯片
低壓線性恒流LED恒流驅動芯片:用于洗墻燈和線條燈
什么是USB聲卡?

ESP32-S3控制WS2812燈帶顯示異常如何解決?
制作了一個usb小pcb,在pc上總是顯示請求usb設備描述符失敗,為什么?
數能低壓恒流IC全集(適用于LED燈帶,車燈照明,UVC消毒燈,LED商業照明,高端軌道照明等應用)
鴻蒙OS開發實例:【ArkTS類庫多線程@Concurrent裝飾器校驗并發函數】

評論