|
心靈燭光晚宴
基本思路
通過(guò)讓彩色燈光從玻璃缸底部反射出來(lái),必須確保水不會(huì)輕易進(jìn)入電路引發(fā)短路,這就需要拿一些東西將玻璃缸抬高一點(diǎn)。我找了一個(gè)12x12cm的木制底座和一些塑料模具。
1.jpg (12.76 KB, 下載次數(shù): 89)
下載附件
2019-4-17 00:38 上傳
先將蠟燭切成四塊,蠟燭將安置在塑料模具上,彩燈將放置在模具下方朝上。所有器件都放入底座中,最后用填料覆蓋以隱藏電路。
2.jpg (8.98 KB, 下載次數(shù): 92)
下載附件
2019-4-17 00:38 上傳
電路設(shè)計(jì)
該電路由Arduino,鋰電池和充電器以及三顆彩燈組成。當(dāng)然還有開(kāi)關(guān)和四顆用于狀態(tài)指示燈�?偟膩�(lái)說(shuō),這是一個(gè)非常簡(jiǎn)單的設(shè)計(jì),并且不需要很長(zhǎng)時(shí)間就能運(yùn)行。
準(zhǔn)備指示燈
該電路有四顆狀態(tài)指示燈。藍(lán)色LED指示已啟動(dòng)并正在運(yùn)行。紅色LED指示電源正常。黃色LED指示電池正在充電,綠色LED指示電池已充滿(mǎn)電。
紅色、綠色和黃色LED將連接一個(gè)220Ω電阻,藍(lán)色LED將使用330 Ω。最好是是所有LED都具有大致相同的亮度。
切割長(zhǎng)度約為20cm的導(dǎo)線(xiàn)。我喜歡使用與LED顏色相匹配的顏色,以便更容易布線(xiàn)�?赡苁菑�(qiáng)迫癥。
用黑線(xiàn)焊接到每個(gè)LED的陰極上。接下來(lái),將綠色線(xiàn)焊接到綠色LED上的陽(yáng)極,紅色線(xiàn)連接到紅色LED上的陽(yáng)極,黃色線(xiàn)連接到黃色LED上的陽(yáng)極�,F(xiàn)在在每根導(dǎo)線(xiàn)上套上一根長(zhǎng)度約為5cm的熱縮管。用打火機(jī)燒一下讓它縮小到最小。
3.jpg (8.99 KB, 下載次數(shù): 91)
下載附件
2019-4-17 00:38 上傳
接下來(lái)將電阻的一端焊接到每個(gè)LED的陽(yáng)極上的導(dǎo)線(xiàn)。將另一個(gè)熱縮管滑過(guò)電阻并將其縮小到位。管的長(zhǎng)度應(yīng)足夠長(zhǎng),以遮住整個(gè)電阻和裸線(xiàn)。
4.jpg (8.03 KB, 下載次數(shù): 96)
下載附件
2019-4-17 00:38 上傳
通過(guò)將每個(gè)LED連接到電源來(lái)測(cè)試每個(gè)LED。
準(zhǔn)備彩燈
彩燈將使用三根線(xiàn)串聯(lián)接在一起。每個(gè)彩燈的數(shù)據(jù)輸入和數(shù)據(jù)輸出引腳接在一起。
1)切3組3根線(xiàn)。一個(gè)紅色,一個(gè)黑色和一個(gè)黃色,每根20cm長(zhǎng)。每種顏色3根。
2)將黑色線(xiàn)焊接到彩燈底部的Gnd焊盤(pán)。將紅線(xiàn)焊接到同一側(cè)的5V焊盤(pán)。
3)將黃色線(xiàn)焊接到Din 焊盤(pán)。
4)現(xiàn)在將第二個(gè)黑線(xiàn)焊接到同一個(gè)彩燈上的另一個(gè)Gnd焊盤(pán)上。
5)將第二根紅線(xiàn)焊接到同一彩燈上的另一個(gè)5V 焊盤(pán)。
6)將第二根黃色線(xiàn)焊接到同一彩燈上的Dout 焊盤(pán)
7)這是第一個(gè)彩燈。該Din線(xiàn)將連接到引腳6。
8)將第一個(gè)彩燈 的Dout 側(cè)的導(dǎo)線(xiàn)焊接到下一個(gè)彩燈 的 Din 焊盤(pán)上。請(qǐng)注意,第一個(gè)彩燈的 Dout 連接到下一個(gè)彩燈的Din 。
9)將第一個(gè)彩燈的黑色線(xiàn)和紅色線(xiàn)連接到第二個(gè)彩燈的Gnd和5V焊盤(pán)。
10)以相同的方式將第三組導(dǎo)線(xiàn)連接到第二個(gè)彩燈的Dout 側(cè)
11)現(xiàn)在將來(lái)自第二個(gè)彩燈的第三組導(dǎo)線(xiàn)的另一端連接到第三個(gè)彩燈的Din 側(cè)。
12)完成后,彩燈上的所有5V焊盤(pán)都連接在一起,并且所有Gnd 焊盤(pán)都連接在一起。第一個(gè)彩燈的Dout 連接到第二個(gè)彩燈的Din 。第二個(gè)彩燈的 Dout 連接到第三個(gè)彩燈的Din 。
把Gnd和5V連接到Arduino。將第一個(gè)彩燈的黃色線(xiàn)連接到Arduino上的第6個(gè)引腳。來(lái)測(cè)試是否正常工作。
5.jpg (25.1 KB, 下載次數(shù): 81)
下載附件
2019-4-17 00:38 上傳
基座布局
首先用一把剪刀將肥皂模具分成四塊。我留下了所有的邊緣,只切掉了頂部。邊緣可用于將模具貼到底座上。
6.jpg (21.71 KB, 下載次數(shù): 93)
下載附件
2019-4-17 00:38 上傳
如上圖所示,三個(gè)用于固定蠟燭圓筒,另外個(gè)用于覆蓋電路。我還把電池放在其中一個(gè)蠟燭底座下面。用鉆頭在其中兩個(gè)模具的每一側(cè)鉆兩個(gè)孔,彼此相對(duì)。在第四個(gè)模具,這是用于覆蓋電子器件的最大部件,我用刀切出三個(gè)孔。第一個(gè)在長(zhǎng)邊(右邊),LED線(xiàn)和彩燈線(xiàn)將通過(guò)。注意在切開(kāi)此開(kāi)口時(shí),我也移除了塑料的底部,因此電線(xiàn)可以靠在木頭底部。第二個(gè)孔位于開(kāi)關(guān)附近的短邊上。這允許開(kāi)關(guān)線(xiàn)穿過(guò)。最后一個(gè)整體與充電器上的USB端口對(duì)齊。
使用熱膠槍?zhuān)瑢⒉薀暨B接到模具下方,彩燈對(duì)齊在每個(gè)模具的中心。注意,我將熱膠放在彩燈兩側(cè)的導(dǎo)線(xiàn)上,而不是彩燈本身。
7.jpg (19.71 KB, 下載次數(shù): 84)
下載附件
2019-4-17 00:38 上傳
接下來(lái),我將USB充電器對(duì)準(zhǔn),使其盡可能齊平地靠近底座的左側(cè)(使USB端口盡可能靠近側(cè)面)。我在模具頂部標(biāo)記并鉆了四個(gè)小孔,與充電器PCB上的孔對(duì)齊,然后用尼龍六角螺絲將USB充電器連接到塑料模具上。在充電期間連接USB電纜時(shí),這可使充電器保持在適當(dāng)位置。
8.jpg (20.86 KB, 下載次數(shù): 96)
下載附件
2019-4-17 00:38 上傳
下圖可以看到底座被涂成白色。鉆完所有的孔并打磨后,可以刷涂或噴涂白色(或任何你喜歡的顏色)。
9.jpg (26.42 KB, 下載次數(shù): 95)
下載附件
2019-4-17 00:38 上傳
需要在側(cè)面鉆五個(gè)孔。其中四個(gè)用于LED,第五個(gè)用于USB充電電纜。將LED插入塑料模制件中,然后插入鉆孔中。當(dāng)模制件插入他們將要穿過(guò)的材料時(shí),由于這些是插入一塊木頭,它們需要一個(gè)稍大的孔。下圖顯示了LED和充電器孔的位置。
0.jpg (16.22 KB, 下載次數(shù): 96)
下載附件
2019-4-17 00:38 上傳
在準(zhǔn)備好各種組件后,對(duì)框架進(jìn)行打磨和涂漆。接下來(lái),我將LED插入塑料模制品中并將它們推入孔中。我不需要將它們粘合,因?yàn)樗鼈兎浅_m合于孔。我將所有模具放置到位,并使用透明膠帶將它們固定到位。我盡可能使用尺子將三個(gè)蠟燭模具集中在一起。使用熱膠將滑動(dòng)開(kāi)關(guān)粘在內(nèi)部框架頂部附近。一切就緒后,我將玻璃燭臺(tái)放在模具上,然后用玻璃填充物填充盒子。冰球漂浮在水中,一切都準(zhǔn)備好了!
00.jpg (86.27 KB, 下載次數(shù): 94)
下載附件
2019-4-17 00:38 上傳
Arduino源程序如下:
- #include <Adafruit_NeoPixel.h>
- #include <avr/power.h>
- // ***
- // *** The first NeoPixel is connected to pin 0
- // ***
- #define NEO_PIXEL_PIN 0
- // ***
- // *** The pin on which the power LED is connected
- // ***
- #define POWER_LED_PIN 3
- // ***
- // *** Number of NeoPixels
- // ***
- #define NEO_PIXEL_COUNT 3
- // ***
- // *** Create the NeoPixel instance
- // ***
- Adafruit_NeoPixel strip = Adafruit_NeoPixel(NEO_PIXEL_COUNT, NEO_PIXEL_PIN, NEO_GRB + NEO_KHZ800);
- void setup()
- {
- // ***
- // *** Trinket 16MHz
- // ***
- if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
- // ***
- // *** Setup the power LED
- // ***
- pinMode(POWER_LED_PIN, OUTPUT);
- // ***
- // *** Turn the Power LED on
- // ***
- digitalWrite(POWER_LED_PIN, HIGH);
- // ***
- // *** Setup the strip
- // ***
- strip.begin();
- strip.show();
- }
- void loop()
- {
- rainbowCycle(60);
- }
- void rainbowCycle(uint8_t wait)
- {
- uint16_t i, j;
- for (j = 0; j < 256 * 5; j++)
- {
- // ***
- // *** 5 cycles of all colors on wheel
- // ***
- for (i = 0; i < strip.numPixels(); i++)
- {
- strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
- }
- strip.show();
- delay(wait);
- }
- }
- uint32_t Wheel(byte WheelPos)
- {
- WheelPos = 255 - WheelPos;
- if (WheelPos < 85)
- {
- return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
- }
- if (WheelPos < 170)
- {
- WheelPos -= 85;
- return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
- }
- WheelPos -= 170;
- return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
- }
復(fù)制代碼
|
|