前段時間我正在籌備一個項目,大體是如何巧妙地照亮我們的中庭房間。在秋冬季節房間變得有點太陰暗了,我想要比 LED 燈更自然的東西,最好是閃爍蠟燭的現場外觀。
創造一個逼真的人造火焰并不是一件容易的事,所以我的想法是:把燈光放在看不到“火焰”的地方,然后我們只能看到所產生的光,接著借此在墻上跳舞。
由于房間主要由玻璃墻制成,顯而易見的選擇是讓光線投射在支撐窗戶的白色光束上。我決定將燈放在水平光束的底部,將光向下投射到垂直光束上。
準備和計劃
由于我希望能夠單獨控制每個“蠟燭”,因此 LED 燈的選擇很容易;它顯然應該是一組基于 WS2812 的 LED 模塊,所以我訂購了 100 個單獨的 LED。
正如您在上圖中所見,每個 LED 有六個連接 - 并且背面標有箭頭方向。
其中兩個連接標記為5V ,兩個是GND ,然后是Din (數據輸入)和Dout (數據輸出)。兩個5V相連,兩個GND也相連。所以實際上有四個連接;5V 、GND 、Din和Dout 。
在對每個“蠟燭”不同數量的 LED 進行了一些試驗后,我想出了四個。這個數字使我能夠對每根光束進行足夠有趣的燈光操作,從而在不需要太多 LED 的情況下制作出逼真的蠟燭外觀。
注:如果我必須再做一次,我會訂購一組 2×2 LED 模塊,以簡化組裝。
控制器不需要非常先進,我的假設是Arduino Nano就足夠了。
Arduino 的位置并不明顯。最后,我選擇將它放在水平梁本身上,在上面第一張照片中可見的粗柱后面(最左邊)。柱子放置在兩個玻璃墻相交的房間的角落(照片中顯示了“右”墻)。通過這種方式,我可以將 LED 安裝在兩條平行的燈串上——每堵墻一個——以最小化每個燈串的物理長度。現在,每根弦的總長度約為 4 米(13 英尺),而不是原來的兩倍。
隱藏電纜
這一步依據我自身的情況,并沒有那么難。因為 LED 被放置在水平光束的底部,LED 模塊本身只需用強力雙面膠帶放置即可。
創建 LED 模塊
由于我不想將整個東西焊接在一根全長的串上(我想象我在嘗試將東西安裝在梁的底部時會遇到電纜堵塞)我決定用連接器構建 LED 模塊。
LED 模塊將放置在垂直光束旁邊,以便盡可能多地反射光線。我還想讓電纜靠近光束。這導致我有兩個版本的模塊;一個設置放在從 Arduino向右的繩子上,一個向左。
這兩個模塊版本需要兩種獨特的焊接布局,主要區別在于保持數據流從正確的 LED 流向下一個。
由于 LED 非常小,直徑約為 9 毫米(3/8 英寸),因此焊接它們并不容易;鑒于我缺乏焊接經驗,結果并不是那么好和漂亮。但它確實有效。
焊接
在焊接之前,我從 2×5 的原始部分切下一個 2×2 LED 模塊。然后我將一端涂成紅色,另一端涂成黑色,以標記靠近 5V 和 GND 的兩側。
第一步首先做一個焊接練習,在每個 LED 的微小金屬島上滴一滴焊料。
下一步是連接簡單的直線,靠近的連接。
然后跟隨電纜需要保持絕緣,因為它們相互交叉。
總而言之,每個方向都有五根光束——加上角梁——總共有十一根光束。由于每個 LED 模塊有四個 LED,因此單個 LED 的數量為 44 個。
在幾個模塊之后,我掌握了竅門,最后我可以在大約 30 分鐘內焊接一個完整的模塊。
“短電纜技巧”
許多細小的電纜都需要絕緣層,但是當電纜的總長度不到一厘米時,很難在每一端切割出足夠的絕緣層以暴露內芯。
然后我想出了這個(明顯的)技巧:
1.焊接電纜的一端,然后將其彎曲并切割成所需的長度。
2.將絕緣層向下滑動一點。
3.從釋放的絕緣層上剪下所需的長度。
4.向后滑動絕緣層,露出自由端的芯線。
這樣就可以創建裸露電纜芯的確切長度,結果非常好:
完成 LED 模塊
最后,LED 模塊應倒置在梁上,因此必須準備好焊接的、填充電纜的背面以固定膠帶。
我開始使用一些隨機的扁平塑料,我只是簡單地切成正方形。這些只是用熱膠粘在 LED 模塊上。
這是所有完整的模塊:
完整的模塊很容易用強力膠帶粘在它們現在平坦的背面。
制作電纜
幸運的是,我周圍有一卷舊電話延長線。這條電纜有四根獨立的電線,這綽綽有余,因為我需要三根電線(5V、GND 和數據)。
在沒有特殊壓接工具的情況下安裝母插座并不容易,但完全可行。
電纜通道很容易安裝;只需將其切成合適的長度并使用預先粘貼的膠帶將其連接到水平梁上。
這是最終安裝的模塊的樣子:
自動激活和停用
由于我不想在天黑時手動打開燈并在之后將其關閉,因此我放入了一個光敏電阻。
同時我不想要簡單的開/關,而是在黃昏時分逐漸改變光強度。出于這個原因,我需要知道我的光敏電阻在晚上決定“白天”變成“暮光”和“暮光”變成“黑暗”的時間點的模擬值。
在下面的圖表中,紅色曲線代表光敏電阻在一天中變化時的模擬讀數(不是下面的實際讀數,只是我的手繪圖)。兩條微弱的水平線標志著兩個層次;頂部是“daylight”變成“twilight”的極限,而底部是“twilight”變成“darkness”的極限。所以,當紅色曲線高于頂部水平線時,我認為它是白天,當它低于底部水平線時,它是夜晚。
綠色的直線是“干凈的”日光測量值,即夜間的最小值 (0.0) 和白天的最大值 (1.0),以及黃昏時的線性斜率。
為了知道實際的模擬讀數,我將四個光敏電阻連接到一個 Arduino 和一個 LCD 屏幕,以顯示四個電阻的電流、最小值和最大值。我使用了四個,因為我不知道我是否有一個壞的,所以如果他們中的大多數人的讀數大致相同,我知道他們會工作。顯然,我將設備放置在我打算讓 Arduino 最終驅動 LED 的同一位置。這是它的樣子:
由于 LCD 非常有限,我當時顯示了一個光敏電阻的讀數大約五秒鐘。然后在白天我不時過去,在一張紙上寫下數字。(顯然,我本可以將它連接到我的筆記本電腦并通過串行連接發送數字,但我白天需要筆記本電腦,不想整天坐在中庭)。
最后我決定它在“630”以下是暗的,在“800”以上是亮的。但是這些數字顯然正好適合我的光敏電阻和我串聯使用的 10 kΩ 電阻,所以這不是絕對的事實。
Arduino 源代碼
我希望能夠擁有不同類型的燈光效果,而不僅僅是燭光。出于這個原因,我構建了源代碼模塊化,試圖將不同的機制隔離在不同的文件中,以便于概覽。
主.ino文件非常小。我基本上只是啟動了整個事情并調用Update()了幾個助手類(這反過來又起到了作用)。
目前源代碼支持兩種不同的效果:“燭光”效果和“圣誕節”效果。目前效果的選擇是硬編碼的,這意味著如果我想進行切換,我需要重新編譯代碼。到這一步,所有需要的步驟就做完了,所以接下來讓我們拭目以待。
-
led燈
+關注
關注
22文章
1592瀏覽量
108236 -
Arduino
+關注
關注
188文章
6477瀏覽量
187573
發布評論請先 登錄
相關推薦
評論