第1步:收集材料
我有多少次說(shuō)出來(lái)?始終擁有您需要的東西,并保證您能夠在完成之前構(gòu)建一些東西。
注意:其中一些是聯(lián)盟鏈接(標(biāo)記為“al” ),如果您通過(guò)它們購(gòu)買,我將得到一個(gè)小的回扣,而不會(huì)給您帶來(lái)額外費(fèi)用。感謝您購(gòu)買鏈接!
零件:
1x Arduino Nano Nano - al
1x 10k旋轉(zhuǎn)電位器5個(gè)裝10k電位器 - al
1x 5mm桶式千斤頂(我的油炸Arduino Uno回收)女性桶式千斤頂(5個(gè)裝) - al
2x 2 -pin瞬時(shí)按鈕10個(gè)裝SPST按鈕開(kāi)關(guān) - 白色
來(lái)自60個(gè)LED/米線(任何等效物,例如WS2812B,12x NeoPixels)將起作用Adafruit NeoPixels
0.5毫米鋁
舊柔性打火機(jī)的柔性頸部
上下蓋環(huán)由“Stick and Click”LED櫥柜燈LED櫥柜燈 - al
一小片1/4英寸膠合板
重型扁平金屬尺寸(大約)1.5“×2.5”×0.25“
絞合芯電線
工具:
熱膠槍和膠水
烙鐵和焊錫
無(wú)線電鉆和各種小捻刀
X-acto刀(或美工刀)
剝線鉗
鉗子
剪線鉗/剪刀
重型剪刀
如果您沒(méi)有扁平金屬重量,您還需要:
1卷便宜的焊料(不是你將用于焊接的東西)廉價(jià)的無(wú)鉛焊料
酒精蠟燭(或本生燈)
你不介意毀壞的小硬化鋼盤(pán)(或者如果你有一個(gè)小坩堝)
三腳架用于所述盤(pán)子/坩堝(我用12號(hào)鋼絲制成的)
一種粘土植物盤(pán)(其中一種東西在鍋底下)
一些鋁箔
p》
注意:如果您有焊接套件或3D打印機(jī),則可能不需要此處列出的所有工具。
步驟2:減輕重量
這是一個(gè)相當(dāng)困難的步驟,你必須使用極其謹(jǐn)慎這樣做。如果您的重金屬重量或扁平釹磁鐵約為2.75“乘1.75”乘0.25“,我建議使用它(而磁鐵甚至可以讓您將燈放在金屬表面上!)。
免責(zé)聲明:我不對(duì)您的任何傷害負(fù)責(zé),所以請(qǐng)使用常識(shí)。
另外,在混凝土表面外面這樣做你不會(huì)介意它是否有點(diǎn)燒焦(這只是一個(gè)預(yù)防措施)。我沒(méi)有這個(gè)過(guò)程的圖片,因?yàn)橄鄼C(jī)本來(lái)就是我不需要或想要的額外分心。
首先,用鋁箔或濕粘土制作一個(gè)小模具,約2 3/4英寸×1 3/4英寸×1/4英寸內(nèi)部尺寸。它可以是像我的橢圓形或矩形。使用多層箔或厚粘土層。
將模具放入陶瓷植物盤(pán)中,填充兩者模具和托盤(pán) 冷水。
拿y我們的未點(diǎn)燃的酒精蠟燭/本生燈,并將鋼盤(pán)/坩堝放在三腳架上,這樣火焰將加熱盤(pán)子的中心(點(diǎn)亮?xí)r)。點(diǎn)燃燃燒器之前,確保你手上至少有 1把鉗子或金屬加工鉗,如果不是2.
戴上皮手套是個(gè)好主意,在接下來(lái)的幾個(gè)步驟中,長(zhǎng)袖,長(zhǎng)褲,露趾鞋和護(hù)目鏡。
卷起并從線軸上取下一堆便宜的焊料并將其放入鋼盤(pán)中,然后點(diǎn)燃燃燒器。等到線圈完全融化,然后開(kāi)始以中等速度將剩余焊料送入碟中。如果焊料中含有松香,則可能會(huì)在高溫下自發(fā)燃燒,產(chǎn)生淡黃色火焰和黑煙。別擔(dān)心,這發(fā)生在我身上多次,并且完全正常。
繼續(xù)將焊料送入培養(yǎng)皿中,直到最后一個(gè)熔化。
讓任何燃燒松香的火焰完全消失,并用鉗子/鉗子抓住碟子,輕輕旋轉(zhuǎn)內(nèi)部融化的金屬,同時(shí)小心翼翼地保持它在火焰中。
在確定所有焊料完全液化且溫度很高的情況下,快速小心地將其從火焰并將其倒入模具中。當(dāng)一些水蒸發(fā)并且其余部分被迫離開(kāi)時(shí),會(huì)發(fā)出《強(qiáng)烈的嘶嘶聲和蒸汽。模具由熔化的焊料代替。
讓焊料冷卻,關(guān)閉燃燒器/吹掉蠟燭,將鋼盤(pán)放在安全的地方冷卻。您可能需要將冷水倒在冷卻焊料上以加速冷卻并進(jìn)一步硬化。 (冷水使外部冷卻比內(nèi)部更快,產(chǎn)生內(nèi)部張力,使金屬更硬,更硬,類似于魯珀特王子的掉落。)你也可以在你的金屬盤(pán)上澆水,但這會(huì)導(dǎo)致它變脆,特別是如果多次完成。
焊料完全冷卻后(大約《20分鐘左右安全),將其從鋁箔模具中取出。
我的一側(cè)比另一側(cè)更厚,所以我用錘子將它弄平,并使邊緣變平(導(dǎo)致你在圖片中看到的形狀)。然后我在流水下輕輕地打磨它來(lái)打磨它,并把它放在一邊待用。
步驟3:構(gòu)建電子外殼,步驟1
這些是用于容納Nano的外殼的部件,安裝接口,基本上是將HALO燈固定在一起的部件。我用我的0.5毫米鋁和熱膠水制作我的,但是如果你有一臺(tái)3D打印機(jī)(我一直試圖為我的商店買一段時(shí)間)我在Tinkercad制作了一個(gè).STL版本,我附在這里給你下載。由于我自己沒(méi)有打印機(jī),我無(wú)法測(cè)試打印模型以查看是否所有打印都正常,但我認(rèn)為如果在切片機(jī)中添加適當(dāng)?shù)闹谓Y(jié)構(gòu)應(yīng)該沒(méi)問(wèn)題。如果您需要或想要稍微不同的設(shè)計(jì)或美學(xué),您也可以在這里復(fù)制和編輯源文件。
尺寸實(shí)際上來(lái)自我為焊接而不是尺寸的金屬重量。電子產(chǎn)品,但結(jié)果非常好,尺寸非常優(yōu)秀。
圖片描述的操作順序與我在此處寫(xiě)的略有不同,這是因?yàn)槲以O(shè)計(jì)了一種改進(jìn)的方法根據(jù)我原來(lái)的方法的結(jié)果。
如果你像我一樣從鈑金裝配,這就是你需要做的事情:
第1步:面板
切割兩個(gè)相同的半圓形形狀,大約1.5英寸高,3英寸寬。 (我把它弄得一團(tuán)糟,所以它們看起來(lái)有點(diǎn)像點(diǎn)唱機(jī)的前面)。
在兩個(gè)板中的一個(gè)板上,為按鈕和電位器鉆出三個(gè)孔。我的每個(gè)直徑為1/4英寸。 這些可以是任何布局,但我更喜歡我的電位器在中心稍微抬起,兩側(cè)的按鈕形成等腰三角形。在鉆孔時(shí),我總是先做一個(gè)小的導(dǎo)孔,然后再去到所需尺寸的鉆頭,它有助于使孔中心并使它們更清潔。
第2步:拱形蓋
彎曲在一塊鋁板上方以適合其中一個(gè)面板的曲線,標(biāo)記正確的邊緣長(zhǎng)度。
切出一條這個(gè)長(zhǎng)度和大約2英寸寬的條帶,形成一個(gè)弧形,與相匹配兩側(cè)面板曲線的形式。
找到曲線頂部的中心點(diǎn),然后鉆一個(gè)洞到適合打火機(jī)的彈性頸。我將孔 偏向后方,因?yàn)槲业臒粼谑褂脮r(shí)大部分頸部向前傾斜,所以我想為此添加一點(diǎn)抵消。我的彈性琴頸直徑只有1/4英寸,因此我使用了1/4英寸的鉆頭(我擁有的最大扭曲鉆頭,小于3/4英寸)并且只是小心地彎曲并扭曲了鉆孔以“鉆孔”直到頸部適合。
現(xiàn)在我們有了殼的零件,下一步是添加電子元件并將它們組合在一起!
步驟4:構(gòu)建電子外殼,步驟2
現(xiàn)在我們添加按鈕和電位計(jì),并將它們放在一起。
步驟1:按鈕和螺栓
從按鈕和電位計(jì)上擰下六角螺母。堅(jiān)果下方應(yīng)該有一個(gè)扣環(huán)設(shè)備,將其留在原位。
將每個(gè)組件通過(guò)各自的孔插入,然后將螺母擰回以將每個(gè)組件固定到位。將螺母擰緊到您確定每個(gè)組件 完全安全的程度。
步驟2.彎曲頸部
將彎曲頸部穿過(guò)彎曲部分頂部的孔。熱膠或焊接(如果你有設(shè)備)將頸部牢固地固定到位。
如果使用熱膠就像我一樣,最好將它粘在大量的膠水 兩側(cè)分布在大面積上以防止膠水在以后脫落。
步驟3:殼體組裝(不適用于3D印刷外殼)
使用焊條或熱膠將前后面板固定在拱形蓋上各自的位置。我花了幾次試圖粘上膠水,就像之前一樣,訣竅是在關(guān)節(jié)的兩側(cè)上使用很多膠水,就像頸部一樣。 膠水所覆蓋的區(qū)域越大,粘貼的越好。
現(xiàn)在我們有了shell,我們可以繼續(xù)添加所有的電路位。
步驟5:添加電子設(shè)備
這是有趣的部分:焊接!最近幾周我真的對(duì)焊接感到有些厭倦,因?yàn)槲易罱恢痹谶@么做,試圖完成我應(yīng)該盡快提出的另一個(gè)項(xiàng)目(留意我機(jī)器人顯示器的一個(gè)激進(jìn)的新版本)平臺(tái)),導(dǎo)致我破壞了一個(gè)鐵并獲得了另一個(gè)。..無(wú)論如何,這里沒(méi)有太多的焊接,所以這應(yīng)該是非常簡(jiǎn)單的。
注意:如果您的Nano已經(jīng)有針頭它,我建議為這個(gè)項(xiàng)目拆焊它們,它們只會(huì)妨礙它們。
上面的圖片中有一張圖表,如果您愿意,可以按照該圖表進(jìn)行操作。
步驟1:接口
從每個(gè)開(kāi)關(guān),將電線從單個(gè)引腳焊接到電位計(jì)的側(cè)引腳。將從同一側(cè)引腳焊接到Nano上的接地引腳。
將電位器中心引腳的導(dǎo)線焊接到Nano 上的 A0。
焊接未連接引腳 切換到 A1 上的《。
焊接來(lái)自未連接引腳的電線在其他開(kāi)關(guān)到 A2 on Nano 。
注意:哪個(gè)開(kāi)關(guān)是哪個(gè)無(wú)關(guān)緊要,你可以很容易地在代碼中更改它們,除了一個(gè)開(kāi)關(guān)簡(jiǎn)單地與另一個(gè)開(kāi)關(guān)相反的事實(shí)。
切割一段長(zhǎng)于《4》英寸的導(dǎo)線,剝開(kāi)兩側(cè)。使用Sharpie,用一條線標(biāo)記一側(cè)。
將電線焊接到電位計(jì)的最后未連接側(cè)銷,扭曲此電線的未連接端 一起與最后一個(gè)子步驟電線的未標(biāo)記的結(jié)尾 。
將此連接端焊接到Nano上的 5V 。
步驟2:顯示和電源線
剪切 2根長(zhǎng)度的導(dǎo)線比柔性頸部長(zhǎng)4英寸,剝?nèi)啥恕?/p>
使用Sharpie,標(biāo)記每根電線的末端,一根線2線,一根3 。
將導(dǎo)線2線焊接到Nano 上的數(shù)字引腳9。
在 5mm桶式插孔上》,將電線從中心引腳(正極)焊接到納米上的 Vin。
焊料另一根電線到桶形千斤頂?shù)膫?cè)銷(接地/負(fù)極)。
使用3個(gè) 的長(zhǎng)線將《3》 的長(zhǎng)線旋轉(zhuǎn)。
將這些 電線焊接到Nano 上的開(kāi)路GND引腳。
隔離連接 電氣膠帶或熱膠,如果需要。
步驟3:切割孔(僅限金屬版,如果3D打印封面,則應(yīng)該沒(méi)問(wèn)題)
使用鉆頭和 X-acto或美工刀,小心在封面?zhèn)让娲虺隹?《納米的 USB端口。
另一個(gè)洞關(guān)于桶面孔的大小在封面背面,最好靠近USB端口對(duì)面的一側(cè)。
步驟4:安裝組件
Feed三根長(zhǎng)線穿過(guò)彈性頸部并從外伸出呃那邊。
使用大量熱膠,將槍管插孔安裝到位,引腳朝向頂蓋頂部。
再次使用大量熱膠,安裝Nano ,重置按鈕朝下和插槽中的USB端口。我在桶式千斤頂和Nano 之間做了一個(gè)“熱膠橋”,這使得每個(gè)人牢牢地保持對(duì)方。
現(xiàn)在我們可以繼續(xù)制作加權(quán)基數(shù)!
第6步:加權(quán)基數(shù)
我對(duì)自己的焊接技術(shù)很有信心并且計(jì)劃好了,所以我在測(cè)試代碼之前先添加了基礎(chǔ)。如果你對(duì)自己的技能不太自信,我會(huì)建議跳過(guò)這一步,當(dāng)你知道一切正常時(shí),最后回到它。
如果你制作了3D打印版本,你可以跳過(guò)第一步繼續(xù)前進(jìn)到第二步。
第1步:木材
從一張1/4英寸的膠合板,切割底座約 3英寸乘2英寸。
將邊緣打磨以平滑將其打開(kāi)并移除色塊。
第2步:重量
首先,確保您的重量選擇,無(wú)論是磁鐵,金屬還是定制焊錫,都適合我們制造的金屬蓋邊緣。我的一個(gè)方向有點(diǎn)大,所以我用X-acto刀從側(cè)面刮了一下。如果你不是那種你可以做到這一點(diǎn)的那種,你可能不得不擺弄不同的基礎(chǔ)設(shè)計(jì)。
在膠合板的中心熱膠粘,或者在3D打印設(shè)計(jì)的情況下,在中心“托盤(pán)”中我為此設(shè)計(jì)的區(qū)域。
步驟3:底座
將金屬蓋安裝在重物上,然后將放在木質(zhì)底座上。 (對(duì)于3D打印設(shè)計(jì),請(qǐng)將其裝入預(yù)制凹槽中。)
確保重量不會(huì)干擾任何電子設(shè)備。
使用熱膠來(lái)保護(hù)基礎(chǔ)。使用足夠確保連接牢固。
現(xiàn)在我們完全制作了控制盒,讓我們繼續(xù)操作燈。
第7步:NeoPixel Halo Ring
此燈的名稱的靈感,這部分是我們將用作源的NeoPixel光環(huán)照明。如果需要,可以使用任何NeoPixel或可單獨(dú)尋址的LED環(huán)修改或替換此特定部件。
步驟1:焊接
剪切的NeoPixels 12個(gè)LED 的長(zhǎng)度。
將 GND引腳焊接到 3線的彈性頸部的線。
將 Din引腳焊接到 2線的電線上。
將 5V引腳焊接到有線 1行。
第2步:測(cè)試燈光
下載并安裝 Adafruit_NeoPixel庫(kù),然后打開(kāi)“strandtest”代碼。
更改常量 PIN為9 。
更改定義條帶的行,使其配置為12個(gè)LED 。
將代碼上傳到Nano,確保所有LED正常運(yùn)行。
用工作的LED替換任何有故障的LED ,直到整個(gè)條帶工作。
步驟3:振鈴
采取“堅(jiān)持并點(diǎn)擊”燈光中的“頂環(huán)”,內(nèi)側(cè)邊緣 切斷任何螺絲安裝座。
在邊緣上切出一個(gè)小凹口,用于從條帶上切下電線。
剝?nèi)シ饷妫纯碞eoPixels背面的膠帶(如果有的話)和將它們粘在戒指內(nèi),條帶的任一端正好在我們制造的凹口處。
使用熱膠牢固固定條帶邊緣。
膠水完全冷卻后, 再次測(cè)試像素。這是為了確保沒(méi)有人對(duì)熱量和卷曲(我的一些人)。
步驟4:裝載
切出兩個(gè)1/4英寸木材的小矩形,大約環(huán)的高度和1 2/3倍寬。
將這些相互平行的》粘在環(huán)的導(dǎo)線兩側(cè), 填充間隙并用膠水完全覆蓋電線。
小心地》 超長(zhǎng)的線回到彈性頸部,然后粘合木塊使用充足的膠水和小心地填充任何空隙(不用膠水填充頸部)。》 頸部。
步驟6:完成
如果你愿意,你可以涂上戒指并裝上任何顏色,我更喜歡銀色飾面,所以我只使用Sharpie來(lái)掩蓋那些(令人討厭)打印的徽標(biāo)到了戒指上。燈的其余部分也是如此。
現(xiàn)在我們可以繼續(xù)完成最終的代碼了!
步驟8:代碼和測(cè)試
所以我們現(xiàn)在需要做的就是對(duì)燈進(jìn)行編程并進(jìn)行測(cè)試。附件是當(dāng)前的代碼版本(rev1.0),我已經(jīng)相當(dāng)廣泛地測(cè)試了這個(gè)代碼,它運(yùn)行得很好。我正在開(kāi)發(fā)一個(gè)rev2.0,其中按鈕被配置為外部中斷,以便可以更容易地在兩者之間切換模式,但是這個(gè)版本是錯(cuò)誤的,還沒(méi)有準(zhǔn)備好發(fā)布。使用當(dāng)前版本,您必須按住按鈕,直到它運(yùn)行Debounce循環(huán)并識(shí)別狀態(tài)更改,這可能會(huì)對(duì)較長(zhǎng)的“動(dòng)態(tài)”循環(huán)產(chǎn)生煩擾。下面是代碼中寫(xiě)有一些解釋(可下載版本中有相同的解釋)。
#include
#ifdef __AVR__
#include
#endif
#define PIN 9
#define POT A0
#define BUTTON1 A1
#define BUTTON2 A2
// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic ‘v1’ (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
Adafruit_NeoPixel halo = Adafruit_NeoPixel(12, PIN, NEO_GRB + NEO_KHZ800);
// And now, a safety message from our friends at Adafruit:
// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel‘s data input
// and minimize distance between Arduino and first pixel. Avoid connecting
// on a live circuit.。.if you must, connect GND first.
// Variables
int buttonState1;
int buttonState2; // the current reading from the input pin
int lastButtonState1 = LOW; // the previous reading from the input pin
int lastButtonState2 = LOW;
int mode; //the mode of our lights, can be one of 16 settings (0 through 15)
int brightVal = 0; // the brightness/ speed, as set by the potentiometer
// the following variables are long’s because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long lastDebounceTime = 0; // the last time the output pin was toggled
long debounceDelay = 50; // the debounce time; increase if the output flickers
void debounce (){
// read the state of the switch into a local variable:
int reading1 = digitalRead(BUTTON1);
int reading2 = digitalRead(BUTTON2);
// If either of the buttons changed, due to noise or pressing:
if (reading1 != lastButtonState1 || reading2 != lastButtonState2) {
// reset the debouncing timer
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) 》 debounceDelay) {
// if the button state has definitely changed due to pressing/releasing:
if (reading1 != buttonState1) {
buttonState1 = reading1; //set it as the reading if it‘s changed
if (buttonState1 == LOW) { //these are set as active low switches
mode ++;
if (mode == 16){
mode = 0;
}
}
}
if (reading2 != buttonState2){
buttonState2 = reading2;
if (buttonState2 == LOW){
mode = mode - 1;
if (mode == -1){
mode = 15;
}
}
}
}
// save the reading for the next time through the loop
lastButtonState1 = reading1;
lastButtonState2 = reading2;
}
void getBright(){ //our code to read the potentiometer, utputs a value between 0 and 255. Used to set brightness in some modes and speed in others.
int potVal = analogRead(POT);
brightVal = map(potVal, 0, 1023, 0, 255);
}
//Here are our color modes. Some of these are derived from the strandtest example, others are original.
// Fill the dots one after the other with a color (colorwipe, derived from strandtest)
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i
//rainbow functions (also derived from strandtest)
void rainbow(uint8_t wait) {
uint16_t i, j;
for(j=0; j《256; j++) {
for(i=0; i
// Slightly different, this makes the rainbow equally distributed throughout
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《 halo.numPixels(); i++) {
halo.setPixelColor(i, Wheel(((i * 256 / halo.numPixels()) + j) & 255));
}
halo.show();
delay(wait);
}
}
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if(WheelPos 《 85) {
return halo.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos 《 170) {
WheelPos -= 85;
return halo.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return halo.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
void setup() {
// This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
// End of trinket special code
pinMode(POT, INPUT);
pinMode(BUTTON1, INPUT_PULLUP);
pinMode(BUTTON2, INPUT_PULLUP);
pinMode(PIN, OUTPUT);
Serial.begin(9600); //debugging stuff
halo.begin();
halo.show(); // Initialize all pixels to ’off‘
}
void loop() {
debounce();
//Serial.println(mode); //more debugging
//Serial.println(lastButtonState1);
//Serial.println(lastButtonState2);
if (mode == 0){
getBright();
for (int i = 0; i 《 halo.numPixels(); i++){
halo.setPixelColor(i, halo.Color(brightVal, brightVal, brightVal)); //set all pixels to white
}
halo.show();
};
if (mode == 1){
getBright();
for (int i = 0; i 《 halo.numPixels(); i++){
halo.setPixelColor(i, halo.Color(brightVal, 0, 0)); // set all pixels to red
}
halo.show();
};
if (mode == 2){
getBright();
for (int i = 0; i 《 halo.numPixels(); i++){
halo.setPixelColor(i, halo.Color(0, brightVal, 0)); // set all pixels to green
}
halo.show();
};
if (mode == 3){
getBright();
for (int i = 0; i 《 halo.numPixels(); i++){
halo.setPixelColor(i, halo.Color(0, 0, brightVal)); // set all pixels to blue
}
halo.show();
};
if (mode == 4){
getBright();
for (int i = 0; i 《 halo.numPixels(); i++){
halo.setPixelColor(i, halo.Color(0, brightVal, brightVal)); // set all pixels to cyan
}
halo.show();
};
if (mode == 5){
getBright();
for (int i = 0; i 《 halo.numPixels(); i++){
halo.setPixelColor(i, halo.Color(brightVal, 0, brightVal)); // set all pixels to purple/magenta
}
halo.show();
};
if (mode == 6){
getBright();
for (int i = 0; i 《 halo.numPixels(); i++){
halo.setPixelColor(i, halo.Color(brightVal, brightVal, 0)); // set all pixels to orange/yellow
}
halo.show();
};
if (mode == 7){ //now the dynamic modes
getBright();
colorWipe(halo.Color(brightVal, 0, 0), 50); // Red
};
if (mode == 8){
getBright();
colorWipe(halo.Color(0, brightVal, 0), 50); // Green
};
if (mode == 9){
getBright();
colorWipe(halo.Color(0, 0, brightVal), 50); // Blue
};
if (mode == 10){
getBright();
colorWipe(halo.Color(brightVal, brightVal, brightVal), 50); // white
};
if (mode == 11){
getBright();
colorWipe(halo.Color(brightVal, brightVal, 0), 50); // orange/yellow
};
if (mode == 12){
getBright();
colorWipe(halo.Color(0, brightVal, brightVal), 50); // cyan
};
if (mode == 13){
getBright();
colorWipe(halo.Color(brightVal, 0, brightVal), 50); // purple/magenta
};
if (mode == 14){ // the last two are speed control, because the brightness is dynamic
getBright();
rainbow(brightVal);
};
if (mode == 15){
getBright();
rainbowCycle(brightVal);
};
delay(10); //allow the processor a little rest
}
第9步:大結(jié)局
現(xiàn)在我們有一個(gè)夢(mèng)幻般的超亮小燈!
您可以從此處進(jìn)一步修改,或保持原樣。您可以更改代碼,甚至可以完全編寫(xiě)新代碼。您可以放大底座并添加電池。你可以添加一個(gè)風(fēng)扇。您可以添加更多NeoPixels。你可以用它做的所有事情的清單幾乎是無(wú)限的。我說(shuō)“差不多”,因?yàn)槲液艽_定我們?nèi)匀粵](méi)有技術(shù)將其轉(zhuǎn)換為迷你門戶生成器(不幸的是),但除此之外,唯一的限制是你的想象力(在某種程度上,正如我最近發(fā)現(xiàn)的那樣,你工作坊中的工具)。但是,如果你沒(méi)有這些工具,不要讓它阻止你,如果你真的想要做某事,總有辦法。
這是這個(gè)項(xiàng)目的一部分,向我自己(以及在較小的程度上,世界)證明我可以做出其他人也想要的有用的東西,即使我擁有的只是一個(gè)名副其實(shí)的舊垃圾和廢棄組件以及一堆Arduino供應(yīng)品。
我會(huì)離開(kāi)這里,因?yàn)槲艺J(rèn)為這個(gè)結(jié)果相當(dāng)不錯(cuò)。如果您有改進(jìn)建議或有關(guān)我的方法的問(wèn)題,請(qǐng)?jiān)谙旅媪粞浴H绻阕隽诉@個(gè),拍照,我們都想看到它!
-
燈泡
+關(guān)注
關(guān)注
0文章
109瀏覽量
24103 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
188052
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
松下MPS媒體制作平臺(tái)概述
基于華為云 Flexus 云服務(wù)器 X 實(shí)例快速搭建 Halo 博客平臺(tái)
![基于華為云 Flexus 云服務(wù)器 X 實(shí)例快速搭建 <b class='flag-5'>Halo</b> 博客平臺(tái)](https://file1.elecfans.com//web3/M00/05/37/wKgZPGd99SWAIWmuAAD79d_YRGQ124.png)
基于華為云 Flexus 云服務(wù)器 X 實(shí)例部搭建 Halo 博客平臺(tái)
![基于華為云 Flexus 云服務(wù)器 X 實(shí)例部搭建 <b class='flag-5'>Halo</b> 博客平臺(tái)](https://file1.elecfans.com//web3/M00/03/D4/wKgZO2dsEiuAKz3YAACZ1hQEldg800.png)
AIGC在視頻內(nèi)容制作中的應(yīng)用前景
開(kāi)關(guān)電源設(shè)計(jì)與制作
AMD官方確認(rèn):Strix Halo命名,史上最強(qiáng)APU誕生
用高端開(kāi)關(guān)驅(qū)動(dòng)燈泡負(fù)載
![用高端開(kāi)關(guān)驅(qū)動(dòng)<b class='flag-5'>燈泡</b>負(fù)載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
光刻掩膜版制作流程
判斷燈泡亮度的主要依據(jù)是什么
燈泡亮度由電流還是電壓決定
維修電源板時(shí)串個(gè)燈泡有什么用
御微首臺(tái)掩模基板缺陷檢測(cè)儀 Halo-100順利交付
![](https://file1.elecfans.com/web2/M00/C7/8C/wKgZomYU01GAfYi1AALuJgjMqy4569.png)
![](https://file1.elecfans.com/web2/M00/C8/71/wKgaomYUzrGAOTGhAANyHsntr3E435.png)
評(píng)論