Obsah:

HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels: 9 krokov (s obrázkami)
HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels: 9 krokov (s obrázkami)

Video: HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels: 9 krokov (s obrázkami)

Video: HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels: 9 krokov (s obrázkami)
Video: Kouzelně krásná Aladinova lampa - Restaurování ASMR 2024, November
Anonim
Image
Image
HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels
HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels
HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels
HALO: Praktická lampa Arduino Rev1.0 W/NeoPixels

V tomto návode vám ukážem, ako vytvoriť HALO alebo Handy Arduino Lamp Rev1.0.

HALO je jednoduchá lampa poháňaná Arduino Nano. Má celkovú stopu približne 2 x 3 palce a váženú drevenú základňu pre extrémnu stabilitu. Flexibilný krk a 12 super-jasných NeoPixelov umožňuje jednoducho osvetliť každý detail na akomkoľvek povrchu. HALO je vybavený dvoma tlačidlami na prepínanie medzi rôznymi svetelnými režimami, z ktorých je 15 predprogramovaných. Vzhľadom na to, že procesor Arduino Nano je použitý, máte možnosť ho preprogramovať na ďalšie funkcie. Jediný potenciometer sa používa na úpravu jasu a/alebo rýchlosti, v ktorých sa režim zobrazuje. Jednoduchá kovová konštrukcia robí z HALO veľmi odolnú lampu, vhodnú na použitie v akejkoľvek dielni. Jednoduché použitie je umocnené integrovaným regulátorom napájania Nano, takže HALO je možné napájať buď z USB alebo zo štandardného 5 mm konektora na zadnej strane.

Dúfam, že v blízkej budúcnosti uvidím veľa ľudí, ktorí používajú tieto žiarovky, pretože s týmto dizajnom sa otvára toľko možností. Ak sa vám to páči alebo vám to nejakým spôsobom príde užitočné, zanechajte prosím hlas v súťaži o mikrokontrolér, veľmi by som to ocenil.

Predtým, ako sa dostaneme k tomuto Instructable, by som chcel v krátkosti poďakovať všetkým svojim sledujúcim a každému, kto kedy komentoval, zaradil medzi obľúbené alebo hlasoval za niektorý z mojich projektov. Vďaka vám, môj Cardboard instructable, mal obrovský úspech a ja som teraz, keď píšem toto, dosahujúci takmer 100 sledovateľov, podľa mňa veľkým medzníkom. Naozaj si vážim všetku podporu, ktorú od vás dostávam, keď skladám svoje Ible, a pokiaľ ide o to, bez vás by som dnes nebol tam, kde som. S týmto povedal, ďakujem vám všetkým!

POZNÁMKA: V tomto návode sú uvedené frázy tučným písmom. Toto sú dôležité časti každého kroku a nemali by ste ich ignorovať. Nie je to tak, že by som kričal alebo úmyselne bol hrubý, jednoducho skúšam novú techniku písania, aby som lepšie zdôraznil, čo je potrebné urobiť. Ak sa vám to nepáči a dávate prednosť tomu, ako som predtým inklinoval k písaniu svojich krokov, dajte mi vedieť v komentároch a ja sa vrátim k svojmu starému štýlu.

Krok 1: Zhromažďovanie materiálov

Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov
Zhromažďovanie materiálov

Koľkokrát to mám povedať? Vždy majte to, čo potrebujete, a zaručene dokážete niečo vybudovať až do konca.

Poznámka: Niektoré z nich sú prepojenia s pridruženými spoločnosťami (označené „al“). Pri ich nákupe získam malý spätný ráz bez akýchkoľvek ďalších nákladov. Ďakujeme, že nakupujete prostredníctvom odkazov

Diely:

1x Arduino Nano Nano - al

1x 10k rotačný potenciometer 5 balení 10k potenciometrov - al

1x 5 mm sudový zdvihák (môj je recyklovaný zo smaženého Arduina Uno) Samičí sudový zdvihák (5 ks) - al

2x 2-kolíkové okamžité tlačidlá, 10 ks SPST tlačidlový spínač-al

12x NeoPixels z vlákna 60 LED/meter (bude fungovať akýkoľvek ekvivalent, napr. WS2812B) Adafruit NeoPixels

Plech 0,5 mm hliníka

Flexibilný krk zo starého flexibilného zapaľovača

Horný krycí krúžok z LED osvetlenia skrinky LED „Stick and Click“LED Cabinet Light - al

Malý list preglejky 1/4 palca

Ťažká, plochá kovová hmotnosť s rozmermi (zhruba) 1,5 palca x 2,5 palca x 0,25 palca

Elektrický drôt s lankom

Náradie:

Horúca lepiaca pištoľ a lepidlo

Spájkovačka a spájkovačka

Aku vŕtačka a rôzne malé skrutkovacie bity

Nôž X-acto (alebo praktický nôž)

Odizolovače drôtov

Kliešte

Rezačky/strihače drôtu

Heavy Duty nožnice

Ak nemáte ploché kovové závažie, potrebujete tiež:

1 rolka lacnej spájky (nie veci, ktoré budete používať na spájkovanie) Lacná bezolovnatá spájka

Alkoholová sviečka (alebo Bunsenov horák)

Malý tanier z kalenej ocele, ktorý vám nevadí zničiť (alebo malý téglik, ak ho máte)

Statív na uvedenú misku/téglik (ten svoj som vyrobil z oceľového drôtu s priemerom 12 mm)

Hlinená miska (jedna z tých vecí, ktoré idú pod kvetináč)

Nejaká hliníková fólia

POZNÁMKA: Ak máte zváračskú súpravu alebo 3D tlačiareň, možno nebudete potrebovať všetky tu uvedené nástroje.

Krok 2: Vytvorenie hmotnosti

Výroba váhy
Výroba váhy
Výroba váhy
Výroba váhy
Výroba váhy
Výroba váhy

Je to dosť náročný krok a musíte pri tom postupovať veľmi opatrne. Ak máte ťažkú kovovú hmotnosť alebo plochý neodymový magnet asi 2,75 palca x 1,75 palca x 0,25 palca, odporučil by som to použiť namiesto toho (a magnet by vám dokonca umožnil umiestniť lampu bokom na kovové povrchy!).

Zrieknutie sa zodpovednosti: Nezodpovedám za žiadne zranenie z vašej strany, preto prosím používajte zdravý rozum

Tiež to urobte vonku na betónovom povrchu, ktorý vám nebude vadiť, ak sa trochu popáli (ide len o predbežné opatrenie). Nemám žiadne obrázky pre tento proces, pretože fotoaparát by bol ďalším rozptýlením, ktoré som nepotreboval ani nechcel.

Najprv vyrobte malú formu z hliníkovej fólie alebo mokrej hliny, s vnútornými rozmermi asi 2 3/4 palca x 1 3/4 palca x 1/4 palca. Môže to byť vajcovitý tvar ako ja alebo obdĺžnik. Použite viac vrstiev fólie alebo hrubých vrstiev hliny.

Formu umiestnite do keramickej misky a do formy a plechu nalejte studenú vodu.

Vezmite nezapálenú alkoholovú sviečku/bunsenový horák a položte oceľovú misku/téglik na statív, aby plameň zahrial stred nádoby (keď svieti). Pred zapálením horáka sa ubezpečte, že máte po ruke najmenej 1 pár klieští alebo klieští na obrábanie kovov, ak nie 2.

Pri nasledujúcich krokoch je dobré nosiť kožené rukavice, dlhé rukávy, dlhé nohavice, topánky so zatvorenou špičkou a ochranu očí

Naviňte a odlomte zväzok lacnej spájky z cievky, vložte ho do oceľovej misky a potom zapáľte horák. Počkajte, kým sa cievka úplne nerozpustí, potom začnite podávať miernu rýchlosť zvyšku spájky do misky. Pokiaľ má spájka v sebe živicu, môže sa v teple samovoľne vznietiť, pričom vznikne svetlo žltý plameň a čierny dym. Nebojte sa, to sa mi stalo viackrát a je to úplne normálne.

Pokračujte v podávaní spájky do misky, kým sa posledná neroztopí.

Nechajte všetky plamene zo spaľujúcej kolofónie úplne vyhasnúť a pomocou klieští/klieští uchopte misku a jemne krúžte roztaveným kovom dovnútra, pričom ju opatrne držte v plameni.

Potom, čo ste si istí, že všetka spájka je úplne skvapalnená a pri dobrej horúcej teplote, rýchlo a opatrne ju vyberte z plameňa a nalejte do formy. Keď sa časť vody odparí, ozve sa hlasitý syčivý zvuk a para a zvyšok sa vytlačí z formy, aby sa nahradil roztavenou spájkou.

Nechajte spájku vychladnúť, vypnite horák/sfúknite sviečku a oceľovú misku umiestnite na bezpečné miesto na chladenie. Možno budete chcieť chladiacu spájku naliať studenou vodou, aby sa chladenie urýchlilo a ďalej vytvrdilo. (Vďaka studenej vode sa vonkajšia strana ochladzuje rýchlejšie ako vo vnútri, čo vytvára vnútorné napätie, vďaka ktorému je kov tvrdší a tuhší, podobne ako v prípade kvapky princa Ruperta.) Na kovovú misku môžete tiež naliať vodu, ale stane sa krehkou., najmä ak sa to robí viackrát.

Po úplnom vychladnutí spájky (pre istotu asi 20 minút) ju vyberte z fóliovej formy.

Moje skončili na jednej strane hrubšie ako na druhej, takže som pomocou kladiva vyrovnal a vyrovnal okraje (výsledkom bol tvar, ktorý vidíte na obrázkoch). Potom som ho jemne obrúsil pod tečúcou vodou, aby som ho vyleštil, a odložil som ho na neskôr.

Krok 3: Stavba krytu elektroniky, krok 1

Stavba krytu elektroniky, krok 1
Stavba krytu elektroniky, krok 1
Stavba krytu elektroniky, krok 1
Stavba krytu elektroniky, krok 1
Stavba krytu elektroniky, krok 1
Stavba krytu elektroniky, krok 1
Stavba krytu elektroniky, krok 1
Stavba krytu elektroniky, krok 1

Toto sú časti plášťa, ktoré budú obsahovať Nano, namontujú rozhranie a v zásade držia lampu HALO pohromade. Svoju som vyrobil pomocou 0,5 mm hliníka a horúceho lepidla, ale ak máte 3D tlačiareň (niečo, čo som sa nejaký čas pokúšal zohnať pre svoj obchod), urobil som verziu. STL v Tinkercad, ktorú som sem priložil Stiahnuť ▼. Pretože sám nemám tlačiareň, nemohol som otestovať tlač modelu, aby som zistil, či sa všetko tlačí správne, ale myslím si, že by malo byť v poriadku, ak do svojho krájača pridáte správne podporné štruktúry. Môžete tu tiež skopírovať a upraviť zdrojový súbor, ak potrebujete alebo chcete trochu iný dizajn alebo estetiku.

Rozmery boli v skutočnosti odvodené od hmotnosti kovu, ktorý som pre seba odlial zo spájky, nie od veľkosti elektroniky, ale aj tak to dopadlo celkom dobre a rozmery sú celkom optimálne.

Obrázky zobrazujú trochu iné poradie operácií, než aké tu napíšem, je to kvôli tomu, že som na základe výsledkov svojej pôvodnej metódy navrhol vylepšenú metódu.

Ak montujete z plechu ako ja, musíte urobiť toto:

Krok 1: Čelné dosky

Vyrežte dva identické polkruhové tvary asi 1,5 palca vysoké a 3 palce široké. (Svoje som rukou od ruky, takže trochu pripomínajú prednú časť boxu na juke).

Do jednej z dvoch platní vyvŕtajte tri otvory pre tlačidlá a potenciometer. Moje mali každý 1/4 palca v priemere. Môžu mať ľubovoľné rozloženie, ale ja dávam prednosť tomu, aby bol môj potenciometer v strede mierne vyvýšený, pričom tlačidlá na oboch stranách tvoria rovnoramenný trojuholník. Pri vŕtaní vždy urobím malý pilotný otvor, než prejdem na bit požadovanej veľkosti, pomôže to vycentrovať otvory a urobí ich o niečo čistejšími.

Krok 2: Oblúkový kryt

Skloňte sa nad kusom hliníka, aby sa zmestil do krivky jednej z predných dosiek, a označte správnu dĺžku okraja.

Vystrihnite pás s touto dĺžkou a šírkou asi 2 palce a sformujte ho do oblúka, ktorý zodpovedá tvaru krivky lícových dosiek na oboch stranách.

Nájdite stredový bod v hornej časti krivky a vyvŕtajte otvor tak, aby zodpovedal pružnému krku zapaľovača. Vykompenzoval som zadné časti v mojej zadnej časti, pretože moja lampa bude mať pri použití väčšinou krk naklonený dopredu, takže som k tomu chcel pridať trochu vyváženia. Môj flexibilný krk mal priemer niečo viac ako 1/4 palca, takže som použil 1/4 palcový bit (najväčší krútiaci bit, ktorý vlastním, je menší ako 3/4 palca) a opatrne som naklonil a skrútil vŕtajte, aby ste „vyvŕtali“dieru, kým krk nezapadne.

Teraz, keď máme diely pre plášť, ďalším krokom je pridať elektroniku a dať ju dohromady!

Krok 4: Stavba krytu elektroniky, krok 2

Stavba krytu elektroniky, krok 2
Stavba krytu elektroniky, krok 2
Stavba krytu elektroniky, krok 2
Stavba krytu elektroniky, krok 2
Stavba krytu elektroniky, krok 2
Stavba krytu elektroniky, krok 2
Stavba krytu elektroniky, krok 2
Stavba krytu elektroniky, krok 2

Teraz pridáme tlačidlá a potenciometer a dáme to všetko dohromady.

Krok 1: Tlačidlá a skrutky

Odskrutkujte šesťhranné matice z tlačidiel a potenciometra. Pod maticou by malo byť zariadenie na uchopovací krúžok, nechajte to na mieste.

Prevlečte všetky súčasti cez príslušný otvor a potom zaskrutkujte matice, aby boli zaistené na svojom mieste. Utiahnite matice natoľko, aby ste si boli istí, že každý komponent je úplne zaistený.

Krok 2. Flex krk

Ohybný krk prevlečte otvorom v hornej časti zakriveného kusu. Horúce lepidlo alebo zvarte (ak máte vybavenie) krk bezpečne na mieste.

Ak používate horúce lepidlo ako ja, je dobré ho zlepiť veľkým množstvom lepidla na oboch stranách rozložených na veľkej ploche, aby sa zabránilo neskoršiemu odlepeniu lepidla.

Krok 3: Zostava škrupiny (netýka sa škrupiny vytlačenej na 3D)

Prednú a zadnú čelnú dosku pripevnite pomocou zvarovacej tyče alebo horúceho lepidla na príslušné miesto na oblúkovom kryte. Trvalo mi pár pokusov, kým sa moje lepidlo nalepilo, a ako predtým, trik spočíva v použití veľkého množstva lepidla na oboch stranách kĺbu, rovnako ako na krku. Čím väčšia je plocha pokrytá lepidlom, tým lepšie bude držať.

Teraz, keď máme shell, môžeme pristúpiť k pridaniu všetkých bitov obvodov.

Krok 5: Pridanie elektroniky

Pridanie elektroniky
Pridanie elektroniky
Pridanie elektroniky
Pridanie elektroniky
Pridanie elektroniky
Pridanie elektroniky

A tu je zábavná časť: Spájkovanie! V posledných týždňoch ma spájkovanie úprimne trochu unavilo, pretože v poslednej dobe to tak robím, aby som sa pokúsil dokončiť ďalší projekt, ktorý by som mal čoskoro začať (dávajte si pozor na radikalizovanú novú verziu môjho robotického displeja platformy), čo viedlo k tomu, že som zničil jednu žehličku a dostal som ďalšiu … Každopádne tu nie je čo spájkovať, takže by to malo byť celkom jednoduché.

Poznámka: Ak už má váš Nano kolíkové hlavičky, odporučil by som ich pre tento projekt odspájkovať, budú len prekážať.

Na obrázkoch vyššie je diagram, ktorým sa môžete riadiť, ak sa vám páči.

Krok 1: Rozhranie

Z každého prepínača spájkujte drôt z jedného kolíka k bočnému kolíku potenciometra. Spájajte vodič z rovnakého bočného kolíka na uzemňovací kolík na Nano.

Spájajte drôt zo stredového kolíka potenciometra k A0 na Nano.

Spájajte vodič z nepripojeného kolíka jedného z prepínačov k A1 na Nano.

Spájajte vodič z nepripojeného kolíka na druhom prepínači k A2 na Nano.

Poznámka: Nezáleží na tom, ktorý prepínač je ktorý, v kóde ich môžete veľmi ľahko zmeniť, okrem toho, že jeden prepínač jednoducho robí opak druhého.

Odrežte dĺžku drôtu o 4 palce dlhšiu ako ohybný krk a odizolujte obe strany. Pomocou Sharpie označte jednu stranu jedným riadkom.

Spájkujte drôt k poslednému nepripojenému bočnému kolíku potenciometra, otočte nezapojený koniec tohto drôtu spolu s neoznačeným koncom drôtu z posledného čiastkového kroku.

Spájkujte tento spojený koniec na 5V na Nano.

Krok 2: Zobrazovacie a napájacie vodiče

Odrežte 2 dĺžky drôtu o 4 palce dlhšie ako ohybný krk a odizolujte oba konce.

Pomocou Sharpie označte konce každého drôtu, jeden drôt 2 čiarami a jeden 3.

Spájkujte drôt 2 vedeniami na digitálny kolík 9 na Nano.

Na svojom 5 mm valcovom konektore spájkujte drôt zo stredového kolíka (kladný) k Vin na Nano.

Pripojte ďalší vodič k bočnému kolíku (uzemnenie/záporný pól) valcového konektora.

Otočte dlhý drôt tromi líniami spoločne s drôtom z bočného kolíka sudového zdviháka.

Spájkujte tieto drôty na otvorený kolík GND na Nano.

Podľa potreby izolujte spoje elektrickou páskou alebo horúcim lepidlom.

Krok 3: Rezanie otvorov (iba na kovovej verzii, ak ste kryt vytlačili 3D, mali by ste byť v poriadku)

Vŕtačkou a nožom X-acto alebo nožom opatrne urobte na boku krytu otvor pre USB port Nano.

Na zadnej strane krytu urobte ďalší otvor o veľkosti tváre valcového konektora, najlepšie bližšie k strane oproti otvoru pre port USB.

Krok 4: Montáž komponentov

Veďte tri dlhé drôty cez ohybný krk a von na druhú stranu.

Pomocou veľkého množstva horúceho lepidla namontujte valcový zdvihák na miesto tak, aby kolíky smerovali k hornej časti krytu.

Opäť pomocou veľkého množstva horúceho lepidla namontujte Nano na miesto tak, aby tlačidlo reset smerovalo nadol a port USB do otvoru. Vytvoril som „most horúceho lepidla“medzi zdvihák hlavne a Nano, vďaka ktorému každý drží ten druhý pevne na svojom mieste.

Teraz môžeme prejsť k vytvoreniu váženej základne!

Krok 6: Vážená základňa

Vážená základňa
Vážená základňa
Vážená základňa
Vážená základňa
Vážená základňa
Vážená základňa

Som si istý svojimi spájkovacími schopnosťami a mám to dobre naplánované, a tak som pred testovaním kódu pokračoval a pridal základňu. Ak ste si menej istí svojimi schopnosťami, navrhoval by som tento krok preskočiť a vrátiť sa k nemu na konci, keď budete vedieť, že všetko funguje.

Ak ste vytvorili 3D tlačenú verziu, môžete prvý krok preskočiť a prejsť na druhý.

Krok 1: Drevo

Z listu preglejky 1/4 palca odrežte základňu asi 3 palce x 2 palce.

Okraje obrúste, aby ste ich vyhladili a odstráňte otrepy.

Krok 2: Hmotnosť

Najprv sa uistite, že vami zvolená hmotnosť, či už magnet, kov alebo spájkovačka na mieru, zapadá do okrajov kovového krytu, ktorý sme vyrobili. Ten môj bol v jednom smere trochu veľký, a tak som sa trochu oholil zboku nožom X-acto. Ak to nie je váš prípad, kde to môžete urobiť, možno budete musieť pohrať s iným dizajnom základne.

Horúce lepidlo vážte v strede kusu preglejky, alebo v prípade 3D tlačeného dizajnu, v stredovej oblasti „podnosu“, ktorú som na tento účel navrhol.

Krok 3: Základňa

Nasaďte kovový kryt na závažie a vycentrujte ho na drevenú základňu. (V prípade 3D tlačeného dizajnu ho vložte do vopred pripravených drážok.)

Zaistite, aby hmotnosť neprekážala žiadnej elektronike

Pomocou horúceho lepidla zaistite základňu na mieste. Použite dostatočné množstvo na zaistenie pevného spojenia.

Teraz, keď máme riadiacu skrinku úplne vyrobenú, prejdime k svetlám.

Krok 7: NeoPixel Halo Ring

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

Inšpiráciou pre názov tejto žiarovky je táto časť halo krúžok NeoPixel, ktorý budeme používať ako svoj zdroj osvetlenia. Tento konkrétny kus môže byť podľa potreby upravený alebo nahradený akýmkoľvek NeoPixel alebo individuálne adresovateľným LED krúžkom.

Krok 1: Spájkovanie

Odstrihnite pásik 12 LED diód NeoPixels.

Spájajte kolík GND s drôtom z ohybného krku, ktorý má 3 riadky.

Spájajte kolík Din na vodič, ktorý má 2 riadky.

Spájajte 5V kolík na vodič, ktorý má 1 vedenie.

Krok 2: Otestujte svetlá

Stiahnite si a nainštalujte knižnicu Adafruit_NeoPixel a otvorte kód „strandtest“.

Zmeňte konštantný PIN na 9.

Zmeňte riadok, kde je pás definovaný, aby bol nakonfigurovaný pre 12 LED diód.

Nahrajte kód do Nano a zaistite správnu funkciu všetkých vašich LED diód.

Vymeňte všetky chybné diódy LED za funkčné, kým celý pás nebude fungovať.

Krok 3: Prsteň

Vyberte horný krúžok zo svetla „Stick and Click“a odrežte všetky skrutkové úchytky na vnútornom ráfiku.

Odrežte malý okraj na okraji pre drôty z pásu.

Odlepte kryt lepiacej pásky na zadnej strane NeoPixels (ak existuje) a prilepte ich do prstenca, pričom každý koniec prúžku bude približne v záreze, ktorý sme vytvorili.

Na zaistenie okrajov pásu použite horúce lepidlo

Po úplnom vychladnutí lepidla znova vyskúšajte pixely. To má zaistiť, aby nikto nebol náročný na teplo a curling (niekoľko z nich bolo).

Krok 4: Namontujte

Vystrihnite dva malé obdĺžniky z dreva s priemerom 1/4 palca, zhruba na výšku prsteňa a 1 2/3 krát širšie.

Prilepte ich navzájom rovnobežne na obidve strany drôtov z prstenca, vyplňte medzeru a drôty medzi nimi úplne pokryte lepidlom.

Prebytočnú dĺžku drôtu opatrne zatlačte späť do ohybného krku a potom prilepte kúsky dreva na koniec krku veľkým množstvom lepidla a opatrne vyplňte všetky medzery (bez zaplnenia krku lepidlom).

Krok 6: Dokončenie

Môžete namaľovať prsteň a namaľovať akúkoľvek farbu, ak chcete, ja som uprednostnil striebornú úpravu, takže som na zakrytie loga, ktoré bolo (otravne) vytlačené na prsteň, použil iba Sharpie. To isté platí pre zvyšok žiarovky.

Teraz môžeme pokračovať a dokončiť konečný kód!

Krok 8: Kódy a testy

Kódy a testy
Kódy a testy
Kódy a testy
Kódy a testy

Teraz teda všetko, čo musíme urobiť, je naprogramovať lampu a otestovať ju. V prílohe je aktuálna verzia kódu (rev1.0), tento kód som pomerne rozsiahlo testoval a funguje veľmi dobre. Pracujem na rev2.0, kde sú tlačidlá nakonfigurované ako externé prerušenia, takže je možné medzi nimi jednoduchšie prepínať, ale táto verzia je chybná a ešte nie je pripravená na vydanie. Pri súčasnej verzii musíte tlačidlo držať, kým nespustí slučku Debounce a nerozpozná zmenu stavu, čo môže byť na dlhších „dynamických“slučkách nepríjemné. Nasleduje kód s niektorými napísanými vysvetleniami (rovnaké vysvetlenia sú aj vo verzii na stiahnutie).

#include #ifdef _AVR_ #include #endif

#definujte PIN 9

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

// Parameter 1 = počet pixelov v páse

// Parameter 2 = počet pinov Arduino (väčšina je platných) // Parameter 3 = vlajky typu pixelov, sčítajte podľa potreby: // NEO_KHZ800 bitový tok 800 KHz (väčšina produktov NeoPixel s diódami WS2812) // NEO_KHZ400 400 KHz (klasický) v1 '(nie v2) pixely FLORA, ovládače WS2811) // NEO_GRB Pixely sú zapojené pre bitový tok GRB (väčšina produktov NeoPixel) // NEO_RGB Pixely sú zapojené pre bitový tok RGB (v1 pixely FLORA, nie v2) // NEO_RGBW Pixely sú zapojené pre Bitový tok RGBW (produkty NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// A teraz bezpečnostná správa od našich priateľov v Adafruit:

// DÔLEŽITÉ: Aby ste znížili riziko vyhorenia NeoPixel, pridajte doň kondenzátor 1 000 uF

// Napájacie vodiče pixelov, na vstup dát prvého pixelu pridajte odpor 300 - 500 Ohm // a minimalizujte vzdialenosť medzi Arduinom a prvým pixelom. Vyhnite sa pripájaniu // na živom okruhu … ak musíte, najskôr pripojte GND.

// Premenné

int buttonState1; int buttonState2; // aktuálne čítanie zo vstupného pinu int lastButtonState1 = LOW; // predchádzajúce čítanie zo vstupného pinu int lastButtonState2 = LOW; int režim; // režim našich svetiel, môže byť jedným zo 16 nastavení (0 až 15) int brightVal = 0; // jas/ rýchlosť, nastavený potenciometrom

// nasledujúce premenné sú dlhé, pretože čas meraný v milisekundách, // sa rýchlo stane väčším číslom, ako je možné uložiť do int. long lastDebounceTime = 0; // poslednýkrát bol výstupný kolík prepnutý dlho debounceDelay = 50; // čas odskoku; zvýšiť, ak výstup bliká

void debounce () {

// načítanie stavu prepínača do lokálnej premennej: int reading1 = digitalRead (BUTTON1); int reading2 = digitalRead (BUTTON2); // Ak sa jedno z tlačidiel zmenilo v dôsledku hluku alebo stlačenia: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// vynulovanie časovača odblokovania, lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// ak sa stav tlačidla definitívne zmenil v dôsledku stlačenia/uvoľnenia: if (reading1! = buttonState1) {buttonState1 = reading1; // nastavte to ako čítanie, ak sa to zmení, ak (buttonState1 == LOW) {// tieto sú nastavené ako aktívny režim nízkych spínačov ++; if (mode == 16) {mode = 0; }}} if (reading2! = buttonState2) {buttonState2 = reading2; if (buttonState2 == LOW) {mode = mode - 1; if (mode == -1) {mode = 15; }}}} // uloženie čítania nabudúce cez slučku lastButtonState1 = reading1; lastButtonState2 = reading2; }

void getBright () {// náš kód na čítanie potenciometra, vypočíta hodnotu medzi 0 a 255. V niektorých režimoch sa používa na nastavenie jasu a v iných na rýchlosť.

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

// Tu sú naše farebné režimy. Niektoré z nich sú odvodené z tohto podivného príkladu, iné sú pôvodné.

// Vyplňte bodky jednu za druhou farbou (colorwipe, odvodené od strandtest)

void colorWipe (uint32_t c, uint8_t čakať) {for (uint16_t i = 0; i

// dúhové funkcie (tiež odvodené od strandtest)

prázdna dúha (uint8_t čakať) {

uint16_t i, j;

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

// Trochu odlišný, vďaka čomu je dúha rovnomerne rozložená v celom objeme

void rainbowCycle (uint8_t čakať) {uint16_t i, j;

for (j = 0; j <256*5; j ++) {// 5 cyklov všetkých farieb na koliesku pre (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); oneskorenie (čakanie); }}

// Na získanie hodnoty farby zadajte hodnotu 0 až 255.

// Farby sú prechodom r - g - b - späť na 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; vrátiť halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; vrátiť halo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

neplatné nastavenie () {

// Toto je pre Trinket 5V 16MHz, tieto tri riadky môžete odstrániť, ak nepoužívate Trinket #ak je definované (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Koniec cencúľa špeciálny kód pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, VÝSTUP); Serial.begin (9600); // ladenie vecí halo.begin (); halo.show (); // Inicializácia všetkých pixelov na 'vypnuté'}

prázdna slučka () {

debounce ();

//Serial.println(mode); // ďalšie ladenie //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

if (mode == 0) {

getBright (); pre (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // nastavenie všetkých pixelov na bielu} halo.show (); }; if (mode == 1) {getBright (); pre (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // nastaviť všetky pixely na červené} halo.show (); }; if (mode == 2) {getBright (); pre (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // nastaviť všetky pixely na zelené} halo.show (); }; if (mode == 3) {getBright (); pre (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // nastaviť všetky pixely na modré} halo.show (); }; if (mode == 4) {getBright (); pre (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // nastavenie všetkých pixelov na azúrové} halo.show (); }; if (mode == 5) {getBright (); pre (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // nastaviť všetky pixely na purpurové/purpurové} halo.show (); }; if (mode == 6) {getBright (); pre (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // nastavenie všetkých pixelov na oranžové/žlté} halo.show (); }; if (mode == 7) {// teraz dynamické režimy getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // červená}; if (mode == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // Zelená }; if (mode == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Modrá }; if (mode == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // biely }; if (mode == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // oranžová/žltá}; if (mode == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // tyrkysový }; if (mode == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // purpurová/purpurová}; if (mode == 14) {// posledné dva sú ovládanie rýchlosti, pretože jas je dynamický getBright (); dúha (brightVal); }; if (mode == 15) {getBright (); rainbowCycle (brightVal); }; oneskorenie (10); // nechajte procesor trochu odpočinúť}

Krok 9: Veľké finále

Veľké finále
Veľké finále

A teraz máme fantastickú, super-jasnú malú lampu!

Odtiaľto ho môžete ďalej upravovať alebo ho nechať tak, ako je. Môžete zmeniť kód alebo dokonca úplne napísať nový. Základňu môžete zväčšiť a pridať batérie. Môžete pridať ventilátor. Môžete pridať ďalšie NeoPixely. Zoznam všetkého, čo by ste s tým mohli robiť, je takmer nekonečný. Hovorím „takmer“, pretože som si celkom istý, že stále nemáme technológie na to, aby sme to mohli previesť na generátor mini portálov (bohužiaľ), ale okrem podobných vecí je jediným limitom vaša predstavivosť (a do určitej miery aj ako som nedávno zistil, nástroje vo vašej dielni). Ale ak nemáte nástroje, nenechajte sa tým zastaviť. Ak naozaj chcete niečo urobiť, vždy existuje cesta.

To je súčasťou zmyslu tohto projektu, dokázať sebe (a v menšej miere aj svetu), že môžem vyrábať užitočné veci, ktoré by chceli aj iní ľudia, aj keď všetko, čo mám, je skutočná nevyžiadaná hromada starého a zošrotovaného komponentov a kôš spotrebného materiálu Arduino.

Tu skončím, pretože si myslím, že tento dopadol celkom dobre. Ak máte návrh na zlepšenie alebo otázku o mojich metódach, zanechajte komentár nižšie. Ak ste to urobili, odfoťte sa, všetci to chceme vidieť!

Ak sa vám to páči, nezabudnite hlasovať!

Ako vždy, toto sú projekty nebezpečne explozívneho, jeho celoživotného poslania „Odvážne stavať to, čo chcete stavať, a ďalšie!“

Ostatné moje projekty nájdete tu.

Ďakujeme za prečítanie a prajeme veľa šťastia!

Odporúča: