INHOUDSOPGAWE:

HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 stappe (met foto's)
HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 stappe (met foto's)

Video: HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 stappe (met foto's)

Video: HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 stappe (met foto's)
Video: DIY HALO Lamp Rev1.0 - Powered by Arduino Nano, 15+ Color Modes 2024, September
Anonim
Image
Image
HALO: Handige Arduino -lamp Rev1.0 W/NeoPixels
HALO: Handige Arduino -lamp Rev1.0 W/NeoPixels
HALO: Handige Arduino -lamp Rev1.0 W/NeoPixels
HALO: Handige Arduino -lamp Rev1.0 W/NeoPixels

In hierdie instruksies sal ek jou wys hoe om HALO, of Handy Arduino Lamp Rev1.0, te bou.

HALO is 'n eenvoudige lamp, aangedryf deur Arduino Nano. Dit het 'n totale voetspoor van ongeveer 2 "by 3", en 'n geweegde houtbasis vir uiterste stabiliteit. Die buigsame nek en 12 super-helder NeoPixels stel dit in staat om elke detail op enige oppervlak maklik te verlig. HALO beskik oor twee drukknoppies om deur verskillende ligmodusse te blaai, waarvan daar 15 vooraf geprogrammeer is. As gevolg van die gebruik van die Arduino Nano as verwerker, kan u dit herprogrammeer met ekstra funksies. Die enkele potensiometer word gebruik om die helderheid en/of snelheid waarmee 'n modus vertoon word, aan te pas. 'N Eenvoudige metaalkonstruksie maak van HALO 'n baie duursame lamp wat geskik is vir gebruik in enige werkswinkel. Die gebruiksgemak word vererger deur die Nano se ingeboude kragreguleerder, sodat HALO via USB of die standaard 5 mm -aansluiting aan die agterkant aangedryf kan word.

Ek hoop om in die nabye toekoms baie mense te sien wat hierdie lampe gebruik, want daar is soveel moontlikhede wat met hierdie ontwerp oopmaak. Laat 'n stem in die Microcontroller -wedstryd, as u hiervan hou of dit op een of ander manier nuttig vind, ek sal dit opreg waardeer.

Voordat ons in hierdie Instructable ingaan, wil ek 'n kort dankie sê aan al my volgelinge en almal wat al kommentaar gelewer het, 'n gunsteling gemaak het of gestem het oor enige van my projekte. Danksy julle het my instruksies in karton 'n groot sukses geword, en ek is nou 'n groot mylpaal, na ek dit byna 100 volgers getik het. Ek waardeer al die ondersteuning wat ek van julle kry as ek my Ible's opstel, en as dit daarop neerkom, sou ek nie gewees het waar ek vandag is sonder julle nie. Met dit gesê, dankie, almal!

LET WEL: In hierdie instruksies is vetgedrukte frases. Dit is die belangrike dele van elke stap, en moet nie geïgnoreer word nie. As u nie daarvan hou nie en verkies hoe ek voorheen geneig was om my stappe te skryf, laat weet my dan in die kommentaar, en ek gaan terug na my ou styl.

Stap 1: Versamel materiaal

Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal
Versamelingsmateriaal

Hoeveel keer moet ek dit sê? Hou altyd wat u nodig het, en u sal verseker iets kan bou tot die einde.

Let wel: sommige hiervan is aangeslote skakels (gemerk "al"); ek kry 'n klein terugslag as u dit koop, sonder ekstra koste. Dankie as u wel via die skakels koop

Dele:

1x Arduino Nano Nano - al

1x 10k roterende potensiometer 5 pakke 10k potensiometers - al

1x 5 mm vat -jack (myne word herwin uit 'n gebraaide Arduino Uno) Female Barrel Jack (5 -pak) - al

2x 2-pins kortstondige drukknoppies 10-pak SPST-drukknopschakelaar-al

12x NeoPixels van 'n 60 LED/meter string (enige ekwivalent, bv. WS2812B, werk) Adafruit NeoPixels

'N Vlak van 0,5 mm aluminium

Die buigsame nek van 'n ou flex -aansteker

Die boonste omslagring van 'n "Stick and Click" LED -kabinetslig LED -kabinetlig - al

'N Klein vel 1/4 duim laaghout

'N Swaar, plat metaalgewig van ongeveer 1,5 "by 2,5" by.25"

Gestremd kern elektriese draad

Gereedskap:

Warmlijmpistool en gom

Soldeerbout en soldeer

Koordlose boormasjien en verskillende klein draaipunte

X-acto mes (of 'n mes)

Draadstroppers

Tang

Draadsnyers/-snyers

Swaar skêr

As u nie die plat metaalgewig het nie, benodig u ook:

1 rol goedkoop soldeer (nie die materiaal wat u vir soldeer gaan gebruik nie) Goedkoop loodvrye soldeer

Alkoholkers (of 'n Bunsen -brander)

'N Klein, geharde staalbak wat jy nie omgee om te verwoes nie (of 'n klein smeltkroes as jy een het)

'N Statief vir die skottel/smeltkroes (ek het myne gemaak van 'n staaldraad van 12 meter)

'N Klei -plantbak (een van die dingetjies wat onder die pot gaan)

'N Paar aluminiumfoelie

OPMERKING: as u 'n sweisstel of 'n 3D -drukker het, benodig u moontlik nie al die gereedskap wat hier gelys word nie.

Stap 2: Maak die gewig

Maak die gewig
Maak die gewig
Maak die gewig
Maak die gewig
Maak die gewig
Maak die gewig

Dit is 'n redelik moeilike stap, en u moet uiters versigtig wees om dit te doen. As u 'n swaar metaalgewig of 'n plat neodymiummagneet het van ongeveer 2,75 "by 1,75" by 0,25 ", sou ek aanbeveel om dit eerder te gebruik (en deur die magneet kan u die lamp selfs sywaarts op metaaloppervlakke plaas!).

Disclaimer: ek is nie verantwoordelik vir u besering nie, dus gebruik gesonde verstand

Doen dit ook buite op 'n betonoppervlak wat u nie sal steur as dit 'n bietjie geskroei word nie (dit is slegs 'n voorsorgmaatreël). Ek het geen foto's vir hierdie proses nie, want 'n kamera sou 'n ekstra afleiding gewees het wat ek nie nodig gehad het nie.

Maak eers 'n klein vorm uit aluminiumfoelie of nat klei, ongeveer 2 3/4 duim by 1 3/4 duim by 1/4 duim in die afmetings. Dit kan 'n eiervormige vorm wees soos myne, of 'n reghoek. Gebruik verskeie lae foelie of dik lae klei.

Plaas die vorm in die keramiek -skottel en vul die vorm en die skinkbord met koue water.

Neem u kers/bunsenbrander wat nie aangesteek is nie, en plaas die staalskottel/smeltkroes op die driepoot sodat die vlam die middel van die skottel kan verhit (as dit brand). Voordat u die brander aansteek, moet u ten minste 1 tang of metaaltang byderhand hê, indien nie 2.

Dit is 'n goeie idee om leerhandskoene, langmoue, langbroeke, geslote skoene en oogbeskerming te dra terwyl u die volgende stappe doen

Spoel op en breek 'n klomp goedkoop soldeersel uit die spoel en plaas dit in die staalbak, en steek dan die brander aan. Wag totdat die spoel heeltemal gesmelt is, en begin dan die res van die soldeer teen 'n matige tempo in die skottel voer. As daar 'n hars in die soldeer is, kan dit spontaan in die hitte ontbrand en 'n liggeel vlam en swart rook veroorsaak. Moenie bekommerd wees nie, dit het meermale gebeur en is heeltemal normaal.

Gaan voort met die soldeer in die skottel totdat die laaste daarvan gesmelt is.

Laat die vlamme van die brandende hars heeltemal doodgaan, en gebruik die tang/tang om die skottel te gryp en draai die gesmelte metaal saggies binne -in terwyl dit versigtig in die vuur bly.

Nadat u seker is dat al die soldeersel heeltemal vloeibaar is en teen 'n goeie warm temperatuur, verwyder dit vinnig en versigtig uit die vlam en giet dit in die vorm. Daar sal 'n harde sisgeluid en stoom wees as sommige van die water verdamp en die res uit die vorm gedwing word om deur gesmelte soldeersel te vervang.

Laat die soldeersel afkoel, skakel u brander uit/blaas u kers uit en plaas die staalskottel op 'n veilige plek om af te koel. U kan koue water oor die soldeersel gooi om die afkoeling te bespoedig en verder te verhard. (Die koue water laat die buitekant vinniger afkoel as die binnekant, wat interne spanning veroorsaak wat die metaal harder en stywer maak, soortgelyk aan 'n Prince Rupert's Drop.) U kan ook water oor u metaalbak laat loop, maar dit sal bros word, veral as dit verskeie kere gedoen word.

Nadat die soldeer heeltemal afgekoel het (ongeveer 20 minute om dit veilig te maak), verwyder dit uit die foelievorm.

Myne was aan die een kant dikker as aan die ander kant, en ek het 'n hamer gebruik om die rande gelyk te maak en die rande plat te maak (wat lei tot die vorm wat jy op die foto's sien). Ek skuur dit dan liggies onder lopende water om dit te poets, en sit dit eenkant vir later.

Stap 3: Bou die elektroniese behuising, stap 1

Bou van die elektroniese behuising, stap 1
Bou van die elektroniese behuising, stap 1
Bou van die elektroniese behuising, stap 1
Bou van die elektroniese behuising, stap 1
Bou die elektroniese behuising, stap 1
Bou die elektroniese behuising, stap 1
Bou van die elektroniese behuising, stap 1
Bou van die elektroniese behuising, stap 1

Dit is die dele van die dop wat die Nano huisves, die koppelvlak monteer, en dit is basies wat die HALO -lamp bymekaar hou. Ek het myne gemaak met my 0.5mm Aluminium en Hot Glue, maar as jy 'n 3D -drukker het (iets wat ek al 'n rukkie vir my winkel probeer kry het), het ek 'n. STL -weergawe in Tinkercad gemaak wat ek hier aangeheg het. Aflaai. Aangesien ek nie self 'n drukker het nie, kon ek nie die model toets om te sien of alles reg druk nie, maar ek dink dit moet goed wees as u die regte ondersteuningsstrukture by u snyer voeg. U kan ook die bronlêer hier kopieer en wysig as u 'n effens ander ontwerp of estetika nodig het.

Die afmetings is eintlik afgelei van die metaalgewig wat ek vir myself uit soldeer gegiet het, nie uit die grootte van die elektronika nie, maar dit het in elk geval baie goed gegaan en die afmetings is redelik optimaal.

Die foto's beeld 'n effens ander volgorde uit van wat ek hier sal skryf, want ek het 'n verbeterde metode ontwerp wat gebaseer is op die resultate van my oorspronklike metode.

As u van plaatmetaal saamstel soos ek, is dit wat u moet doen:

Stap 1: gesigplate

Sny twee identiese halwe sirkelvormige vorms van ongeveer 1,5 cm lank en 3 cm breed. (Ek het myne vrygemaak, sodat hulle 'n bietjie soos die voorkant van 'n boks lyk).

Boor die drie gate vir die knoppies en die potensiometer in een van die twee plate. Myne was elk 1/4 duim in deursnee. Dit kan in elke uitleg wees, maar ek verkies dat my potensiometer effens in die middel gelig word, met die knoppies aan weerskante wat 'n gelykbenige driehoek vorm. As ek boor, maak ek altyd 'n klein proefgat voordat ek na die vereiste boor gaan, dit help om die gate te sentreer en dit 'n bietjie skoner te maak.

Stap 2: Geboë omslag

Buig 'n stuk aluminium om by die kromme van een van die voorkantplate te pas en merk die korrekte randlengte.

Sny 'n strook van so 'n lengte van ongeveer 2 cm breed en vorm 'n boog wat ooreenstem met die vorm van die kromme van die voorkantplate aan weerskante.

Soek die middelpunt bo -aan die kromme en boor 'n gaatjie om by die buiging van die aansteker te pas. Ek verreken die gat na die agterkant in myne, want my lamp sal meestal die nek vorentoe laat kantel terwyl ek dit gebruik, so ek wou 'n bietjie teenwicht daaraan gee. My buigsame nek was net 'n bietjie meer as 'n 1/4 duim in deursnee, so ek het 'n 1/4 duim bietjie gebruik (die grootste draai wat ek besit wat minder as 3/4 duim is) en net die hoek versigtig gedraai en gedraai boor om die gat te 'boor' totdat die nek pas.

Noudat ons die dele vir die dop het, is die volgende stap om elektronika by te voeg en dit bymekaar te sit!

Stap 4: Bou die elektroniese behuising, stap 2

Bou van die elektroniese behuising, stap 2
Bou van die elektroniese behuising, stap 2
Bou van die elektroniese behuising, stap 2
Bou van die elektroniese behuising, stap 2
Bou die elektroniese behuising, stap 2
Bou die elektroniese behuising, stap 2
Bou die elektroniese behuising, stap 2
Bou die elektroniese behuising, stap 2

Nou voeg ons die knoppies en die potensiometer by en sit dit alles bymekaar.

Stap 1: Knoppies en boute

Draai die seskantmoere van u knoppies en potensiometer los. Daar moet 'n grypring onder die moer wees, laat dit op sy plek bly.

Steek elk van die komponente deur die onderskeie gaatjies en skroef die moere weer vas om dit vas te maak. Draai die moere vas tot waar u seker is dat elke komponent heeltemal vas is.

Stap 2. Buig nek

Steek die buignek deur die gaatjie bo -op die geboë stuk. Warm gom of sweis (as u die toerusting het) die nek stewig vas.

As ek warm gom gebruik soos ek, is dit 'n goeie idee om dit met baie gom aan beide kante oor 'n groot oppervlak te plak om te voorkom dat die gom later loskom.

Stap 3: Omhulsel (nie van toepassing op 3D -gedrukte dop nie)

Bevestig die voor- en agterkant met die lasstaaf of warm gom op hul onderskeie plekke op die boogomslag. Dit het my 'n paar keer geneem om my gom vas te plak, en soos voorheen is die truuk om baie gom aan beide kante van die gewrig te gebruik, net soos die nek. Hoe groter die oppervlakte wat die gom bedek, hoe beter sal dit plak.

Noudat ons die dop het, kan ons voortgaan om al die stroombane te voeg.

Stap 5: Voeg elektronika by

Voeg elektronika by
Voeg elektronika by
Voeg elektronika by
Voeg elektronika by
Voeg elektronika by
Voeg elektronika by

En hier is die lekker deel: soldeer! Die afgelope weke het ek 'n bietjie moeg geword vir soldeer, omdat ek die afgelope tyd so baie gedoen het om 'n ander projek te voltooi wat ek binnekort sou moes doen (hou 'n oog op 'n radikaliseerde nuwe weergawe van my robotvertoning) platforms), wat veroorsaak dat ek een yster verwoes en 'n ander kry … Hoe dan ook, hier is nie veel om te soldeer nie, so dit behoort redelik eenvoudig te wees.

Nota: as u Nano reeds speldkopers bevat, sou ek aanbeveel dat u hulle vir hierdie projek ontsoldeer, dit belemmer slegs.

Daar is 'n diagram op die foto's hierbo; u kan dit volg as u wil.

Stap 1: koppelvlak

Soldeer 'n draad van elk van die skakelaars van 'n enkele pen tot 'n sypen van die potensiometer. Soldeer 'n draad van dieselfde kantpen na 'n grondpen op die Nano.

Soldeer 'n draad van die middelste pen van die potensiometer na A0 op die Nano.

Soldeer 'n draad van die nie -gekoppelde pen van beide skakelaars na A1 op die Nano.

Soldeer 'n draad van die nie -gekoppelde pen op die ander skakelaar na A2 op die Nano.

Opmerking: dit maak nie saak watter skakelaar dit is nie; u kan dit baie maklik verander in die kode, behalwe dat die een skakelaar net die teenoorgestelde van die ander skakel.

Knip 'n draadlengte 4 sentimeter langer as die buiging van die nek, en trek albei kante af. Gebruik 'n Sharpie om die een kant met 'n enkele lyn te merk.

Soldeer 'n draad aan die laaste nie -gekoppelde sypen van die potensiometer, draai die nie -gekoppelde kant van hierdie draad saam met die ongemerkte einde van die draad vanaf die laaste substap.

Soldeer hierdie gesamentlike einde van 5V op die Nano.

Stap 2: Vertoon- en kragdrade

Knip 2 draadlengtes 4 sentimeter langer as die buignek en trek albei kante af.

Merk 'n Sharpie met die punte van elke draad, een draad met 2 lyne en een met 3.

Soldeer die draad met 2 lyne aan die digitale pen 9 op die Nano.

Soldeer 'n draad van die middelste pen (positief) na Vin on the Nano op u 5 mm -vataansluiting.

Soldeer nog 'n draad aan 'n sypen (grond/negatief) van die vataansluiting.

Draai die lang draad saam met 3 in lyn met die draad van die sypen van die vatkrag.

Soldeer hierdie drade aan die oop GND -pen op die Nano.

Isoleer verbindings met elektriese band of warm gom waar nodig.

Stap 3: Gaatjies sny (slegs op die metaalweergawe, as u die omslag in 3D gedruk het, moet u goed wees)

Gebruik 'n boorpunt en 'n X-acto of 'n mes, en maak 'n gat in die kant van die deksel vir die USB-poort van die Nano.

Maak nog 'n gaatjie omtrent die grootte van die voorkant van die vataansluiting aan die agterkant van die omslag, verkieslik nader aan die kant oorkant die gat vir die USB -poort.

Stap 4: Montagekomponente

Voer die drie lang drade deur die buigingsnek en aan die ander kant.

Met baie warm gom, monteer die vatkrag op sy plek met die penne na die bokant van die omslag.

Monteer die Nano weer met baie warm gom, met die reset -knoppie na onder en die USB -poort in die gleuf. Ek het 'n "warm gombrug" gemaak tussen die vataansluiting en die Nano, wat die ander een stewig op hul plek laat hou.

Nou kan ons voortgaan om die geweegde basis te maak!

Stap 6: Geweegde basis

Geweegde basis
Geweegde basis
Geweegde basis
Geweegde basis
Geweegde basis
Geweegde basis

Ek is vol vertroue in my soldeervaardighede en het dit goed beplan, daarom het ek die basis bygevoeg voordat ek die kode toets. As u minder selfvertroue het in u vaardighede, stel ek voor dat u hierdie stap oorslaan en aan die einde daarvan terugkeer as u weet dat alles werk.

As u die 3D -gedrukte weergawe gemaak het, kan u die eerste stap oorslaan en na die tweede stap gaan.

Stap 1: Hout

Sny 'n basis van ongeveer 3 duim by 2 duim uit 'n laag 1/4 duim laaghout.

Skuur die rande om dit glad te maak en verwyder bore.

Stap 2: Gewig

Maak eers seker dat u 'n gewig het, of 'n magneet, metaal of 'n pasgemaakte soldeer binne die rande van die metaalomhulsel wat ons gemaak het, pas. Myne was 'n bietjie groot in een rigting, so ek het 'n bietjie van die kant af geskeer met 'n X-acto-mes. As die uwe nie die soort is waar u dit kan doen nie, moet u moontlik met 'n ander basisontwerp gesels.

Plak u gewig warm in die middel van die laaghout, of in die geval van die 3D -gedrukte ontwerp, in die middelste "skinkbord" wat ek vir hierdie doel ontwerp het.

Stap 3: Basis

Sit die metaalbedekking oor die gewig en sentreer dit op die houtbasis. (In die geval van die 3D-gedrukte ontwerp, pas dit in die voorafgemaakte groewe.)

Maak seker dat die gewig nie die elektronika belemmer nie

Gebruik warm gom om die basis vas te maak. Gebruik genoeg om 'n stewige verbinding te verseker.

Noudat ons ons kontrolekas heeltemal gemaak het, gaan ons na die ligte.

Stap 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

Die inspirasie vir die naam van hierdie lamp, hierdie deel, is die NeoPixel -halo -ring wat ons as ons bron van verligting sal gebruik. Hierdie spesifieke stuk kan verander word of vervang word met enige NeoPixel of individueel aanspreekbare LED -ring, indien verkies.

Stap 1: soldeer

Sny 'n strook NeoPixels met 12 LED's in lengte.

Soldeer die GND -pen aan die draad van die buignek met 3 lyne.

Soldeer die Din -pen aan die draad met 2 lyne.

Soldeer die 5V -pen aan die draad met 1 lyn.

Stap 2: Toets die ligte

Laai die Adafruit_NeoPixel -biblioteek af en installeer dit, en maak die 'strengtoets' -kode oop.

Verander die konstante PIN na 9.

Verander die lyn waar die strook gedefinieer word, sodat dit gekonfigureer is vir 12 LED's.

Laai die kode op na die Nano, en sorg dat al u LED's behoorlik funksioneer.

Vervang foutiewe LED's met werkende LED's totdat die hele strook werk.

Stap 3: Bel

Neem die boonste ring van 'n "Stick and Click" -lig en sny die skroefhouers aan die binnekant af.

Sny 'n klein gaatjie op die rand vir die drade van die strook af.

Trek die omhulsel van die kleeflint aan die agterkant van die NeoPixels af (indien enige) en plak dit binne -in die ring, met die een kant van die strook regs by die kerf wat ons gemaak het.

Gebruik warm gom om die rande van die strook stewig vas te maak

Nadat die gom heeltemal afgekoel het, toets die pixels weer. Dit is om seker te maak dat niemand baie skaam is oor die hitte en krul nie ('n paar van my was).

Stap 4: Monteer

Sny twee klein reghoeke van 1/4 duim hout, ongeveer die hoogte van die ring en 1 2/3 keer so breed.

Plak dit parallel aan mekaar aan weerskante van die drade van die ring, vul die gaping en bedek die drade heeltemal met gom.

Druk die oortollige lengte van die draad versigtig terug in die buigingsnek en plak dan die houtstukke aan die einde van die nek vas, gebruik baie gom en vul die gapings versigtig (sonder om die nek met gom te vul).

Stap 6: Voltooi

U kan die ring verf en enige kleur monteer as u wil; ek verkies die silwer afwerking, so ek gebruik slegs 'n Sharpie om die logo wat (irriterend) op die ring gedruk is, te bedek. Dieselfde geld vir die res van die lamp.

Nou kan ons verder gaan met die finale kode!

Stap 8: Kodes en toetse

Kodes en toetse
Kodes en toetse
Kodes en toetse
Kodes en toetse

Al wat ons hoef te doen is om die lamp te programmeer en te toets. Die huidige kodeweergawe (rev1.0) is hierby aangeheg; ek het hierdie kode redelik uitgebrei getoets en dit werk baie goed. Ek werk aan 'n rev2.0 waar die knoppies as eksterne onderbrekings gekonfigureer word, sodat die modusse makliker kan wissel, maar hierdie weergawe is buggy en nog nie gereed vir vrystelling nie. Met die huidige weergawe moet u die knoppie ingedruk hou totdat dit die Debounce -lus loop en die toestandverandering herken, wat irriterend kan wees op die langer "dinamiese" lusse. Hieronder is die kode met enkele verduidelikings (daar is dieselfde verduidelikings in die aflaaibare weergawe).

#include #ifdef _AVR_ #include #endif

#definieer PIN 9

#definieer POT A0 #definieer BUTTON1 A1 #definieer BUTTON2 A2

// Parameter 1 = aantal pixels in strook

// Parameter 2 = Arduino -speldnommer (die meeste is geldig) // Parameter 3 = pixeltipe vlae, voeg by indien nodig: // NEO_KHZ800 800 KHz bitstroom (die meeste NeoPixel -produkte met WS2812 LED's) // NEO_KHZ400 400 KHz (klassieke ' v1 '(nie v2) FLORA -pixels, WS2811 -bestuurders) // NEO_GRB Pixels is bedraad vir GRB -bitstroom (die meeste NeoPixel -produkte) // NEO_RGB Pixels is bedraad vir RGB -bitstroom (v1 FLORA -pixels, nie v2) // NEO_RGBW Pixels is bedraad vir RGBW bitstream (NeoPixel RGBW produkte) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// En nou 'n veiligheidsboodskap van ons vriende by Adafruit:

// BELANGRIK: Voeg 'n 1000 uF -kondensator by om die risiko van uitbranding van NeoPixel te verminder

// pixelkragleidings, voeg 300 - 500 Ohm weerstand by op die data -invoer van die eerste pixel // en verminder die afstand tussen Arduino en die eerste pixel. Vermy die aansluiting // op 'n stroombaan … as u moet, koppel eers GND.

// Veranderlikes

int buttonState1; int buttonState2; // die huidige lesing vanaf die invoerpen int lastButtonState1 = LOW; // die vorige lesing van die invoerpen int lastButtonState2 = LOW; int modus; // die modus van ons ligte, kan een van 16 instellings (0 tot 15) int brightVal = 0 wees; // die helderheid/ spoed, soos bepaal deur die potensiometer

// die volgende veranderlikes is lank omdat die tyd, gemeet in milisekondes, // word vinnig 'n groter getal as wat in 'n int gestoor kan word. lang lastDebounceTime = 0; // die laaste keer dat die uitvoerpen gesit is lang debounceDelay = 50; // die ontstoringstyd; verhoog as die uitset flikker

leegte debounce () {

// lees die toestand van die skakelaar na 'n plaaslike veranderlike: int reading1 = digitalRead (BUTTON1); int reading2 = digitalRead (BUTTON2); // As een van die knoppies verander word as gevolg van geraas of druk: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// reset die ontbindingstimer lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// as die knoppie se toestand beslis verander het as gevolg van druk/los: if (reading1! = buttonState1) {buttonState1 = reading1; // stel dit as die lesing as dit verander word as (buttonState1 == LOW) {// dit is ingestel as aktiewe lae skakelaars modus ++; as (modus == 16) {modus = 0; }}} if (reading2! = buttonState2) {buttonState2 = reading2; as (buttonState2 == LOW) {mode = mode - 1; as (modus == -1) {modus = 15; }}}}} // stoor die lesing vir die volgende keer deur die lus lastButtonState1 = reading1; lastButtonState2 = lees2; }

void getBright () {// ons kode om die potensiometer te lees, gee 'n waarde uit tussen 0 en 255. Word gebruik om die helderheid in sommige modi en die snelheid in ander te stel.

int potVal = analogRead (POT); brightVal = kaart (potVal, 0, 1023, 0, 255); }

// Hier is ons kleurmodusse. Sommige hiervan is afgelei van die strengste voorbeeld, ander is oorspronklik.

// Vul die kolletjies een na die ander met 'n kleur (kleurveeg, afgelei van strengtoets)

void colorWipe (uint32_t c, uint8_t wag) {vir (uint16_t i = 0; i

// reënboogfunksies (ook afgelei van strandtoets)

leë reënboog (wag nie) {

uint16_t i, j;

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

// Iets anders, dit maak die reënboog eweredig versprei

leegte rainbowCycle (uint8_t wag) {uint16_t i, j;

vir (j = 0; j <256*5; j ++) {// 5 siklusse van alle kleure op wiel vir (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); vertraag (wag); }}

// Voer 'n waarde 0 tot 255 in om 'n kleurwaarde te kry.

// Die kleure is 'n oorgang r - g - b - terug na r. uint32_t Wheel (byte WheelPos) {WheelPos = 255 - WheelPos; as (WheelPos <85) {retourhalo. Color (255 - WheelPos * 3, 0, WheelPos * 3); } as (WheelPos <170) {WheelPos -= 85; retourhalo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; retourhalo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

ongeldige opstelling () {

// Dit is vir Trinket 5V 16MHz; u kan hierdie drie reëls verwyder as u nie 'n snuistery gebruik nie #as gedefinieer (_AVR_ATtiny85_) as (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Einde van die snuistery spesiale kode pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, UITGANG); Serial.begin (9600); // ontfout dinge halo.begin (); halo.show (); // Initialiseer alle pixels na 'af'}

leemte -lus () {

debounce ();

//Serial.println (modus); // meer ontfouting //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

as (modus == 0) {

getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // stel alle pixels op wit} halo.show (); }; as (modus == 1) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // stel alle pixels op rooi} halo.show (); }; as (mode == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // stel alle pixels op groen} halo.show (); }; as (modus == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // stel alle pixels op blou} halo.show (); }; as (modus == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // stel alle pixels op siaan} halo.show (); }; as (modus == 5) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // stel alle pixels op pers/magenta} halo.show (); }; as (mode == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // stel alle pixels op oranje/geel} halo.show (); }; as (modus == 7) {// nou die dinamiese modusse getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // Rooi}; as (modus == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // Groen}; as (mode == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Blou }; as (mode == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // wit}; as (mode == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // oranje/geel}; as (mode == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // siaan}; as (modus == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // pers/magenta}; as (modus == 14) {// die laaste twee spoedbeheer is, want die helderheid is dinamies getBright (); reënboog (brightVal); }; as (mode == 15) {getBright (); rainbowCycle (brightVal); }; vertraging (10); // laat die verwerker 'n bietjie rus}

Stap 9: Die Grand Finale

Die Grand Finale
Die Grand Finale

En nou het ons 'n fantastiese, super helder klein lampie!

U kan dit hier verder aanpas of dit laat soos dit is. U kan die kode verander, of selfs 'n nuwe een heeltemal skryf. U kan die basis vergroot en batterye byvoeg. U kan 'n waaier byvoeg. U kan meer NeoPixels byvoeg. Die lys van alles wat u hiermee kan doen, is byna oneindig. Ek sê 'amper' omdat ek redelik seker is dat ons nog steeds nie die tegnologie het om dit in 'n mini -portaalgenerator te omskep nie (ongelukkig), maar afgesien van sulke dinge, is die enigste beperking jou verbeelding (en tot 'n mate, soos ek onlangs gevind het, die gereedskap in u werkswinkel). Maar as u nie die gereedskap het nie, moet dit nie stop nie; as u regtig iets wil doen, is daar altyd 'n manier.

Dit is deel van die punt van hierdie projek, om vir myself (en in 'n mindere mate die wêreld) te bewys dat ek nuttige dinge kan maak wat ander mense ook graag sou wou hê, selfs al het ek net 'n ware rommelhoop van ou en geslooptes komponente en 'n asblik Arduino -voorrade.

Ek sal hier weggaan, want ek dink hierdie een het redelik goed afgeloop. As u 'n voorstel vir verbetering of 'n vraag oor my metodes het, kan u hieronder 'n opmerking lewer. As u dit gemaak het, neem 'n foto, ons wil dit almal sien!

Moenie vergeet om te stem as u hiervan hou nie!

Soos altyd is dit die projekte van Dangerously Explosive, sy lewenslange missie, "Om met vrymoedigheid te bou wat u wil bou, en meer!"

U kan die res van my projekte hier vind.

Dankie vir die lees, en Happy Making!

Aanbeveel: