Taula de continguts:

HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 passos (amb imatges)
HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 passos (amb imatges)

Vídeo: HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 passos (amb imatges)

Vídeo: HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 passos (amb imatges)
Vídeo: DIY HALO Lamp Rev1.0 - Powered by Arduino Nano, 15+ Color Modes 2024, Juny
Anonim
Image
Image
HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels
HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels
HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels
HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels

En aquest instructiu, us mostraré com construir HALO o Handy Arduino Lamp Rev1.0.

HALO és un llum senzill, alimentat per Arduino Nano. Té una petjada total d’uns 2 "per 3" i una base de fusta ponderada per a una estabilitat extrema. El coll flexible i els 12 NeoPixels súper brillants li permeten il·luminar fàcilment tots els detalls de qualsevol superfície. HALO disposa de dos polsadors per desplaçar-se per diferents modes de llum, dels quals hi ha 15 preprogramats. A causa de l’ús de l’Arduino Nano com a processador, podeu reprogramar-lo amb funcions addicionals. El potenciòmetre únic s’utilitza per ajustar la brillantor i / o la velocitat a la qual es mostra un mode. Una construcció metàl·lica senzilla fa que HALO sigui un llum molt resistent, adequat per a l’ús en qualsevol taller. La facilitat d’ús s’afegeix al regulador de potència integrat de Nano, de manera que HALO es pot alimentar mitjançant un port USB o el connector de barril estàndard de 5 mm de la part posterior.

Espero veure molta gent utilitzant aquestes làmpades en un futur proper, perquè hi ha moltes possibilitats que s’obren amb aquest disseny. Si us plau, deixeu una votació al concurs de microcontroladors si us agrada això o us sembla útil d'alguna manera, ho agrairia molt.

Abans d’entrar en aquest instructiu, voldria donar un breu agraïment a tots els meus seguidors i a qualsevol persona que hagi comentat, favorit o votat algun dels meus projectes. Gràcies a vosaltres, la meva instrucció de Cardboard es va convertir en un gran èxit, i al meu entendre, ara sóc una fita important a l’hora d’escriure-ho a prop de 100 seguidors. Agraeixo tot el suport que tinc per part de vosaltres quan poso el meu Ible i, quan es tracti d’això, no seria on estic avui sense vosaltres. Dit això, gràcies a tothom.

NOTA: Al llarg d’aquest instructiu hi ha frases en negreta. Aquestes són les parts importants de cada pas i no s’han d’ignorar. No sóc jo cridant ni sent maleducat intencionadament, simplement intento una nova tècnica d’escriptura per emfatitzar millor el que s’ha de fer. Si no us agrada i preferiu com abans tendia a escriure els meus passos, feu-m'ho saber als comentaris i tornaré al meu vell estil.

Pas 1: recollida de materials

Recollida de materials
Recollida de materials
Recollida de materials
Recollida de materials
Recollida de materials
Recollida de materials
Recollida de materials
Recollida de materials

Quantes vegades ho he de dir? Tingueu sempre el que necessiteu i estareu garantit que podreu construir alguna cosa fins a la fi.

Nota: Alguns d'aquests són enllaços d'afiliats (marcats com a "al"), rebré una petita compensació si els compreu sense cap cost addicional per a vosaltres. Gràcies si compreu a través dels enllaços

Parts:

1x Arduino Nano Nano - al

1 potenciómetre rotatiu de 10 k paquet de 5 potenciómetres de 10 k - al

1 x presa de barril de 5 mm (la meva es recicla a partir d’un Arduino Uno fregit) Femella de barril (paquet de 5) - al

2x polsadors momentanis de 2 pins de 10 paquets de polsador SPST - al

NeoPixels 12x d'una cadena de 60 LED / metre (qualsevol equivalent, per exemple, WS2812B, funcionarà) Adafruit NeoPixels

Una làmina d'alumini de 0,5 mm

El coll flexible d'un vell encenedor flexible

L'anell superior de la coberta d'un llum d'armari LED "Stick and Click" Llum d'armari LED - al

Un petit full de fusta contraxapada de 1/4 de polzada

Un pes pesat i pla de metall de dimensions (aproximadament) 1,5 "per 2,5" per 0,25"

Cable elèctric de nucli cadenat

Eines:

Pistola i cola calenta

Soldador i soldador

Trepant elèctric sense fils i petits trossos de gir diferents

Ganivet X-acto (o un ganivet utilitari)

Decapants de filferro

Alicates

Talladors / retalladors de filferro

Tisores resistents

Si no teniu el pes pla de metall, també necessiteu:

1 rotlle de soldadura barata (no les coses que faràs servir per soldar) Soldadura barata sense plom

Espelma d'alcohol (o un cremador Bunsen)

Un plat d'acer endurit de color petit que no us importa arruïnar (o un petit gresol si en teniu)

Un trípode per a aquest plat / gresol (vaig fer el meu amb filferro d'acer de calibre 12)

Un plat vegetal de fang (un d'aquests objectes que passa sota l'olla)

Una mica de paper d'alumini

NOTA: Si teniu un kit de soldadura o una impressora 3D, és possible que no necessiteu totes les eines que es detallen aquí.

Pas 2: augmentar el pes

Fer el pes
Fer el pes
Fer el pes
Fer el pes
Fer el pes
Fer el pes

Aquest és un pas força difícil i heu de tenir molta precaució en fer-ho. Si teniu un pes pesat de metall o un imant de neodimi pla d’uns 2,75 "per 1,75" per 0,25 ", us recomanaria fer-lo servir (i l'imant fins i tot us permetria situar la làmpada de costat sobre les superfícies metàl·liques!).

Exempció de responsabilitat: No sóc responsable de cap lesió per part vostra, així que feu servir el sentit comú

A més, feu-ho a l'exterior sobre una superfície de formigó que no us importarà si es crema una mica (això només és una precaució). No tinc imatges per a aquest procés perquè una càmera hauria estat una distracció extra que no necessitava ni volia.

En primer lloc, feu un motlle petit amb paper d'alumini o argila humida, de 2 3/4 polzades per 1 3/4 polzades per 1/4 polzades en les dimensions interiors. Pot ser una forma ovoide com la meva o un rectangle. Utilitzeu diverses capes de paper d'alumini o capes gruixudes d'argila.

Col·loqueu el motlle al plat vegetal de ceràmica i ompliu tant el motlle com la safata amb aigua freda.

Agafeu la vostra espelma d’alcohol / cremador de bunsen i col·loqueu el plat / gresol d’acer al trípode perquè la flama escalfi el centre del plat (quan s’encengui). Abans d’encendre el cremador, assegureu-vos de tenir com a mínim 1 alicates o tenalles per treballar metalls, si no 2.

És una bona idea portar guants de cuir, mànigues llargues, pantalons llargs, sabates de punta tancada i protecció dels ulls durant els següents passos

Enrotlleu i despreneu un munt de soldadura barata de la bobina i col·loqueu-la al plat d’acer i, a continuació, enceneu el cremador. Espereu fins que la bobina es fongui completament i, a continuació, comenceu a introduir la resta de la soldadura al plat a un ritme moderat. Si la soldadura té colofònia, això pot cremar espontàniament per la calor, produint una flama de color groc pàl·lid i fum negre. No us preocupeu, això m’ha passat diverses vegades i és perfectament normal.

Continueu introduint la soldadura al plat fins que es fongui l'últim.

Deixeu que es desapareguin completament les flames de la colofònia que es consumeix i utilitzeu les alicates / pinces per agafar el plat i remoleneu suaument el metall fos dins, mantenint-lo amb cura a la flama.

Després d'estar segur que tota la soldadura està completament liquada i a una bona temperatura calenta, traieu-la ràpidament i amb cura de la flama i aboqueu-la al motlle. Hi haurà un fort xiulet i vapor mentre part de l’aigua es vaporitza i la resta surt forçada del motlle per substituir-la per soldadura fosa.

Deixeu refredar la soldadura, apagueu el cremador / apagueu l’espelma i col·loqueu el plat d’acer en un lloc segur per refredar-lo. És possible que vulgueu abocar aigua freda sobre la soldadura de refrigeració per accelerar la refrigeració i endurir-la encara més. (L'aigua freda fa que l'exterior es refredi més ràpid que l'interior, creant una tensió interna que fa que el metall sigui més dur i rígid, similar a la gota de Prince Rupert.) També podeu fer passar aigua sobre el plat de metall, però això farà que es converteixi en trencadís., sobretot si es fa diverses vegades.

Després que la soldadura s'hagi refredat completament (uns 20 minuts per estar segura), traieu-la del motlle d'alumini.

La meva va acabar més gruixuda per un costat que per l'altre, així que vaig utilitzar un martell per uniformar-lo i aplanar les vores (donant lloc a la forma que veieu a les imatges). Després el vaig lleure lleugerament sota aigua corrent per polir-lo i el vaig deixar de banda per més endavant.

Pas 3: construcció de la carcassa electrònica, pas 1

Construir la carcassa electrònica, pas 1
Construir la carcassa electrònica, pas 1
Construir la carcassa electrònica, pas 1
Construir la carcassa electrònica, pas 1
Construir la carcassa electrònica, pas 1
Construir la carcassa electrònica, pas 1
Construir la carcassa electrònica, pas 1
Construir la carcassa electrònica, pas 1

Aquestes són les parts del shell que allotjaran el Nano, muntaran la interfície i, bàsicament, són les que mantenen la làmpada HALO. Vaig fer la meva amb el meu alumini i cola calenta de 0,5 mm, però si teniu una impressora 3D (alguna cosa que feia temps que intentava aconseguir per a la meva botiga) vaig fer una versió. STL a Tinkercad que he adjuntat aquí perquè descarregar. Com que jo no tinc una impressora, no he pogut provar la impressió del model per veure si tot s’imprimeix correctament, però crec que hauria d’estar bé si afegiu les estructures de suport adequades a la seva talladora. També podeu copiar i editar el fitxer font aquí si necessiteu o voleu un disseny o una estètica lleugerament diferents.

Les dimensions es van derivar del pes metàl·lic que vaig fer fora de soldadura, no de la mida de l'electrònica, però de totes maneres va resultar bastant bé i les dimensions són força òptimes.

Les imatges mostren un ordre de funcionament lleugerament diferent al que escriuré aquí, perquè he ideat un mètode millorat basat en els resultats del meu mètode original.

Si feu el muntatge de xapa com jo, aquí teniu el que heu de fer:

Pas 1: plaques frontals

Talla dues formes idèntiques de mig cercle d'1,5 "d'alçada i 3" d'ample. (Vaig lliurar el meu, de manera que s’assemblen una mica a la part frontal d’una caixa de seguretat).

En una de les dues plaques, foradeu els tres forats dels botons i del potenciòmetre. Els meus tenien un diàmetre de 1/4 de polzada. Aquests poden estar en qualsevol disseny, però prefereixo que el meu potenciòmetre estigui lleugerament elevat al centre, amb els botons a banda i banda formant un triangle isòscel. Quan perforo, sempre faig un petit forat pilot abans d’anar a la broca de mida requerida, ajuda a centrar els forats i els fa una mica més nets.

Pas 2: portada arquejada

Doblegueu sobre una peça d'alumini per ajustar-la al voltant de la corba d'una de les plaques frontals i marqueu la longitud adequada de la vora.

Retalleu una tira d’aquesta longitud d’uns 2 centímetres d’amplada i formeu-la en un arc que coincideixi amb la forma de la corba de les plaques frontals a banda i banda.

Cerqueu el punt central a la part superior de la corba i practiqueu un forat per ajustar-lo al coll flexible de l’encenedor. Vaig compensar les vallades posteriors de la meva perquè la meva làmpada tindrà sobretot el coll inclinat cap endavant mentre estigui en ús, així que volia afegir-hi una mica de contrapès. El meu coll flexible tenia una mica més de 1/4 de polzada de diàmetre, de manera que vaig fer servir una mica de 1/4 de polzada (el bit de gir més gran que tinc menys de 3/4 de polzada) i vaig acurar trepant per forar el forat fins que quedi el coll.

Ara que tenim les parts per a l'intèrpret d'ordres, el següent pas és afegir components electrònics i muntar-los.

Pas 4: construcció de la carcassa electrònica, pas 2

Construir la carcassa electrònica, pas 2
Construir la carcassa electrònica, pas 2
Construir la carcassa electrònica, pas 2
Construir la carcassa electrònica, pas 2
Construir la carcassa electrònica, pas 2
Construir la carcassa electrònica, pas 2
Construir la carcassa electrònica, pas 2
Construir la carcassa electrònica, pas 2

Ara afegim els botons i el potenciòmetre i ho posem tot junts.

Pas 1: botons i cargols

Descargoleu les femelles hexagonals dels botons i del potenciòmetre. Hi ha d’haver un dispositiu d’anell de subjecció a sota de la femella, deixeu-lo al seu lloc.

Introduïu cada un dels components pel seu orifici respectiu i torneu a cargolar les femelles per fixar-les al lloc. Estrenyeu les femelles fins al punt que esteu segur que cada component està completament segur.

Pas 2. Flexió del coll

Introduïu el coll flexible a través del forat de la part superior de la peça corba. Enganxeu calent o soldeu (si teniu l'equip) el coll ben fixat.

Si utilitzeu cola calenta com jo, és una bona idea enganxar-la amb molta cola per ambdós costats repartits per una àrea gran per evitar que la cola es desenganxi més tard.

Pas 3: muntatge de l'intèrpret d'ordres (no s'aplica a l'intèrpret d'ordres imprès en 3D)

Feu servir les varetes de soldadura o la cola calenta per fixar les plaques frontals i posteriors als llocs respectius de la coberta arquejada. Vaig trigar un parell d’intents perquè la meva cola s’enganxés i, com abans, el truc és utilitzar molta cola als dos costats de l’articulació, igual que el coll. Com més gran sigui la zona coberta per la cola, millor quedarà enganxada.

Ara que tenim l’intèrpret d’ordres, podem continuar afegint tots els bits de circuit.

Pas 5: afegir productes electrònics

Addició d’electrònica
Addició d’electrònica
Addició d’electrònica
Addició d’electrònica
Addició d’electrònica
Addició d’electrònica

I aquí teniu la part divertida: soldar! Sincerament, les últimes setmanes m’he cansat una mica de soldar, perquè últimament ho he estat fent moltíssim per intentar acabar un altre projecte que hauria de presentar aviat (vigileu una nova versió radicalitzada de la meva pantalla robòtica plataformes), cosa que fa que arruino un ferro i en tinc un altre … De tota manera, aquí no hi ha molt a soldar, de manera que això hauria de ser força senzill.

Nota: Si el vostre Nano ja té capçaleres de pins, us recomanaria desoldar-les per a aquest projecte, només s’interposaran.

Hi ha un diagrama a les imatges anteriors; podeu seguir-lo si voleu.

Pas 1: interfície

Des de cadascun dels interruptors, soldeu un cable d’un sol pin a un pin lateral del potenciòmetre. Soldeu un cable d’aquest mateix passador lateral a un passador de terra del Nano.

Soldeu un cable del pin central del potenciòmetre a A0 al Nano.

Soldeu un cable del pin desconnectat de qualsevol dels interruptors a A1 del Nano.

Soldeu un cable del pin desconnectat de l’altre interruptor a A2 del Nano.

Nota: no importa quin commutador sigui quin, podeu canviar-los molt fàcilment al codi, a més del fet que un commutador simplement fa el contrari de l’altre.

Talla una longitud de filferro 4 polzades més que el coll flexible i tira els dos costats. Amb un Sharpie, marqueu un costat amb una sola línia.

Soldeu un cable fins a l'últim pas lateral no connectat del potenciòmetre, torceu l'extrem no connectat d'aquest cable juntament amb l'extrem no marcat del cable des de l'últim subpàs.

Soldar aquest extrem unit a 5V al Nano.

Pas 2: Display i cables d'alimentació

Talla 2 longituds de filferro de 4 polzades més que el coll flexible i tira els dos extrems.

Amb un Sharpie, marqueu els extrems de cada filferro, un fil amb 2 línies i un amb 3.

Soldeu el cable amb 2 línies al pin digital 9 del Nano.

A la presa de canó de 5 mm, soldeu un cable del pin central (positiu) a Vin al Nano.

Soldeu un altre cable a un passador lateral (terra / negatiu) del gat.

Gireu el cable llarg amb 3 línies junt amb el cable del passador lateral de la presa del canó.

Soldeu aquests cables al passador GND obert del Nano.

Aïlleu les connexions amb cinta elèctrica o cola calenta quan sigui necessari.

Pas 3: tallar forats (només a la versió metàl·lica, si heu imprès la coberta en 3D hauríeu d'estar bé)

Feu un forat al costat de la coberta del port USB del Nano amb una broca i un ganivet X-acto o utilitat.

Feu un altre forat de la mida de la cara de la presa del barril a la part posterior de la coberta, preferiblement més a prop del costat oposat al forat del port USB.

Pas 4: muntatge de components

Introduïu els tres cables llargs pel coll flexible i cap a l’altre costat.

Utilitzeu molta cola calenta, munteu el gat del canó al lloc amb els passadors cap a la part superior de la coberta.

Una vegada més amb molta cola calenta, munteu el Nano al lloc, amb el botó de reinici cap avall i el port USB a la ranura. Vaig fer un "pont de cola calenta" entre el gat i el Nano, cosa que fa que cadascun mantingui l'altre fermament al seu lloc.

Ara podem passar a fer la base ponderada.

Pas 6: Base ponderada

Base ponderada
Base ponderada
Base ponderada
Base ponderada
Base ponderada
Base ponderada

Estic segur de les meves habilitats de soldar i ho tenia ben planificat, així que vaig avançar i vaig afegir la base abans de provar el codi. Si teniu menys confiança en les vostres habilitats, us suggeriria saltar-vos aquest pas i tornar-hi al final quan sabeu que tot funciona.

Si heu creat la versió impresa en 3D, podeu ometre el primer pas i passar al segon.

Pas 1: fusta

A partir d’un full de fusta contraxapada d’1 / 4 polzades, talleu una base d’uns 3 polzades per 2 polzades.

Poseu les vores per suavitzar-les i traieu-les.

Pas 2: Pes

En primer lloc, assegureu-vos que peseu, ja sigui que un imant, un metall o el de soldadura personalitzat s’adapti a les vores de la coberta metàl·lica que hem fet. El meu era una mica gran en una direcció, així que em vaig afaitar una mica del costat amb un ganivet X-acto. Si el vostre no és el tipus on podeu fer-ho, és possible que hàgiu de jugar amb un disseny de base diferent.

Enganxeu en calent el vostre pes al centre de la peça de fusta contraxapada o, en el cas del disseny imprès en 3D, a la zona de "safata" central que he dissenyat per a aquest propòsit.

Pas 3: base

Col·loqueu la coberta metàl·lica sobre el pes i centreu-la a la base de fusta. (En el cas del disseny imprès en 3D, introduïu-lo a les ranures prefabricades.)

Assegureu-vos que el pes no interfereixi amb cap element electrònic

Feu servir cola calenta per fixar la base al seu lloc. Feu servir prou per assegurar una connexió ferma.

Ara que tenim la caixa de control totalment feta, passem als llums.

Pas 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

La part inspiradora del nom d’aquesta làmpada és l’anell d’aureola NeoPixel que utilitzarem com a font d’il·luminació. Aquesta peça en particular es pot modificar o substituir per qualsevol anell LED NeoPixel o dirigible individualment, si es desitja.

Pas 1: soldar

Tallar una tira de NeoPixels de 12 LED de longitud.

Soldeu el passador GND al fil del coll flexible que té 3 línies.

Soldeu el pin Din al fil que té 2 línies.

Soldeu el pin de 5V al cable que té 1 línia.

Pas 2: proveu els llums

Descarregueu i instal·leu la biblioteca Adafruit_NeoPixel i obriu el codi "strandtest".

Canvieu el PIN constant a 9.

Canvieu la línia on es defineix la tira de manera que estigui configurada per a 12 LED.

Pengeu el codi a Nano i assegureu-vos que tots els vostres LED funcionin correctament.

Substituïu els LEDs defectuosos per altres que funcionin, fins que funcioni tota la tira.

Pas 3: toqueu

Agafeu l'anell superior d'un llum "Stick and Click" i talleu els muntatges de cargol de la vora interior.

Talleu una petita osca a la vora dels cables de la tira.

Peleu la tapa de la cinta adhesiva a la part posterior dels NeoPixels (si n’hi ha) i enganxeu-los a l’interior de l’anell, amb els dos extrems de la tira al voltant de la osca que hem fet.

Feu servir cola calenta per fixar fermament les vores de la tira

Després que la cola s'hagi refredat completament, torneu a provar els píxels. Això és per assegurar-se que cap sigui curulós pel que fa a la calor i el curling (alguns dels meus eren).

Pas 4: muntar

Retalleu dos petits rectangles de fusta de 1/4 de polzada, aproximadament l’alçada de l’anell i 1 2/3 vegades més amples.

Enganxeu-los paral·lelament entre ells a banda i banda dels cables de l'anell, omplint el buit i cobrint els cables completament amb cola.

Torneu a empènyer l'excés de longitud de fil cap enrere al coll flexible i, a continuació, enganxeu les peces de fusta a l'extrem del coll, utilitzant molta cola i omplint els buits amb cura (sense omplir el coll de cola).

Pas 6: Acabat

Podeu pintar l’anell i muntar qualsevol color si voleu, he preferit l’acabat platejat, de manera que només he utilitzat un Sharpie per tapar el logotip que (molestament) s’imprimia a l’anell. El mateix passa amb la resta de làmpades.

Ara podem continuar per acabar amb el codi final.

Pas 8: codis i proves

Codis i proves
Codis i proves
Codis i proves
Codis i proves

Ara, tot el que hem de fer és programar la llum i provar-la. S'adjunta la versió actual del codi (rev1.0), he provat aquest codi amb força extensió i funciona molt bé. Estic treballant en una rev2.0 on els botons es configuren com a interrupcions externes perquè els modes es puguin canviar més fàcilment, però aquesta versió és errònia i encara no està preparada per al llançament. Amb la versió actual, heu de mantenir premut el botó fins que executi el bucle Debounce i reconegui el canvi d'estat, que pot resultar molest en els bucles "Dinàmics" més llargs. A continuació es mostra el codi amb algunes explicacions escrites (hi ha les mateixes explicacions a la versió descarregable).

#include #ifdef _AVR_ #include #endif

#defineix el PIN 9

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

// Paràmetre 1 = nombre de píxels a la tira

// Paràmetre 2 = número de pin Arduino (la majoria són vàlids) // Paràmetre 3 = indicadors de tipus de píxels, afegiu-los segons calgui: // NEO_KHZ800 800 KHz bitstream (la majoria de productes NeoPixel amb LEDs WS2812) // NEO_KHZ400 400 KHz (clàssic ') v1 '(no v2) píxels FLORA, controladors WS2811) // NEO_GRB Els píxels estan connectats per al flux de bits GRB (la majoria dels productes NeoPixel) // Els píxels NEO_RGB estan connectats per al flux de bits RGB (v1 píxels FLORA, no v2) // Els píxels NEO_RGBW estan connectats per RGBW bitstream (productes NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// I ara, un missatge de seguretat dels nostres amics d'Adafruit:

// IMPORTANT: per reduir el risc de cremada de NeoPixel, afegiu un condensador de 1000 uF

// cables de potència de píxels, afegiu una resistència de 300 a 500 Ohm a l'entrada de dades del primer píxel // i minimitzeu la distància entre Arduino i el primer píxel. Eviteu connectar // a un circuit en directe … si cal, connecteu primer GND.

// Les variables

int buttonState1; int buttonState2; // la lectura actual del pin d'entrada int lastButtonState1 = LOW; // la lectura anterior del pin d'entrada int lastButtonState2 = LOW; mode int; // el mode de les nostres llums, pot ser un dels 16 paràmetres (de 0 a 15) int brightVal = 0; // la brillantor / velocitat, tal com estableix el potenciòmetre

// les variables següents són llargues perquè el temps, mesurat en mil·lisegons, // es convertirà ràpidament en un nombre més gran del que es pot emmagatzemar en un int. long lastDebounceTime = 0; // l'última vegada que es va commutar el pin de sortida llarg debounceDelay = 50; // el temps de rebut; augmenta si la sortida parpelleja

buid debounce () {

// llegeix l'estat del commutador en una variable local: int reading1 = digitalRead (BUTTON1); int reading2 = digitalRead (BOTÓ2); // Si algú dels botons ha canviat, a causa d'un soroll o de prémer: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// restableix el temporitzador de descompte lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// si l'estat del botó ha canviat definitivament a causa de prémer / deixar anar: if (reading1! = buttonState1) {buttonState1 = reading1; // configureu-lo com a lectura si canvia si (buttonState1 == LOW) {// es defineixen com a mode de commutadors baixos actius ++; if (mode == 16) {mode = 0; }}} if (reading2! = buttonState2) {buttonState2 = reading2; if (buttonState2 == LOW) {mode = mode - 1; if (mode == -1) {mode = 15; }}}} // deseu la lectura per a la propera vegada a través del bucle lastButtonState1 = reading1; lastButtonState2 = lectura2; }

void getBright () {// el nostre codi per llegir el potenciòmetre, proporciona un valor entre 0 i 255. S'utilitza per configurar la brillantor en alguns modes i la velocitat en altres.

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

// Aquí teniu els nostres modes de color. Alguns d'aquests es deriven de l'exemple de prova més intensa, d'altres són originals.

// Ompliu els punts un darrere l’altre d’un color (colorwipe, derivat de la prova de cadena)

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

// funcions arc de Sant Martí (també derivades de strandtest)

arc de Sant Martí buit (uint8_t espera) {

uint16_t i, j;

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

// Lleugerament diferent, això fa que l’arc de Sant Martí estigui distribuït per igual

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

for (j = 0; j <256 * 5; j ++) {// 5 cicles de tots els colors de la roda per a (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); retard (esperar); }}

// Introduïu un valor de 0 a 255 per obtenir un valor de color.

// Els colors són una transició r - g - b - torna a 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; retorn halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos - = 170; retorn halo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

configuració nul·la () {

// Això és per a Trinket 5V 16 MHz, podeu eliminar aquestes tres línies si no utilitzeu un # Trinket definit (_AVR_ATtiny85_) si (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Fi del codi especial de pinzell pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, OUTPUT); Serial.begin (9600); // coses de depuració halo.begin (); halo.show (); // Inicialitza tots els píxels a "off"}

bucle buit () {

debounce ();

//Serial.println(mode); // més depuració //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)); // estableix tots els píxels en blanc} halo.show (); }; if (mode == 1) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // estableix tots els píxels en vermell} halo.show (); }; if (mode == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // estableix tots els píxels en verd} halo.show (); }; if (mode == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // estableix tots els píxels en blau} halo.show (); }; if (mode == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // estableix tots els píxels en cian} halo.show (); }; if (mode == 5) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // estableix tots els píxels a porpra / magenta} halo.show (); }; if (mode == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // estableix tots els píxels en taronja / groc} halo.show (); }; if (mode == 7) {// ara els modes dinàmics getBright (); colorWipe (halo. Color (brillantVal, 0, 0), 50); // Vermell}; if (mode == 8) {getBright (); colorWipe (halo. Color (0, BrightVal, 0), 50); // Verd}; if (mode == 9) {getBright (); colorWipe (halo. Color (0, 0, BrightVal), 50); // Blau}; if (mode == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // blanc}; if (mode == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // taronja / groc}; if (mode == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // cian}; if (mode == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // porpra / magenta}; if (mode == 14) {// els dos darrers són control de velocitat, perquè la brillantor és dinàmica getBright (); arc de Sant Martí (brillantVal); }; if (mode == 15) {getBright (); rainbowCycle (brightVal); }; retard (10); // permetre que el processador descansi una mica}

Pas 9: la gran final

La Gran Final
La Gran Final

I ara tenim una llumeta fantàstica i súper brillant.

Podeu modificar-lo més a partir d’aquí o deixar-lo tal qual. Podeu canviar el codi o fins i tot escriure’n un de complet. Podeu ampliar la base i afegir piles. Podeu afegir un ventilador. Podeu afegir més NeoPixels. La llista de tot el que podeu fer amb això és gairebé infinita. Dic "gairebé" perquè estic segur que encara no tenim la tecnologia per convertir-ho en un generador de mini portal (malauradament), però a part de coses així, l'únic límit és la vostra imaginació (i fins a cert punt, com he trobat recentment, les eines del vostre taller). Però si no teniu les eines, no deixeu que això us aturi, si realment voleu fer alguna cosa, sempre hi ha una manera.

Això és part del punt d’aquest projecte, demostrar-me a mi mateix (i en menor mesura, al món) que puc fer coses útils que també voldrien a altres persones, fins i tot si tot el que tinc és una autèntica pila d’escombraries velles i desballestades components i una paperera de subministraments Arduino.

Deixaré aquí, perquè crec que va sortir força bé. Si teniu algun suggeriment de millora o alguna pregunta sobre els meus mètodes, deixeu un comentari a continuació. Si ho heu fet, feu una foto, tots ho volem veure!

No us oblideu de votar si us agrada això.

Com sempre, aquests són els projectes de Dangerously Explosive, la seva missió de tota la vida: "Construir amb valentia el que voleu construir i molt més!"

Podeu trobar la resta dels meus projectes aquí.

Gràcies per llegir i Happy Making.

Recomanat: