Obsah:

HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Steps (with Pictures)
HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Steps (with Pictures)

Video: HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Steps (with Pictures)

Video: HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Steps (with Pictures)
Video: DIY HALO Lamp Rev1.0 - Powered by Arduino Nano, 15+ Color Modes 2024, Červen
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ávodu vám ukážu, jak sestavit HALO neboli Handy Arduino Lamp Rev1.0.

HALO je jednoduchá lampa poháněná Arduino Nano. Má celkovou stopu přibližně 2 x 3 palce a váženou dřevěnou základnu pro extrémní stabilitu. Flexibilní krk a 12 superjasných NeoPixelů umožňuje snadno osvětlit každý detail na jakémkoli povrchu. HALO je vybaven dvěma tlačítky pro procházení různými světelnými režimy, z nichž je 15 předprogramovaných. Díky použití procesoru Arduino Nano jako procesoru máte možnost jej přeprogramovat pomocí dalších funkcí. Jediný potenciometr se používá k nastavení jasu a rychlosti zobrazení režimu. Díky jednoduché kovové konstrukci je HALO velmi odolná lampa vhodná pro použití v každé dílně. Snadné použití je umocněno integrovaným regulátorem napájení Nano, takže HALO lze napájet buď z USB, nebo ze standardního 5mm konektoru na zadní straně.

Doufám, že v blízké budoucnosti uvidím mnoho lidí využívajících tyto lampy, protože s tímto designem se otevírá tolik možností. Pokud se vám to líbí nebo vám to v něčem připadá užitečné, zanechte prosím hlas v soutěži o mikrořadič, opravdu bych to ocenil.

Než se dostaneme k tomuto Instructable, rád bych stručně poděkoval všem mým následovníkům a každému, kdo někdy komentoval, přidal mezi oblíbené nebo hlasoval o některém z mých projektů. Díky vám, můj Cardboard instructable se stal velkým úspěchem, a já jsem nyní, když píšu toto dosahující téměř 100 následovníků, podle mě velký milník. Opravdu si vážím veškeré podpory, kterou od vás dostávám, když jsem postavil své Ible, a když na to přijde, bez vás bych dnes nebyl tam, kde jsem. S tímto řekl, děkuji vám všem!

POZNÁMKA: V celém tomto Instructable jsou fráze tučně. Toto jsou důležité části každého kroku a neměly by být ignorovány. Nejsem to tak, že bych křičel nebo úmyslně byl hrubý, prostě zkouším novou techniku psaní, abych lépe zdůraznil, co je třeba udělat. Pokud se vám to nelíbí a dáváte přednost tomu, jak jsem dříve inklinoval k psaní svých kroků, dejte mi vědět v komentářích a já se přepnu zpět ke svému starému stylu.

Krok 1: Shromažďování materiálů

Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů
Shromažďování materiálů

Kolikrát to mám říct? Mějte vždy to, co potřebujete, a zaručeně dokážete něco dotáhnout až do konce.

Poznámka: Některé z nich jsou odkazy na affiliate partnery (označené „al“). Pokud prostřednictvím nich nakoupíte, získám malý provizi, a to bez dalších nákladů. Děkujeme, pokud nakupujete prostřednictvím odkazů

Díly:

1x Arduino Nano Nano - al

1x 10k rotační potenciometr 5 balení 10k potenciometry - al

1x 5mm barel jack (můj je recyklován ze smaženého Arduino Uno) Female Barrel Jack (5 balení) - al

2x 2kolíková momentální tlačítka 10 kusů SPST tlačítkový spínač-al

12x NeoPixels z vlákna 60 LED/metr (jakýkoli ekvivalent, např. WS2812B, bude fungovat) Adafruit NeoPixels

List 0,5 mm hliníku

Flexibilní krk ze starého flex zapalovače

Horní krycí kroužek z LED osvětlení skříně „Stick and Click“LED Cabinet Light - al

Malý list překližky 1/4 palce

Těžká, plochá kovová hmotnost o rozměrech (zhruba) 1,5 "x 2,5" x 0,25"

Elektrický vodič se splétaným jádrem

Nástroje:

Pistole na lepidlo a lepidlo

Páječka a pájka

Akumulátorová vrtačka a různé zkroucené bity

Nůž X-acto (nebo nůž na nářadí)

Odstraňovače drátů

Kleště

Nůžky na drát

Heavy Duty nůžky

Pokud nemáte ploché kovové závaží, potřebujete také:

1 role levné pájky (ne věci, které budete používat k pájení) Levná bezolovnatá pájka

Alkoholová svíčka (nebo Bunsenova vypalovačka)

Malý talíř z tvrzené oceli, který vám nevadí zničit (nebo malý kelímek, pokud ho máte)

Stativ pro uvedenou misku/kelímek (vyrobil jsem důl z ocelového drátu o průměru 12)

Mísa z jílovitých rostlin (jedna z těch věcí, které jdou pod květináč)

Nějaká hliníková fólie

POZNÁMKA: Pokud máte svařovací sadu nebo 3D tiskárnu, možná nebudete potřebovat všechny zde uvedené nástroje.

Krok 2: Vytvoření váhy

Vytváření váhy
Vytváření váhy
Vytváření váhy
Vytváření váhy
Vytváření váhy
Vytváření váhy

Toto je poměrně obtížný krok a musíte při tom postupovat velmi opatrně. Pokud máte těžkou kovovou váhu nebo plochý neodymový magnet o rozměrech 2,75 "x 1,75" x 0,25 ", doporučil bych použít místo toho (a magnet vám dokonce umožní umístit lampu bokem na kovové povrchy!).

Prohlášení: Nezodpovídám za žádné zranění z vaší strany, proto prosím použijte zdravý rozum

Udělejte to také venku na betonovém povrchu, který vám nebude vadit, pokud se trochu spálí (to je jen předběžné opatření). Nemám pro tento proces žádné obrázky, protože fotoaparát by byl další rozptýlení, které jsem nepotřeboval ani nechtěl.

Nejprve vytvořte malou formu z hliníkové fólie nebo vlhké hlíny, vnitřní rozměry jsou asi 2 3/4 palce o 1 3/4 palce o 1/4 palce. Může to být vejčitý tvar jako já nebo obdélník. Použijte více vrstev fólie nebo silné vrstvy jílu.

Umístěte formu do keramické misky a naplňte formu i plech studenou vodou.

Vezměte nezapálenou lihovou svíčku/bunsenový hořák a položte ocelovou misku/kelímek na stativ, aby plamen ohříval střed misky (když svítí). Před zapálením hořáku se ujistěte, že máte po ruce alespoň 1 pár kleští nebo kleští na obrábění kovů, pokud ne 2.

Při následujících několika krocích je dobré nosit kožené rukavice, dlouhé rukávy, dlouhé kalhoty, boty se zavřenou špičkou a ochranu očí

Naviňte a odlomte svazek levné pájky z cívky, vložte ji do ocelové misky a poté zapalte hořák. Počkejte, až se cívka úplně roztaví, a poté začněte přivádět zbytek pájky do misky mírným tempem. Pokud má pájka v sobě jakoukoli kalafunu, může se v horku samovolně vznítit a vytvořit bledě žlutý plamen a černý kouř. Nebojte se, to se mi stalo několikrát a je to naprosto normální.

Pokračujte v podávání pájky do misky, dokud se její poslední neroztaví.

Nechte všechny plameny ze spalující kalafuny úplně vyhasnout a pomocí kleští/kleští uchopte misku a roztáhněte roztavený kov dovnitř a opatrně ji držte v plameni.

Poté, co jste si jisti, že veškerá pájka je zcela zkapalněná a při dobré horké teplotě, rychle a opatrně ji stáhněte z plamene a nalijte do formy. Jakmile se část vody odpaří, ozve se hlasitý syčivý zvuk a pára a zbytek je vytlačen z formy, aby byl nahrazen roztavenou pájkou.

Nechte pájku vychladnout, vypněte hořák/sfoukněte svíčku a umístěte ocelovou misku na bezpečné místo, kde se ochladí. Chladicí pájku můžete zalít studenou vodou, aby se chlazení urychlilo a dále ztvrdlo. (Studená voda ochlazuje vnější část rychleji než vnitřek a vytváří vnitřní napětí, díky kterému je kov tvrdší a tužší, podobně jako kapka prince Ruperta.) Kovovou misku můžete také přetéct vodou, ale to způsobí její křehkost, zvláště pokud se provádí vícekrát.

Jakmile pájka úplně vychladne (pro jistotu asi 20 minut), vyjměte ji z fóliové formy.

Ten můj skončil na jedné straně silnější než na druhé, takže jsem pomocí kladiva vyrovnal a vyrovnal okraje (výsledkem byl tvar, který vidíte na obrázcích). Potom jsem ji lehce obrousil pod tekoucí vodou, abych ji vyleštil, a odložil jsem ji na později.

Krok 3: Stavba pouzdra elektroniky, krok 1

Stavba pouzdra elektroniky, krok 1
Stavba pouzdra elektroniky, krok 1
Stavba pouzdra elektroniky, krok 1
Stavba pouzdra elektroniky, krok 1
Stavba pouzdra elektroniky, krok 1
Stavba pouzdra elektroniky, krok 1
Stavba pouzdra elektroniky, krok 1
Stavba pouzdra elektroniky, krok 1

Toto jsou části pláště, které budou obsahovat Nano, připojit rozhraní a v zásadě drží pohromadě lampu HALO. Vyráběl jsem ten svůj pomocí 0,5 mm hliníku a horkého lepidla, ale pokud máte 3D tiskárnu (něco, co se již nějakou dobu snažím získat pro svůj obchod), vytvořil jsem verzi. STL v Tinkercad, kterou jsem zde připojil stažení. Protože sám nemám tiskárnu, nemohl jsem testovat tisk modelu, abych zjistil, zda se vše tiskne správně, ale myslím, že by mělo být v pořádku, pokud do svého kráječe přidáte správné podpůrné struktury. Můžete zde také zkopírovat a upravit zdrojový soubor, pokud potřebujete nebo chcete trochu jiný design nebo estetiku.

Rozměry byly ve skutečnosti odvozeny od hmotnosti kovu, který jsem pro sebe odlil z pájky, ne od velikosti elektroniky, ale stejně to dopadlo docela dobře a rozměry jsou docela optimální.

Obrázky zobrazují trochu jiné pořadí operací, než jaké zde napíšu, je to proto, že jsem na základě výsledků své původní metody navrhl vylepšenou metodu.

Pokud montujete z plechu jako já, postupujte takto:

Krok 1: Čelní desky

Vyřízněte dva stejné půlkruhové tvary o výšce 1,5 palce a šířce 3 palce. (Svou rukou jsem rukou, takže vypadají trochu jako přední část juke boxu).

Do jedné ze dvou desek vyvrtejte tři otvory pro tlačítka a potenciometr. Moje měly každý 1/4 palce v průměru. Ty mohou být v jakémkoli rozložení, ale dávám přednost tomu, aby byl můj potenciometr mírně zvednutý uprostřed, přičemž tlačítka na obou stranách tvoří rovnoramenný trojúhelník. Při vrtání vždy udělám malý pilotní otvor, než přejdu na bit požadované velikosti, pomůže vycentrovat otvory a trochu je vyčistí.

Krok 2: Klenutý kryt

Ohněte se nad kusem hliníku, aby se vešel kolem křivky jedné z čelních desek, a označte správnou délku hrany.

Vystřihněte pás této délky a asi 2 palce široký a vytvořte jej do oblouku, který odpovídá tvaru křivky čelních desek na obou stranách.

Najděte středový bod v horní části křivky a vyvrtejte otvor tak, aby odpovídal ohebnému krku zapalovače. Vykompenzoval jsem zadní část v mé zadní části, protože moje lampa bude mít při používání většinou krk nakloněný dopředu, takže jsem k tomu chtěl přidat trochu protiváhy. Můj ohebný krk měl průměr jen něco málo přes 1/4 palce, takže jsem použil bit 1/4 palce (největší zkroucený bit, který vlastním, je menší než 3/4 palce) a jen opatrně zahnul a stočil vyvrtejte a vyvrtejte otvor, dokud krk nezapadne.

Nyní, když máme díly pro plášť, je dalším krokem přidání elektroniky a její složení!

Krok 4: Stavba pouzdra elektroniky, krok 2

Stavba pouzdra elektroniky, krok 2
Stavba pouzdra elektroniky, krok 2
Stavba pouzdra elektroniky, krok 2
Stavba pouzdra elektroniky, krok 2
Stavba pouzdra elektroniky, krok 2
Stavba pouzdra elektroniky, krok 2
Stavba pouzdra elektroniky, krok 2
Stavba pouzdra elektroniky, krok 2

Nyní přidáme tlačítka a potenciometr a dáme to dohromady.

Krok 1: Tlačítka a šrouby

Odšroubujte šestihranné matice z tlačítek a potenciometru. Pod maticí by mělo být zařízení pro uchopovací kroužek, nechte to na místě.

Prostrčte každou součást příslušným otvorem a poté zašroubujte matice zpět, aby byla každá zajištěna na svém místě. Utáhněte matice natolik, abyste si byli jisti, že jsou všechny součásti zcela zajištěné.

Krok 2. Flex krk

Protáhněte ohebný krk otvorem v horní části zakřiveného kusu. Horké lepidlo nebo svařte (pokud máte vybavení) krk bezpečně na svém místě.

Pokud používáte horké lepidlo jako já, je dobré jej přilepit spoustou lepidla na obou stranách rozložených po velké ploše, aby se zabránilo lepení později odlepit.

Krok 3: Shell Assembly (nevztahuje se na 3D tištěnou skořepinu)

Pomocí svařovací tyče nebo horkého lepidla připevněte přední a zadní čelní desky na příslušná místa na klenutém krytu. Trvalo mi pár pokusů, než se moje lepidlo přilepilo, a jako dříve, trik spočívá v použití spousty lepidla na obou stranách spoje, stejně jako na krku. Čím větší je plocha pokrytá lepidlem, tím lépe bude lepit.

Nyní, když máme shell, můžeme přejít k přidání všech bitů obvodů.

Krok 5: Přidání elektroniky

Přidání elektroniky
Přidání elektroniky
Přidání elektroniky
Přidání elektroniky
Přidání elektroniky
Přidání elektroniky

A tady je ta zábavná část: Pájení! V posledních týdnech mě pájení upřímně trochu omrzelo, protože jsem to v poslední době tolik dělal, abych se pokusil dokončit další projekt, který bych měl brzy přidat (pozor na radikalizovanou novou verzi mého robotického displeje platformy), což vedlo k tomu, že jsem zničil jednu žehličku a dostal další … Každopádně zde není moc k pájení, takže by to mělo být docela jednoduché.

Poznámka: Pokud váš Nano již obsahuje záhlaví pinů, doporučil bych je pro tento projekt odpojit, budou jen překážet.

Na obrázcích výše je schéma, můžete se jím řídit, pokud chcete.

Krok 1: Rozhraní

Z každého spínače připájejte vodič z jednoho kolíku k bočnímu kolíku potenciometru. Pájejte vodič ze stejného postranního pinu na zemnící kolík na Nano.

Pájejte vodič od středového kolíku potenciometru k A0 na Nano.

Pájejte vodič z nezapojeného pinu některého z přepínačů na A1 na Nano.

Pájejte vodič z nezapojeného pinu na druhém spínači na A2 na Nano.

Poznámka: Nezáleží na tom, který přepínač je který, můžete je velmi snadno změnit v kódu, kromě toho, že jeden přepínač jednoduše dělá opak druhého.

Odřízněte délku drátu o 4 palce delší než ohebný krk a odizolujte obě strany. Pomocí Sharpie označte jednu stranu jedním řádkem.

Připájejte vodič k poslednímu nepřipojenému postrannímu kolíku potenciometru, otočte nezapojený konec tohoto drátu společně s neoznačeným koncem drátu z posledního dílčího kroku.

Pájejte tento spojený konec na 5V na Nano.

Krok 2: Displej a napájecí vodiče

Odřízněte 2 délky drátu o 4 palce delší než ohebný krk a odizolujte oba konce.

Pomocí Sharpie označte konce každého drátu, jeden drát 2 řádky a jeden 3.

Zapojte vodič 2 linkami na digitální pin 9 na Nano.

Na 5mm válcovém konektoru připájejte vodič od středového kolíku (kladný) k Vin na Nano.

Pájejte další vodič na boční kolík (uzemnění/záporný pól) válcového konektoru.

Otočte dlouhý drát 3 řádky společně s vodičem z postranního kolíku válcového zvedáku.

Připájejte tyto dráty k otevřenému kolíku GND na Nano.

V případě potřeby izolujte spoje elektrickou páskou nebo horkým lepidlem.

Krok 3: Řezání otvorů (pouze u kovové verze, pokud jste kryt vytiskli 3D, měli byste být v pořádku)

Pomocí vrtáku a nástroje X-acto nebo Utility Knife opatrně vytvořte na boku krytu otvor pro USB port Nano.

Na zadní straně krytu vytvořte další otvor o velikosti čela zdířky hlavně, nejlépe blíže straně naproti otvoru pro port USB.

Krok 4: Montáž součástí

Protáhněte tři dlouhé dráty ohebným krkem a ven na druhou stranu.

Pomocí velkého množství horkého lepidla namontujte válcový zvedák na místo tak, aby kolíky směřovaly k horní části krytu.

Opět pomocí velkého množství horkého lepidla připevněte Nano na místo tak, aby resetovací tlačítko směřovalo dolů a port USB do slotu. Mezi válcovým zvedákem a Nano jsem vytvořil „horký lepicí můstek“, díky kterému každý drží toho druhého pevně na svém místě.

Nyní můžeme přejít k vytvoření vážené základny!

Krok 6: Vážená základna

Vážená základna
Vážená základna
Vážená základna
Vážená základna
Vážená základna
Vážená základna

Jsem si jistý svými pájecími schopnostmi a měl jsem to dobře naplánované, takže jsem před testováním kódu přidal základnu. Pokud jste si méně jistí svými schopnostmi, doporučil bych tento krok přeskočit a vrátit se k němu na konci, když víte, že vše funguje.

Pokud jste vytvořili verzi pro 3D tisk, můžete přeskočit první krok a přejít k druhému.

Krok 1: Dřevo

Z listu 1/4 palcové překližky uřízněte základnu asi 3 palce o 2 palce.

Okraje obrousíme, abychom je vyhladili a odstranili otřepy.

Krok 2: Hmotnost

Nejprve zajistěte zvolenou hmotnost, ať už magnet, kov nebo vlastní pájka, se vejde do okrajů kovového krytu, který jsme vyrobili. Ten můj byl v jednom směru trochu velký, takže jsem se trochu oholil ze strany nožem X-acto. Pokud to není to, kde to můžete udělat, možná budete muset hrát s jiným základním designem.

Horké lepidlo svou váhu ve středu kusu překližky, nebo v případě 3D tištěného designu, v prostřední oblasti „podnosu“, kterou jsem pro tento účel navrhl.

Krok 3: Základna

Nasaďte kovový kryt na závaží a vycentrujte jej na dřevěnou základnu. (V případě 3D tištěného designu jej vložte do předem připravených drážek.)

Zajistěte, aby váha nepřekážela žádné elektronice

Pomocí horkého lepidla zajistěte základnu na místě. Použijte dostatečné množství k zajištění pevného spojení.

Nyní, když máme ovládací skříňku zcela vyrobenou, přejděme ke světlů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

Inspirací pro název této lampy je tato část halo prsten NeoPixel, který budeme používat jako zdroj osvětlení. Tento konkrétní kus lze v případě potřeby upravit nebo nahradit jakýmkoli NeoPixelem nebo individuálně adresovatelným prstencem LED.

Krok 1: Pájení

Uřízněte pruh 12 LED diod NeoPixels.

Připájejte kolík GND k drátu z ohebného krku, který má 3 řádky.

Připájejte pin Din na vodič, který má 2 linky.

Pájejte 5V pin na vodič, který má 1 řádek.

Krok 2: Otestujte světla

Stáhněte a nainstalujte knihovnu Adafruit_NeoPixel a otevřete kód „strandtest“.

Změňte konstantní PIN na 9.

Změňte řádek, kde je pás definován, aby byl konfigurován pro 12 LED.

Nahrajte kód do Nano a zajistěte správnou funkci všech vašich LED diod.

Vyměňte všechny vadné diody LED za funkční, dokud celý pás nefunguje.

Krok 3: Vyzvánění

Vezměte horní kroužek ze světla „Stick and Click“a odřízněte všechny šroubové úchyty na vnitřním ráfku.

Odřízněte malý okraj na okraji pro dráty z pásu.

Odlepte kryt lepicí pásky na zadní straně NeoPixelů (pokud existuje) a přilepte je dovnitř kroužku, přičemž každý konec proužku bude přesně v zářezu, který jsme vytvořili.

Pomocí horkého lepidla pevně zajistěte okraje pásu

Po úplném vychladnutí lepidla znovu otestujte pixely. To má zajistit, aby nikdo nebyl vybíravý na teplo a curling (několik mých bylo).

Krok 4: Namontujte

Vystřihněte dva malé obdélníky ze dřeva o průměru 1/4 palce, přibližně na výšku prstenu a 1 2/3krát širší.

Přilepte je navzájem rovnoběžně na obě strany drátů z prstence, vyplňte mezeru a dráty mezi nimi zcela pokryjte lepidlem.

Opatrně zatlačte přebytečnou délku drátu zpět do ohebného krku a poté přilepte kousky dřeva na konec krku pomocí velkého množství lepidla a pečlivě vyplňte všechny mezery (bez vyplnění krku lepidlem).

Krok 6: Dokončení

Pokud chcete, můžete prsten namalovat a nasadit libovolnou barvu. Upřednostňoval jsem stříbrnou povrchovou úpravu, takže jsem použil pouze Sharpie k zakrytí loga, které bylo (otravně) vytištěno na prstenu. Totéž platí pro zbytek lampy.

Nyní můžeme přejít k dokončení finálního kódu!

Krok 8: Kódy a testy

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

Nyní tedy vše, co musíme udělat, je naprogramovat lampu a vyzkoušet ji. V příloze je aktuální verze kódu (rev1.0), tento kód jsem celkem rozsáhle testoval a funguje velmi dobře. Pracuji na rev2.0, kde jsou tlačítka konfigurována jako externí přerušení, takže mezi režimy lze snadněji přepínat, ale tato verze je buggy a ještě není připravena k vydání. U aktuální verze musíte podržet tlačítko, dokud nespustí smyčku Debounce a nerozpozná změnu stavu, což může být na delších „dynamických“smyčkách nepříjemné. Níže je uveden kód s některými vysvětleními napsanými (stejná vysvětlení jsou i ve verzi ke stažení).

#include #ifdef _AVR_ #include #endif

#definovat PIN 9

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

// Parametr 1 = počet pixelů v pásu

// Parametr 2 = počet pinů Arduino (většina je platných) // Parametr 3 = příznaky typu pixelu, sčítejte podle potřeby: // NEO_KHZ800 bitový tok 800 KHz (většina produktů NeoPixel s LED diodami WS2812) // NEO_KHZ400 400 KHz (klasický ' v1 '(ne v2) pixely FLORA, ovladače WS2811) // NEO_GRB Pixely jsou zapojeny pro bitový tok GRB (většina produktů NeoPixel) // NEO_RGB Pixely jsou zapojeny pro bitový tok RGB (v1 pixely FLORA, nikoli v2) // NEO_RGBW Pixely jsou zapojeny pro RGBW bitstream (produkty NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// A teď bezpečnostní zpráva od našich přátel z Adafruit:

// DŮLEŽITÉ: Chcete -li snížit riziko vyhoření NeoPixel, přidejte napříč kondenzátor 1000 uF

// Napájení pixelů, přidejte odpor 300 - 500 Ohm na vstup dat prvního pixelu // a minimalizujte vzdálenost mezi Arduinem a prvním pixelem. Vyhněte se připojení // na živém okruhu … pokud musíte, nejprve připojte GND.

// Proměnné

int buttonState1; int buttonState2; // aktuální čtení ze vstupního pinu int lastButtonState1 = LOW; // předchozí čtení ze vstupního pinu int lastButtonState2 = LOW; int režim; // režim našich světel, může být jedním ze 16 nastavení (0 až 15) int brightVal = 0; // jas/ rychlost, nastavený potenciometrem

// následující proměnné jsou dlouhé, protože čas měřený v milisekundách, // se rychle stane větším číslem, než je možné uložit do int. dlouhý lastDebounceTime = 0; // naposledy byl výstupní pin přepnut long debounceDelay = 50; // doba odskoku; zvýšit, pokud výstup bliká

void debounce () {

// načíst stav přepínače do lokální proměnné: int reading1 = digitalRead (BUTTON1); int reading2 = digitalRead (BUTTON2); // Pokud se některé z tlačítek změnilo v důsledku šumu nebo stisknutí: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// resetování časovače odskakování lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// pokud se stav tlačítka definitivně změnil v důsledku stisknutí/uvolnění: if (reading1! = buttonState1) {buttonState1 = reading1; // nastavte jej jako čtení, pokud se změní, pokud (buttonState1 == LOW) {// tyto jsou nastaveny jako aktivní nízkospínací režim ++; if (mode == 16) {mode = 0; }}} if (reading2! = buttonState2) {buttonState2 = reading2; if (buttonState2 == LOW) {mode = mode - 1; if (mode == -1) {mode = 15; }}}} // uložení odečtu pro příště smyčkou lastButtonState1 = reading1; lastButtonState2 = reading2; }

void getBright () {// náš kód pro čtení potenciometru, udává hodnotu mezi 0 a 255. Slouží k nastavení jasu v některých režimech a rychlosti v jiných.

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

// Zde jsou naše barevné režimy. Některé z nich jsou odvozeny z nejpodivnějšího příkladu, jiné jsou původní.

// Vyplňte tečky jednu za druhou barvou (colorwipe, odvozeno od strandtest)

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

// duhové funkce (také odvozené z strandtest)

prázdná duha (uint8_t čekat) {

uint16_t i, j;

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

// Mírně odlišná, díky čemuž je duha rovnoměrně rozložena po celém těle

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

for (j = 0; j <256*5; j ++) {// 5 cyklů všech barev na kolečku pro (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); zpoždění (čekání); }}

// Zadáním hodnoty 0 až 255 získáte hodnotu barvy.

// Barvy jsou přechodem r - g - b - zpět 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átit halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; vrátit halo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

neplatné nastavení () {

// Toto je pro Trinket 5V 16MHz, můžete tyto tři řádky odstranit, pokud nepoužíváte Trinket #if definováno (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Konec cetky speciální kód pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, VÝSTUP); Serial.begin (9600); // ladění věcí halo.begin (); halo.show (); // Inicializujte všechny pixely na 'vypnuto'}

prázdná smyčka () {

debounce ();

//Serial.println(mode); // další ladění //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

if (mode == 0) {

getBright (); pro (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // nastavit všechny pixely na bílou} halo.show (); }; if (mode == 1) {getBright (); pro (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // nastavit všechny pixely na červené} halo.show (); }; if (mode == 2) {getBright (); pro (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // nastavit všechny pixely na zelenou} halo.show (); }; if (mode == 3) {getBright (); pro (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // nastavit všechny pixely na modrou} halo.show (); }; if (mode == 4) {getBright (); pro (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // nastavit všechny pixely na azurovou} halo.show (); }; if (mode == 5) {getBright (); pro (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // nastavit všechny pixely na purpurovou/purpurovou} halo.show (); }; if (mode == 6) {getBright (); pro (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // nastavit všechny pixely na oranžové/žluté} halo.show (); }; if (mode == 7) {// nyní 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); // bílá}; if (mode == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // oranžová/žlutá}; if (mode == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // tyrkysová }; if (mode == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // fialová/purpurová}; if (mode == 14) {// poslední dva jsou řízení rychlosti, protože jas je dynamický getBright (); duha (brightVal); }; if (mode == 15) {getBright (); rainbowCycle (brightVal); }; zpoždění (10); // nechte procesor trochu odpočinout}

Krok 9: Velké finále

Velké finále
Velké finále

A nyní máme fantastickou, super-jasnou malou lampu!

Odtud to můžete dále upravit, nebo to nechat tak, jak to je. Můžete změnit kód nebo dokonce napsat úplně nový. Základnu můžete zvětšit a přidat baterie. Můžete přidat fanouška. Můžete přidat další NeoPixely. Seznam všeho, co byste s tím mohli dělat, je téměř nekonečný. Říkám „téměř“, protože jsem si docela jistý, že stále nemáme technologii, která by to převedla na generátor mini portálu (bohužel), ale kromě takových věcí je jediným limitem vaše představivost (a do určité míry jak jsem nedávno našel, nástroje ve vaší dílně). Ale pokud nemáte nástroje, nenechte se tím zastavit, pokud opravdu chcete něco udělat, vždy existuje způsob.

To je součástí pointy tohoto projektu, dokázat sobě (a v menší míře i světu), že dokážu vyrábět užitečné věci, které by si přáli i ostatní lidé, i když vše, co mám, je opravdová nevyžádaná hromada starých a sešrotovaných komponenty a přihrádka se zásobami Arduino.

Tady skončím, protože si myslím, že tento dopadl docela dobře. Pokud máte návrh na vylepšení nebo dotaz ohledně mých metod, zanechte prosím níže uvedený komentář. Pokud jste to udělali, vyfoťte to, všichni to chceme vidět!

Pokud se vám to líbí, nezapomeňte hlasovat!

Jako vždy se jedná o projekty Dangerously Explosive, jeho celoživotního poslání „Odvážně stavět to, co stavět chcete, a další!“

Zbytek mých projektů najdete zde.

Děkujeme za přečtení a přejeme šťastné tvoření!

Doporučuje: