第1步:你需要什么。
到讓你的bug閃爍,你需要這些組件:
Arduino。我從Nano開始,但任何與Arduino兼容的微控制器都可以。
黃色LED,5毫米。您最多可以使用其中的6個。
電阻器。每個LED需要一個電阻來限制電流。我用了470歐姆,但是150歐姆以上的任何東西應(yīng)該可以保護你的微控制器。
面包板。
跳線。
要完成后院項目,您需要:
防風(fēng)雨項目箱。
帶連接器的9伏電池。 (請參閱本節(jié)底部的注釋。)
切換。 (我選擇了這些防水開關(guān)。如果你不在外面使用它,任何開關(guān)都可以。)
幾碼線將LED放在花園周圍。我每個LED使用大約10英尺的Cat5以太網(wǎng)線。
小型面包板或一些穿孔板。
LED導(dǎo)線穿過的防風(fēng)雨電纜接頭。 (如果你不在外面也使用它,你可以省略它。)
熱縮管以保護你的LED蟲屁股。
綠色鉤環(huán)(即魔術(shù)貼)條帶將LED螢火蟲固定在花園中的植物和柱子上。
將組件插入小型面包板的公頭。
工具:
鉆頭項目框。 (利用這個機會給自己一個很好的步驟。你會很高興你做到了)。
熱膠槍。
烙鐵。
旋轉(zhuǎn)工具(即Dremel),用于在需要時在工程箱中劃出空間。
這里有一些注意事項:
1。電池選擇是為了快速簡便的啟動。永久使用9伏電池有點浪費。你最好使用4x AA電池座以延長使用壽命(但是你需要一個更大的項目盒來安裝它)。
2。如果您選擇為導(dǎo)線解構(gòu)Cat 5以太網(wǎng)電纜,請確保它們是銅芯并將它們整齊地包裹在某些PVC周圍,以便在您工作時保持整齊。我再次使用每個LED大約10英尺的電線。如果你想要遠遠地擴散燈光,一定要使用更長的電線!
3。最后,我提供的所有鏈接僅僅是建議。在構(gòu)建或購買任何東西之前,請仔細閱讀整個Instructable,因為您將更好地了解您希望如何親自前進。
第2步:構(gòu)建電路。
此項目使用脈沖Arduino上的寬度調(diào)制引腳。微控制器有6個這樣的引腳,歡迎您隨意使用。電路非常簡單。將脈沖寬度調(diào)制(PWM)引腳D3,D5,D6,D9,D10和D11的所有電源連接到LED的正極端。將負端連接到電阻器然后連接到公共地。 (電阻可以放在LED的前面或后面。除非你想要防止更高電流的短路,否則沒有區(qū)別。)我提供了一些原理圖來幫助接線。 (使用Fritzing設(shè)計軟件創(chuàng)建的圖表。)
第3步:代碼。
如果您是一位經(jīng)驗豐富的程序員,那么‘我會發(fā)現(xiàn)這段代碼過于簡單。這是一個很好的代碼開始學(xué)習(xí),因為它向您介紹變量,pinmodes,函數(shù)甚至隨機生成器的使用。代碼并不像它那樣緊湊,因為我確信使用數(shù)組等可以實現(xiàn)相同的效果。
代碼注釋列出了每個部分的邏輯。整個代碼都嵌入在這里,您可以下載下面的草圖。
/*
This script flashes 6 LEDs (yellow, of course) in random order
at random intervals using PWM.
Each LED is controlled by it’s own function.
*/
int led1 = 3; // LED connected to PWM pin 3, etc. I used all 6 PWM pins.
int led2 = 5;
int led3 = 6;
int led4 = 9;
int led5 = 10;
int led6 = 11;
long randnum; // randnum controls the time interval between flashes and
long randbug; //randbug controls which bug lights up.
void setup() {
pinMode(led1,OUTPUT); //Setting all PWM pins as outputs.
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
}
void loop(){
randbug = random(3,12); //randbug randomly chooses a function to execute,
//thus randomly chooses a bug to light up.
if (randbug == 3) {
bug1();
}
if (randbug == 5) {
bug2();
}
if (randbug == 6) {
bug3();
}
if (randbug == 9) {
bug4();
}
if (randbug == 10) {
bug5();
}
if (randbug == 11) {
bug6();
}
}
/*
* Each of these functions work the same way. ‘for loops’ increase then decrease
* the output of that pin to control LED brightness.
* ‘randnum’ is a random time interval between 10 and 3000 ms
* and chooses a time interval between bug flashes.
* ‘delay 10’ is just for the fade effect.
*/
void bug1(){
randnum = random(10, 3000);
for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {
analogWrite(led1, fadeValue);
delay(10);
}
for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {
analogWrite(led1, fadeValue);
delay(10);
}
delay (randnum);
}
void bug2() {
randnum = random(10, 3000);
for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {
analogWrite(led2, fadeValue);
delay(10);
}
for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {
analogWrite(led2, fadeValue);
delay(10);
}
delay (randnum);
}
void bug3() {
randnum = random(10, 3000);
for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {
analogWrite(led3, fadeValue);
delay(10);
}
for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {
analogWrite(led3, fadeValue);
delay(10);
}
delay (randnum);
}
void bug4(){
randnum = random(10, 3000);
for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {
analogWrite(led4, fadeValue);
delay(10);
}
for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {
analogWrite(led4, fadeValue);
delay(10);
}
delay (randnum);
}
void bug5() {
randnum = random(10, 3000);
for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {
analogWrite(led5, fadeValue);
delay(10);
}
for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {
analogWrite(led5, fadeValue);
delay(10);
}
delay (randnum);
}
void bug6() {
randnum = random(10, 3000);
for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {
analogWrite(led6, fadeValue);
delay(10);
}
for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {
analogWrite(led6, fadeValue);
delay(10);
}
delay (randnum);
}
第4步:構(gòu)建框。
一旦你用代碼刷新你的Arduino并得到你的螢火蟲以你喜歡的方式工作,你可能想把它們放在花園里;這意味著一個項目盒和一些熱縮,以保持Arduino和LED干燥。讓我們來吧!
第5步:構(gòu)建Bug Butts!
將LED引線修剪約5mm。
剝?nèi)ゲ⑹褂媚阏谑褂玫碾娋€的末端,也約5毫米。
在每個電線末端滑動1mm熱縮管。
將LED焊接到電線上。 (此時,你應(yīng)該選擇你的對中的哪一根線是正面的,哪一根是負的。我選擇實線為正線,白線為負線。在整個項目中保持該策略以避免后來的頭痛!)
將熱量一直向上滑過裸線和LED引線。在它們上面快速燃燒,將它們收縮到電線上。
在LED上滑動另一塊熱縮管,并將LED透鏡伸出末端并將其熔化到位。
將幾片熱縮管滑到整個長度上,然后每隔幾英尺將其熔化,以保持線材整潔。
步驟6:準(zhǔn)備項目框。
使用帶有砂磨鉆頭的旋轉(zhuǎn)工具清除任何不需要的東西塑料在您的項目框中。 (小心不要切掉任何可能需要將盒子重新放在一起的螺絲安裝座。)
確定您需要開關(guān)的位置以及LED線是否出來。我建議雙方使用符合您需求的東西。
使用合適尺寸的鉆頭為電纜接頭和開關(guān)打孔。
注意:在上面的照片中,你會看到我做了一個“假人”電纜。”這是一組6對我用于LED的電線,它們通過熱縮將它們捆在一起。我用它來確保電纜接頭與實際的電纜束很好地配合,并且一旦開關(guān),電纜接頭和蓋子打開,也要測試盒子的防水性能。 (在6英寸水中淹沒24小時后,里面的水分很少。我很樂意將這個盒子稱為“耐候性”。)
第7步:帶來電源!
通過粗略放置所有電池和開關(guān)線來確定您需要多少電池和開關(guān)線才能到達Arduino項目框中的三個組件。修剪開關(guān)和9V電池連接器的電線。剝開并涂上兩端。將一些熱收縮滑動到下一步。
從條帶上切掉兩個插頭(但要將它們粘在一起)。
將9V電池連接器的紅色引線焊接到開關(guān)的一端。將開關(guān)的另一端焊接到公頭插針。將黑色電池引線焊接到另一個插頭引腳。
如上圖所示,插頭引腳將進入面包板,為VIN(正極)和GND(負極)的Nano供電。 VIN引腳可以處理7到12伏電壓。如果您計劃以9V電池以外的方式為Arduino供電,請使用其他電源引腳。
步驟8:如果需要修改Nano。
因為我的項目框很淺,我需要移除ICSP插頭引腳才能適應(yīng)。這些引腳是Arduino的輔助接口。刪除它們不會損壞您的Nano,因為您始終可以通過USB端口加載腳本。
注意:如果您的Nano需要焊接接頭引腳,請在組裝Arduino時省略這些引腳。
步驟9:連接內(nèi)部。
將電纜壓蓋端口連接到為其鉆孔的項目盒中。如果您對如何使用電纜接頭感到困惑,我在YouTube上發(fā)現(xiàn)的這個視頻顯示正在組裝的視頻。 (快進到0:57。)你可能有橡皮墊圈。這是在項目箱和電纜密封套的外部螺母之間進行的。
收集LED線的松散端。花這個時間將它們修剪成相等的長度,剝?nèi)ゲ⑼可蟽啥恕⒍瞬看┻^電纜密封套的蓋子并使用一塊熱縮端將端部捆在一起,留下足夠的長度以到達盒子內(nèi)側(cè)的面包板。
將電線束通過電纜壓蓋端口送入工程箱并扭轉(zhuǎn)壓蓋,將電線鎖定到位,最好圍繞用于將它們捆在一起的熱縮器周圍。
將地線與正極線分開(記住您之前選擇的那些)。將所有接地線焊接在一起。從該束中連接一根短導(dǎo)線,并用1個插頭完成。使用熱縮保護您的裸露焊點。
每根正極線兩端的焊接公頭。再次,使用熱縮。
將正端公頭插入面包板,連接到Arduino上的PWM引腳。
將公共地插入面包板,使其通過限流電阻,然后通過Arduino上的GND。
放入電池并將開關(guān)穿過先前鉆過的盒子中的孔。將橡膠墊圈安裝在項目盒和螺帽之間。將電源線插入面包板。
將蓋子卡在盒子上。你已經(jīng)完成了!
注意:注意在原理圖和開發(fā)階段我每個LED使用一個限流電阻。通常情況下,每個LED應(yīng)該通常使用自己的電阻,一次點亮多個LED。該代碼不允許一次點亮多個LED,因此只使用一個電阻就可以保護Arduino。這也節(jié)省了小面包板上的空間,或者使用串聯(lián)電阻器對每個LED進行時間焊接。那說。..。..警告!!!如果您計劃更改代碼以便一次點亮多個LED,則每個LED需要單獨的電阻。
步驟10:使用它。
使用Velcro皮帶或少量熱膠將LED固定在植物,柵欄,粉紅色的火烈鳥或院子里的任何其他東西上。將它們?nèi)M酒架,窗簾后面,甚至將天花板上的電線懸掛在黑暗中進行3D浮動效果!這些對于派對,婚禮,電影和攝影來說都是一個很好的選擇。
步驟11:更進一步。..。..
如前所述,這是該項目的早期版本,但它充滿了潛力!通過連接移位寄存器來運行更多的LED(請參閱JColvin91的說明,了解具體方法。)添加一個光傳感器,太陽能充電器和定時器,用于“設(shè)置并忘記它”功能!與代碼混淆,為bug添加自己的耀斑。分享您的成就和享受!!
-
Arduino
+關(guān)注
關(guān)注
188文章
6478瀏覽量
188290
發(fā)布評論請先 登錄
相關(guān)推薦
華為 Flexus 云服務(wù)器搭建螢火商城 2.0

李斌:蔚來與寧德時代換電合作潛力大
蔚來發(fā)布第三品牌“firefly 螢火蟲”
蔚來螢火蟲品牌計劃明年出海
自己設(shè)計的Arduino UNO R3主控板原理圖+PCB源文件(可直接打樣)
開源項目!基于 Arduino 的 MIDI 架子鼓
基于Arduino的串口通信項目
蔚來第三品牌定名“firefly螢火蟲”,2025年上半年交付首款車型
李斌否認螢火蟲采用增程式混動技術(shù)的傳言
西北工業(yè)大學(xué)成功研發(fā)仿螢火蟲通信無人機
如何用Arduino制作一個簡易自動喂魚器
幾何E螢火蟲電動SUV正式上市,起售價5.98萬元
幾何E螢火蟲301KM龍騰版純電SUV,起售價5.98萬元
如何制作自己的Arduino電容計

評論