Cuprins:

HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixeli: 9 pași (cu imagini)
HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixeli: 9 pași (cu imagini)

Video: HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixeli: 9 pași (cu imagini)

Video: HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixeli: 9 pași (cu imagini)
Video: как сделать, беспроводной светодиод, беспроводное зарядное устройство, эксперимент 2024, Iunie
Anonim
Image
Image
HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixels
HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixels
HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixels
HALO: Lampă Arduino la îndemână Rev1.0 W / NeoPixels

În acest instructiv, vă voi arăta cum să construiți HALO sau Handy Arduino Lamp Rev1.0.

HALO este o lampă simplă, alimentată de Arduino Nano. Are o amprentă totală de aproximativ 2 "pe 3" și o bază din lemn ponderată pentru stabilitate extremă. Gâtul flexibil și 12 NeoPixeli super-luminoși îi permit să lumineze cu ușurință fiecare detaliu de pe orice suprafață. HALO are două butoane pentru a parcurge diferite moduri de lumină, dintre care există 15 preprogramate. Datorită utilizării Arduino Nano ca procesor, există posibilitatea de a-l reprograma cu funcții suplimentare. Potențiometrul unic este utilizat pentru a regla luminozitatea și / sau viteza la care este afișat un mod. O construcție metalică simplă face din HALO o lampă foarte durabilă, potrivită pentru utilizare în orice atelier. Ușurința de utilizare este agravată de regulatorul de putere de la Nano, astfel încât HALO poate fi alimentat fie prin USB, fie prin mufa standard cu cilindru de 5 mm din spate.

Sper să văd mulți oameni care folosesc aceste lămpi în viitorul apropiat, deoarece există atât de multe posibilități care se deschid cu acest design. Vă rugăm să lăsați un vot în Concursul de microcontroler dacă vă place acest lucru sau îl considerați util într-un fel, aș aprecia cu adevărat.

Înainte de a intra în acest Instructable, aș dori să spun un scurt Mulțumesc tuturor adepților mei și oricui a comentat vreodată, a favorizat sau a votat vreunul dintre proiectele mele. Mulțumită băieților, instructabilul meu din Cardboard a devenit un succes uriaș, iar acum sunt, după părerea mea, o atingere de aproape 100 de adepți, o mare etapă în opinia mea. Apreciez cu adevărat tot sprijinul pe care îl primesc de la voi, când îmi pun Ible-ul, iar când se va rezolva, nu aș fi unde sunt astăzi fără voi. Cu toate acestea, mulțumesc tuturor!

NOTĂ: De-a lungul acestui Instructable sunt expresii cu caractere aldine. Acestea sunt părțile importante ale fiecărui pas și nu trebuie ignorate. Nu sunt eu care strig sau intenționat să fiu nepoliticos, pur și simplu încerc o nouă tehnică de scriere pentru a sublinia mai bine ceea ce trebuie făcut. Dacă nu vă place și preferați cum am avut tendința de a-mi scrie pașii, anunțați-mă în comentarii și voi reveni la stilul meu vechi.

Pasul 1: Adunarea materialelor

Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor
Adunarea materialelor

De câte ori trebuie să o spun? Aveți întotdeauna ceea ce aveți nevoie și aveți garantat că veți putea construi ceva până la final.

Notă: Unele dintre acestea sunt linkuri afiliate (marcate cu „al”), voi primi un mic recul dacă cumpărați prin ele, fără costuri suplimentare pentru dvs. Vă mulțumim dacă cumpărați prin linkuri

Părți:

1x Arduino Nano Nano - al

1x 10k Potențiometru rotativ 5 pachete 10k Potențiometre - al

1 x mufa cu butoi de 5 mm (a mea este reciclată dintr-un Arduino Uno prăjit) Femelă cu butoi (pachet de 5) - al

2x butoane momentane cu 2 pini pachet de 10 comutatoare cu buton SPST - al

12x NeoPixels dintr-un fir de 60 LED / metru (orice echivalent, de ex. WS2812B, va funcționa) Adafruit NeoPixels

O foaie de aluminiu de 0,5 mm

Gâtul flexibil dintr-o brichetă veche flex

Inelul de acoperire superior dintr-o lumină pentru dulap "Stick and Click" cu LED Lumini pentru dulap - al

O foaie mică de placaj de 1/4 inch

O greutate metalică grea, plană, cu dimensiuni (aproximativ) 1,5 "pe 2,5" pe 0,25"

Sârmă electrică cu miez torsadat

Instrumente:

Hot Glue Gun and Glue

Fier de lipit și lipit

Burghiu electric fără fir și bucăți mici de răsucire asortate

Cuțit X-acto (sau cuțit utilitar)

Decapanti de sârmă

Cleşte

Tăietoare / tăieturi de sârmă

Foarfece grele

Dacă nu aveți greutatea metalică plană, aveți nevoie și de:

1 rolă de lipit ieftin (nu lucrurile pe care le veți folosi pentru lipit) lipit ieftin fără plumb

Lumânare cu alcool (sau un arzător Bunsen)

Un vas mic de oțel călit pe care nu vă deranjează să îl stricați (sau un mic creuzet dacă aveți unul)

Un trepied pentru vasul / creuzetul menționat (eu l-am făcut din sârmă de oțel de 12

O farfurie cu plante din lut (una dintre acele chestii care intră sub oală)

Unele folii de aluminiu

NOTĂ: Dacă aveți un kit de sudură sau o imprimantă 3D, este posibil să nu aveți nevoie de toate instrumentele enumerate aici.

Pasul 2: Creșterea greutății

A face greutatea
A face greutatea
A face greutatea
A face greutatea
A face greutatea
A face greutatea

Acesta este un pas destul de dificil și trebuie să aveți o precauție extremă în acest sens. Dacă aveți o greutate mare a metalului sau un magnet plat de neodim de aproximativ 2,75 "pe 1,75" cu 0,25 ", aș recomanda utilizarea acestuia în schimb (iar magnetul vă va permite chiar să poziționați lampa lateral pe suprafețele metalice!).

Declinare de responsabilitate: Nu sunt responsabil pentru nici un prejudiciu din partea dvs., așa că vă rugăm să folosiți bunul simț

De asemenea, faceți acest lucru în exterior pe o suprafață de beton pe care nu o să vă deranjeze dacă se arde puțin (aceasta este doar o măsură de precauție). Nu am nicio imagine pentru acest proces, deoarece o cameră ar fi fost o distragere suplimentară de care nu aveam nevoie sau pe care nu mi-o doream.

Mai întâi, faceți o matriță mică din folie de aluminiu sau lut umed, de aproximativ 2 3/4 inci pe 1 3/4 inci cu 1/4 inci în dimensiunile interioare. Poate fi o formă ovoidă ca a mea sau un dreptunghi. Folosiți mai multe straturi de folie sau straturi groase de lut.

Așezați matrița în vasul de plante ceramice și umpleți atât matrița, cât și tava cu apă rece.

Luați lumânarea cu alcool neluminat / arzătorul cu bunsen și așezați vasul / creuzetul de oțel pe trepied, astfel încât flacăra să încălzească centrul vasului (când este aprins). Înainte de a aprinde arzătorul, asigurați-vă că aveți la îndemână cel puțin 1 clește sau clește pentru prelucrarea metalelor, dacă nu 2.

Este o idee bună să purtați mănuși din piele, mâneci lungi, pantaloni lungi, pantofi cu vârful închis și protecție pentru ochi în timp ce faceți următorii pași

Înfășurați și rupeți o grămadă de lipit ieftin din bobină și plasați-l în vasul de oțel, apoi aprindeți arzătorul. Așteptați până când bobina se topește complet, apoi începeți să alimentați restul de lipit în vas într-un ritm moderat. Dacă lipirea are colofoniu, aceasta poate arde spontan în căldură, producând o flacără galben pal și fum negru. Nu vă faceți griji, mi s-a întâmplat de mai multe ori și este perfect normal.

Continuați să introduceți lipitul în vas până când ultimul din acesta este topit.

Lăsați orice flacără din colofoniu să ardă complet și folosiți cleștele / cleștele pentru a apuca vasul și a învârti ușor metalul topit în interior, păstrându-l cu grijă în flacără.

După ce sunteți sigur că toată lipirea este complet lichefiată și la o temperatură fierbinte bună, scoateți-o rapid și cu grijă din flacără și turnați-o în matriță. Se va auzi un șuierat puternic și abur pe măsură ce o parte din apă este vaporizată, iar restul este forțat să iasă din matriță pentru a fi înlocuit cu lipit topit.

Lăsând lipirea să se răcească, opriți arzătorul / suflați lumânarea și plasați vasul de oțel undeva în condiții de siguranță pentru a se răci. Poate doriți să turnați apă rece peste lipirea de răcire pentru a accelera răcirea și a o întări în continuare. (Apa rece face exteriorul să se răcească mai repede decât interiorul, creând tensiune internă care face metalul mai dur și mai rigid, similar cu o picătură a Prince Rupert.) De asemenea, puteți curge apă peste vasul dvs. de metal, dar acest lucru va avea ca rezultat să devină fragil., mai ales dacă se face de mai multe ori.

După ce lipirea s-a răcit complet (aproximativ 20 de minute pentru a fi în siguranță), scoateți-o din matrița de folie.

Al meu a ajuns mai gros pe o parte decât pe cealaltă, așa că am folosit un ciocan pentru a-l uniformiza și a aplatiza marginile (rezultând forma pe care o vedeți în imagini). Apoi l-am șlefuit ușor sub apă curentă pentru a-l lustrui și l-am lăsat deoparte pentru mai târziu.

Pasul 3: Construirea carcasei electronice, Pasul 1

Construirea carcasei electronice, Pasul 1
Construirea carcasei electronice, Pasul 1
Construirea carcasei electronice, Pasul 1
Construirea carcasei electronice, Pasul 1
Construirea carcasei electronice, Pasul 1
Construirea carcasei electronice, Pasul 1
Construirea carcasei electronice, Pasul 1
Construirea carcasei electronice, Pasul 1

Acestea sunt părțile pentru carcasă care vor găzdui Nano, vor monta interfața și sunt practic ceea ce ține lampa HALO. Am făcut-o pe a mea cu aluminiu și adeziv fierbinte de 0,5 mm, dar dacă aveți o imprimantă 3D (ceva ce încercam să obțin pentru magazinul meu de ceva vreme) am făcut o versiune. STL în Tinkercad pe care am atașat-o aici pentru ca dvs. Descarca. Din moment ce eu nu am o imprimantă, nu am reușit să testez imprimarea modelului pentru a vedea dacă totul se imprimă corect, dar cred că ar trebui să fie bine dacă adăugați structurile de suport adecvate în feliatorul dvs. De asemenea, puteți copia și edita fișierul sursă aici dacă aveți nevoie sau doriți un design sau o estetică ușor diferită.

Dimensiunile au fost de fapt derivate din greutatea metalică pe care am turnat-o pentru mine din lipit, nu din dimensiunea electronice, dar oricum a ieșit destul de bine, iar dimensiunile sunt destul de optime.

Imaginile prezintă o ordine de funcționare ușor diferită de cea pe care o voi scrie aici, asta pentru că am conceput o metodă îmbunătățită pe baza rezultatelor metodei mele originale.

Dacă asamblați din tablă ca mine, iată ce trebuie să faceți:

Pasul 1: Plăci de față

Tăiați două forme identice de jumătate de cerc, de aproximativ 1,5 "înălțime și 3" lățime. (I-am dat mâna liberă, așa că seamănă un pic cu partea din față a unei cutii cu juke).

În una dintre cele două plăci, găuriți cele trei găuri pentru butoane și potențiometru. Al meu avea fiecare diametru de 1/4 inch. Acestea pot fi în orice aspect, dar prefer ca potențiometrul meu să fie ușor ridicat în centru, cu butoanele de ambele părți formând un triunghi isoscel. Când găuresc, fac întotdeauna o mică gaură pilot înainte de a merge la dimensiunea necesară, ajută la centrarea găurilor și le face puțin mai curate.

Pasul 2: Coperta arcuită

Îndoiți-vă peste o bucată de aluminiu pentru a se potrivi în jurul curbei uneia dintre plăcile frontale și marcați lungimea corectă a marginii.

Decupați o fâșie de această lungime și de aproximativ 2 inci lățime și formați-o într-un arc care se potrivește cu forma curbei plăcilor frontale de ambele părți.

Găsiți punctul central în partea de sus a curbei și faceți o gaură pentru a se potrivi gâtului flexibil al brichetei. Am compensat holeters către partea din spate în a mea, deoarece lampa mea va avea cea mai mare parte gâtul înclinat înainte în timpul utilizării, așa că am vrut să adaug un pic de contrabalans. Gâtul meu flexibil avea doar un pic peste 1/4 de inch în diametru, așa că am folosit un bit de 1/4 inch (cel mai mare bit de răsucire pe care îl dețin este sub 3/4 de inch) și tocmai cu unghi și răsucire găuriți pentru a "fora" orificiul până se potrivește gâtul.

Acum, că avem piesele pentru coajă, următorul pas este să adăugăm electronice și să le punem împreună!

Pasul 4: Construirea carcasei electronice, Pasul 2

Construirea carcasei electronice, Pasul 2
Construirea carcasei electronice, Pasul 2
Construirea carcasei electronice, Pasul 2
Construirea carcasei electronice, Pasul 2
Construirea carcasei electronice, Pasul 2
Construirea carcasei electronice, Pasul 2
Construirea carcasei electronice, Pasul 2
Construirea carcasei electronice, Pasul 2

Acum adăugăm butoanele și potențiometrul și le punem împreună.

Pasul 1: Butoane și șuruburi

Deșurubați piulițele hexagonale de la butoane și potențiometru. Ar trebui să existe un dispozitiv inelar de prindere sub piuliță, lăsați-l la locul său.

Introduceți fiecare dintre componente prin orificiul respectiv, apoi înșurubați piulițele înapoi pentru a le fixa pe fiecare în loc. Strângeți piulițele până la punctul în care sunteți sigur că fiecare componentă este complet sigură.

Pasul 2. Flex gât

Introduceți gâtul flexibil prin orificiul din partea superioară a piesei curbate. Adeziv fierbinte sau sudură (dacă aveți echipamentul) gâtul fixat în siguranță.

Dacă utilizați lipici fierbinte ca și mine, este o idee bună să-l lipiți cu o mulțime de lipici pe ambele părți, răspândite pe o suprafață mare, pentru a preveni lipiciul să se desprindă mai târziu.

Pasul 3: Ansamblu Shell (Nu se aplică shell-ului tipărit 3D)

Folosind fie tijă de sudură, fie lipici fierbinte, fixați plăcile frontale față și spate în locurile respective de pe capacul arcuit. Mi-au trebuit câteva încercări ca lipiciul meu să se lipească și, ca înainte, trucul este să folosesc o mulțime de lipici pe ambele părți ale articulației, la fel ca gâtul. Cu cât suprafața acoperită de lipici este mai mare, cu atât se va lipi mai bine.

Acum că avem shell-ul, putem continua să adăugăm toți biții de circuit.

Pasul 5: Adăugarea dispozitivelor electronice

Adăugarea de electronice
Adăugarea de electronice
Adăugarea de electronice
Adăugarea de electronice
Adăugarea de electronice
Adăugarea de electronice

Și iată partea distractivă: lipirea! În ultimele săptămâni, sincer m-am săturat să lipesc, pentru că am făcut-o atât de mult în ultima vreme pentru a încerca să finalizez un alt proiect pe care ar trebui să îl pun în curând (ferește-te pentru o nouă versiune radicalizată a ecranului meu robotizat platforme), ceea ce duce la distrugerea unui fier și la obținerea altui … Oricum, nu sunt multe de lipit aici, deci acest lucru ar trebui să fie destul de simplu.

Notă: În cazul în care Nano-ul dvs. are deja anteturi cu pin, aș recomanda dezoldarea acestora pentru acest proiect, acestea vor intra doar în cale.

Există o diagramă în imaginile de mai sus, puteți urmări dacă doriți.

Pasul 1: Interfață

Din fiecare dintre comutatoare, lipiți un fir de la un singur pin la un pin lateral al potențiometrului. Lipiți un fir de la același știft lateral la un știft de masă de pe Nano.

Lipiți un fir de la pinul central al potențiometrului la A0 pe Nano.

Lipiți un fir de la pinul neconectat al oricărui comutator la A1 pe Nano.

Lipiți un fir de la pinul neconectat de pe celălalt comutator la A2 pe Nano.

Notă: Nu contează ce comutator este care, le puteți schimba foarte ușor în cod, pe lângă faptul că un comutator face opusul celuilalt.

Tăiați o lungime de sârmă cu 4 inci mai lungă decât gâtul flexibil și dezbrăcați ambele părți. Folosind un Sharpie, marcați o parte cu o singură linie.

Lipiți un fir la ultimul știft lateral neconectat al potențiometrului, răsuciți capătul neconectat al acestui fir împreună cu capătul nemarcat al firului din ultimul pas secundar.

Lipit acest capăt unit la 5V pe Nano.

Pasul 2: Afișare și fire de alimentare

Tăiați 2 lungimi de sârmă cu 4 inci mai lungi decât gâtul flexibil și dezbrăcați ambele capete.

Folosind un Sharpie, marcați capetele fiecărui fir, unul cu 2 linii și unul cu 3.

Lipiți firul cu 2 linii la pinul digital 9 de pe Nano.

Pe mufa cu țeavă de 5 mm, lipiți un fir de la știftul central (pozitiv) la Vin pe Nano.

Lipiți un alt fir la un știft lateral (împământat / negativ) al cricului butoiului.

Răsuciți firul lung cu 3 linii împreună cu firul de la știftul lateral al cricului butoiului.

Lipiți aceste fire la știftul GND deschis de pe Nano.

Izolați conexiunile cu bandă electrică sau lipici fierbinte acolo unde este necesar.

Pasul 3: tăierea găurilor (numai pe versiunea metalică, dacă ați imprimat 3D capacul, ar trebui să fiți bine)

Folosind un burghiu și un X-acto sau cuțit utilitar, faceți cu grijă o gaură în partea laterală a capacului pentru portul USB al Nano.

Faceți o altă gaură de dimensiunea feței cricului butoiului din spatele capacului, de preferință mai aproape de partea opusă găurii pentru portul USB.

Pasul 4: Montarea componentelor

Introduceți cele trei fire lungi prin gâtul flexibil și în afară de cealaltă parte.

Folosind o mulțime de adeziv fierbinte, montați cricul butoiului în loc cu știfturile orientate spre partea superioară a capacului.

Folosind din nou o mulțime de adeziv fierbinte, montați Nano în poziție, cu butonul de resetare orientat în jos și portul USB în slot. Am făcut un „pod cu lipici fierbinți” între cricul butoiului și Nano, ceea ce face ca fiecare să-l țină pe celălalt ferm în poziție.

Acum putem trece mai departe pentru a crea baza ponderată!

Pasul 6: Baza ponderată

Baza ponderată
Baza ponderată
Baza ponderată
Baza ponderată
Baza ponderată
Baza ponderată

Sunt încrezător în abilitățile mele de lipire și am avut acest lucru bine planificat, așa că am continuat și am adăugat baza înainte de a testa codul. Dacă sunteți mai puțin încrezători în abilitățile dvs., aș sugera să săriți peste acest pas și să reveniți la el la sfârșit, când știți că totul funcționează.

Dacă ați realizat versiunea tipărită 3D, puteți sări peste primul pas și să treceți la al doilea.

Pasul 1: Lemn

Dintr-o foaie de placaj de 1/4 inch, tăiați o bază de aproximativ 3 inci cu 2 inci.

Șlefuiți marginile pentru a le netezi și îndepărtați fraza.

Pasul 2: Greutate

Mai întâi, asigurați-vă greutatea pe care o alegeți, fie că un magnet, un metal sau unul de lipit personalizat se potrivește în marginile capacului metalic pe care l-am făcut. Al meu era cam mare într-o singură direcție, așa că m-am ras puțin din lateral cu un cuțit X-acto. Dacă al tău nu este genul în care poți face acest lucru, poate fi necesar să te joci cu un alt design de bază.

Lipiți-vă greutatea în centrul bucății de placaj sau, în cazul designului tipărit 3D, în zona „tavă” centrală pe care am proiectat-o în acest scop.

Pasul 3: bază

Așezați capacul metalic peste greutate și centrați-l pe baza din lemn. (În cazul designului tipărit 3D, încadrați-l în canelurile prefabricate.)

Asigurați-vă că greutatea nu interferează cu nicio componentă electronică

Folosiți lipici fierbinte pentru a fixa baza în poziție. Folosiți suficient pentru a asigura o conexiune fermă.

Acum, că avem caseta de control în întregime făcută, să trecem la lumini.

Pasul 7: NeoPixel Halo Ring

NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring
NeoPixel Halo Ring

Inspirația pentru numele acestei lămpi, această parte este inelul de halo NeoPixel pe care îl vom folosi ca sursă de iluminare. Această piesă specială poate fi modificată sau înlocuită cu orice inel NeoPixel sau LED adresabil individual, dacă se dorește.

Pasul 1: lipire

Tăiați o bandă de NeoPixels cu 12 LED-uri în lungime.

Lipiți știftul GND pe firul de la gâtul flexibil care are 3 linii.

Lipiți știftul Din pe firul care are 2 linii.

Lipiți pinul de 5V pe firul care are 1 linie.

Pasul 2: Testați luminile

Descărcați și instalați biblioteca Adafruit_NeoPixel și deschideți codul „strandtest”.

Schimbați codul PIN constant la 9.

Schimbați linia în care banda este definită astfel încât să fie configurată pentru 12 LED-uri.

Încărcați codul pe Nano și asigurați-vă că toate LED-urile funcționează corect.

Înlocuiți LED-urile defecte cu cele funcționale, până când întreaga bandă funcționează.

Pasul 3: Sună

Luați inelul superior dintr-o lumină „Stick and Click” și tăiați orice suporturi cu șurub de pe janta interioară.

Tăiați o crestătură mică pe margine pentru firele de pe bandă.

Desprindeți capacul benzii lipicioase de pe spatele NeoPixels (dacă există) și lipiți-le în interiorul inelului, cu fiecare capăt al benzii chiar la crestătura pe care am făcut-o.

Folosiți adeziv fierbinte pentru a fixa ferm marginile benzii

După ce lipiciul s-a răcit complet, testați din nou pixelii. Acest lucru este pentru a vă asigura că niciunul nu este înfricoșător în ceea ce privește căldura și curlingul (câteva dintre mine au fost).

Pasul 4: Montați

Decupați două dreptunghiuri mici de lemn de 1/4 inch, aproximativ înălțimea inelului și de 1 2/3 ori mai lată.

Lipiți-le paralel una de alta de ambele părți ale firelor din inel, umplând golul și acoperind firele între ele cu lipici.

Împingeți cu grijă orice lungime în exces de sârmă înapoi în gâtul flexibil, apoi lipiți bucățile de lemn pe capătul gâtului, folosind o mulțime de clei și umplând cu grijă orice goluri (fără a umple gâtul cu clei).

Pasul 6: Finalizare

Puteți picta inelul și monta orice culoare, dacă doriți, am preferat finisajul argintiu, așa că am folosit doar un Sharpie pentru a acoperi sigla care a fost (enervant) tipărită pe inel. Același lucru este valabil și pentru restul lămpii.

Acum putem merge mai departe pentru a termina cu codul final!

Pasul 8: Coduri și teste

Coduri și teste
Coduri și teste
Coduri și teste
Coduri și teste

Deci, acum tot ce trebuie să facem este să programăm lampa și să o testăm. Atașată este versiunea curentă a codului (rev1.0), am testat acest cod destul de extensiv și funcționează foarte bine. Lucrez la un rev2.0 în care butoanele sunt configurate ca întreruperi externe, astfel încât modurile să poată fi mai ușor comutate, dar această versiune este buggy și încă nu este pregătită pentru lansare. Cu versiunea curentă trebuie să țineți apăsat butonul până când rulează bucla Debounce și recunoaște schimbarea de stare, care poate fi enervantă pe buclele „dinamice” mai lungi. Mai jos este codul cu câteva explicații scrise în (există aceleași explicații în versiunea descărcabilă).

#include #ifdef _AVR_ #include #endif

#define PIN 9

#define POT A0 #define BUTTON1 A1 #define BUTTON2 A2

// Parametrul 1 = numărul de pixeli în bandă

// Parametrul 2 = numărul pinului Arduino (majoritatea sunt valide) // Parametrul 3 = steaguri de tip pixel, adăugați la nevoie: // NEO_KHZ800 800 KHz bitstream (majoritatea produselor NeoPixel cu LED-uri WS2812) // NEO_KHZ400 400 KHz (clasic ') v1 '(nu v2) pixeli FLORA, drivere WS2811) // NEO_GRB Pixelii sunt conectați la fluxul de biți GRB (majoritatea produselor NeoPixel) // NEO_RGB Pixelii sunt conectați la fluxul de biți RGB (v1 pixeli FLORA, nu v2) // NEO_RGBW Pixelii sunt conectați la RGBW bitstream (produse NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// Și acum, un mesaj de siguranță de la prietenii noștri de la Adafruit:

// IMPORTANT: Pentru a reduce riscul de burnout NeoPixel, adăugați un condensator de 1000 uF

// cabluri de alimentare a pixelilor, adăugați rezistență de 300 - 500 Ohm la intrarea de date a primului pixel // și minimizați distanța dintre Arduino și primul pixel. Evitați conectarea // la un circuit live … dacă trebuie, conectați mai întâi GND.

// Variabile

int buttonState1; int buttonState2; // citirea curentă de la pinul de intrare int lastButtonState1 = LOW; // citirea anterioară din pinul de intrare int lastButtonState2 = LOW; modul int; // modul luminilor noastre, poate fi una dintre cele 16 setări (de la 0 la 15) int brightVal = 0; // luminozitatea / viteza, așa cum este setată de potențiometru

// următoarele variabile sunt lungi, deoarece timpul, măsurat în milisecunde, // va deveni rapid un număr mai mare decât poate fi stocat într-un int. long lastDebounceTime = 0; // ultima dată când pinul de ieșire a fost comutat debounceDelay lung = 50; // timpul de debounce; crește dacă ieșirea pâlpâie

void debounce () {

// citiți starea comutatorului într-o variabilă locală: int reading1 = digitalRead (BUTTON1); int reading2 = digitalRead (BUTTON2); // Dacă oricare dintre butoane s-a schimbat, din cauza zgomotului sau a apăsării: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// resetează temporizatorul de debouncing lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// dacă starea butonului s-a schimbat definitiv datorită apăsării / eliberării: if (reading1! = buttonState1) {buttonState1 = reading1; // setați-o ca citire dacă este modificată dacă (buttonState1 == LOW) {// acestea sunt setate ca moduri de comutare low active ++; if (mode == 16) {mode = 0; }}} if (reading2! = buttonState2) {buttonState2 = reading2; if (buttonState2 == LOW) {mode = mode - 1; if (mode == -1) {mode = 15; }}}} // salvați lectura pentru data viitoare prin bucla lastButtonState1 = reading1; lastButtonState2 = reading2; }

void getBright () {// codul nostru pentru citirea potențiometrului, afișează o valoare cuprinsă între 0 și 255. Folosit pentru a seta luminozitatea în unele moduri și viteza în altele.

int potVal = analogRead (POT); luminosVal = hartă (potVal, 0, 1023, 0, 255); }

// Iată modurile noastre de culoare. Unele dintre acestea sunt derivate din exemplul strandtest, altele sunt originale.

// Umpleți punctele unul după altul cu o culoare (colorwipe, derivat din strandtest)

void colorWipe (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i

// funcții curcubeu (derivate și din strandtest)

gol curcubeu (uint8_t așteptați) {

uint16_t i, j;

for (j = 0; j <256; j ++) {for (i = 0; i

// Ușor diferit, acest lucru face ca curcubeul să fie distribuit în mod egal peste tot

void rainbowCycle (uint8_t wait) {uint16_t i, j;

for (j = 0; j <256 * 5; j ++) {// 5 cicluri ale tuturor culorilor pe roată pentru (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); întârziere (așteptați); }}

// Introduceți o valoare de la 0 la 255 pentru a obține o valoare a culorii.

// Culorile sunt o tranziție r - g - b - înapoi la 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); }

configurare nulă () {

// Aceasta este pentru Trinket 5V 16MHz, puteți elimina aceste trei linii dacă nu utilizați un Trinket #if definit (_AVR_ATtiny85_) dacă (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Sfârșitul codului special bibelou pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, OUTPUT); Serial.begin (9600); // lucruri de depanare halo.begin (); halo.show (); // Inițializați toți pixelii la „dezactivat”}

bucla nulă () {

debounce ();

//Serial.println(mode); // mai multe depanări //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)); // setați toți pixelii la alb} halo.show (); }; if (mode == 1) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // setați toți pixelii la roșu} halo.show (); }; if (mode == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // setați toți pixelii la verde} halo.show (); }; if (mode == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // setați toți pixelii la albastru} halo.show (); }; if (mode == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // setați toți pixelii la cian} halo.show (); }; if (mode == 5) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // setați toți pixelii la violet / magenta} halo.show (); }; if (mode == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // setați toți pixelii la portocaliu / galben} halo.show (); }; if (mode == 7) {// acum modurile dinamice getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // Roșu }; if (mode == 8) {getBright (); colorWipe (halo. Color (0, BrightVal, 0), 50); // Verde}; if (mode == 9) {getBright (); colorWipe (halo. Color (0, 0, BrightVal), 50); // Albastru }; if (mode == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // alb }; if (mode == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // portocaliu / galben}; if (mode == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // cian}; if (mode == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // mov / magenta}; if (mode == 14) {// ultimele două sunt controlul vitezei, deoarece luminozitatea este dinamică getBright (); curcubeu (luminosVal); }; if (mode == 15) {getBright (); rainbowCycle (brightVal); }; întârziere (10); // permite procesorului să se odihnească puțin}

Pasul 9: Marea finală

Marea finală
Marea finală

Și acum avem o lampă mică fantastică, super-strălucitoare!

Puteți să îl modificați mai departe de aici sau să îl lăsați așa cum este. Puteți schimba codul sau chiar scrie unul complet. Puteți mări baza și adăuga baterii. Ai putea adăuga un ventilator. Puteți adăuga mai mulți NeoPixeli. Lista a tot ce ai putea face cu aceasta este aproape infinită. Spun „aproape” pentru că sunt destul de sigur că încă nu avem tehnologia pentru a converti acest lucru într-un mini portal generator (din păcate), dar în afară de lucruri de genul acesta, singura limită este imaginația ta (și într-o oarecare măsură, așa cum am găsit recent, instrumentele din atelierul dvs.). Dar dacă nu aveți instrumentele, nu lăsați asta să vă oprească, dacă doriți cu adevărat să faceți ceva, există întotdeauna o cale.

Asta face parte din scopul acestui proiect, de a-mi demonstra mie (și într-o măsură mai mică, lumii) că pot face lucruri utile pe care și alte persoane le-ar dori, chiar dacă tot ce am este o adevărată grămadă de vechi și vechi componente și un coș de consumabile Arduino.

Voi pleca de aici, pentru că cred că a ieșit destul de bine. Dacă aveți o sugestie de îmbunătățire sau o întrebare despre metodele mele, vă rugăm să lăsați un comentariu mai jos. Dacă ați făcut acest lucru, faceți o fotografie, cu toții vrem să o vedem!

Vă rugăm să nu uitați să votați dacă vă place acest lucru!

Ca întotdeauna, acestea sunt proiectele lui Dangerously Explosive, misiunea sa de-a lungul vieții, „Să construiești cu curaj ceea ce vrei să construiești și multe altele!”

Restul proiectelor mele le puteți găsi aici.

Vă mulțumim pentru lectură și Happy Making!

Recomandat: