Tabla de contenido:

HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 pasos (con imágenes)
HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 pasos (con imágenes)

Video: HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 pasos (con imágenes)

Video: HALO: Handy Arduino Lamp Rev1.0 W / NeoPixels: 9 pasos (con imágenes)
Video: DIY HALO Lamp Rev1.0 - Powered by Arduino Nano, 15+ Color Modes 2024, Junio
Anonim
Image
Image
HALO: Práctica lámpara Arduino Rev1.0 con NeoPixels
HALO: Práctica lámpara Arduino Rev1.0 con NeoPixels
HALO: Práctica lámpara Arduino Rev1.0 con NeoPixels
HALO: Práctica lámpara Arduino Rev1.0 con NeoPixels

En este instructivo, le mostraré cómo construir HALO o Handy Arduino Lamp Rev1.0.

HALO es una lámpara simple, impulsada por Arduino Nano. Tiene una huella total de aproximadamente 2 "por 3" y una base de madera ponderada para una estabilidad extrema. El cuello flexible y los 12 NeoPixels superbrillantes le permiten iluminar fácilmente cada detalle en cualquier superficie. HALO cuenta con dos botones para alternar entre diferentes modos de luz, de los cuales hay 15 preprogramados. Debido al uso del Arduino Nano como procesador, existe la posibilidad de reprogramarlo con funciones adicionales. El potenciómetro único se utiliza para ajustar el brillo y / o la velocidad a la que se muestra un modo. Una construcción de metal simple hace de HALO una lámpara muy duradera, apta para su uso en cualquier taller. La facilidad de uso se ve agravada por el regulador de potencia integrado del Nano, por lo que HALO se puede alimentar a través de USB o del conector de barril estándar de 5 mm en la parte trasera.

Espero ver a muchas personas utilizando estas lámparas en un futuro cercano, porque hay muchas posibilidades que se abren con este diseño. Deje un voto en el Concurso de Microcontroladores si le gusta esto o lo encuentra útil de alguna manera, se lo agradecería mucho.

Antes de entrar en este Instructable, me gustaría agradecer brevemente a todos mis seguidores y a cualquiera que alguna vez haya comentado, marcado como favorito o votado en cualquiera de mis proyectos. Gracias a ustedes, mi instructable de Cardboard se convirtió en un gran éxito, y ahora, al escribir esto, alcanzo cerca de 100 seguidores, en mi opinión, un gran hito. Realmente aprecio todo el apoyo que recibo de ustedes cuando coloco mis Ible's, y cuando se trata de eso, no estaría donde estoy hoy sin ustedes. Dicho esto, ¡gracias a todos!

NOTA: En todo este Instructable hay frases en negrita. Estas son las partes importantes de cada paso y no deben ignorarse. No soy yo gritando o siendo intencionalmente grosero, simplemente estoy probando una nueva técnica de escritura para enfatizar mejor lo que se debe hacer. Si no le gusta y prefiere cómo solía escribir mis pasos anteriormente, hágamelo saber en los comentarios y volveré a mi estilo anterior.

Paso 1: Recopilación de materiales

Recolección de materiales
Recolección de materiales
Recolección de materiales
Recolección de materiales
Recolección de materiales
Recolección de materiales
Recolección de materiales
Recolección de materiales

¿Cuántas veces tengo que decirlo? Siempre tenga lo que necesita, y tiene la garantía de poder construir algo hasta el final.

Nota: Algunos de estos son enlaces de afiliados (marcados con "al"), obtendré una pequeña compensación si compra a través de ellos, sin costo adicional para usted. ¡Gracias si compras a través de los enlaces

Partes:

1x Arduino Nano Nano - al

1x potenciómetro rotativo de 10k paquete de 5 potenciómetros de 10k - al

1 conector de barril de 5 mm (el mío se recicla de un Arduino Uno frito) conector de barril hembra (paquete de 5) - al

2x pulsadores momentáneos de 2 pines paquete de 10 interruptores pulsadores SPST - al

12x NeoPixels de una hebra de 60 LED / metro (cualquier equivalente, por ejemplo, WS2812B, funcionará) Adafruit NeoPixels

Una hoja de aluminio de 0,5 mm

El cuello flexible de un viejo mechero flexible

El anillo de la cubierta superior de un gabinete de luz LED "Stick and Click" LED Cabinet Light - al

Una pequeña hoja de madera contrachapada de 1/4 de pulgada

Un peso de metal plano y pesado de dimensiones (aproximadamente) de 1,5 "por 2,5" por 0,25"

Cable eléctrico de núcleo trenzado

Instrumentos:

Pistola de pegamento caliente y pegamento

Soldador y soldadura

Taladro eléctrico inalámbrico y una variedad de brocas giratorias pequeñas

Cuchillo X-acto (o un cuchillo multiusos)

Pelacables

Alicates

Cortadores de alambre / tijeras

Tijeras para trabajo pesado

Si no tiene el peso de metal plano, también necesita:

1 rollo de soldadura barata (no es el material que usará para soldar) Soldadura barata sin plomo

Vela de alcohol (o un mechero Bunsen)

Un plato de acero endurecido pequeño que no le importa arruinar (o un crisol pequeño si tiene uno)

Un trípode para dicho plato / crisol (hice el mío con alambre de acero de calibre 12)

Un plato de arcilla para plantas (una de esas cositas que va debajo de la olla)

Un poco de papel de aluminio

NOTA: Si tiene un kit de soldadura o una impresora 3D, es posible que no necesite todas las herramientas que se enumeran aquí.

Paso 2: Hacer el peso

Haciendo el peso
Haciendo el peso
Haciendo el peso
Haciendo el peso
Haciendo el peso
Haciendo el peso

Este es un paso bastante difícil y debe tener mucho cuidado al hacerlo. Si tiene un peso de metal pesado o un imán plano de neodimio de aproximadamente 2.75 "por 1.75" por 0.25 ", recomendaría usarlo en su lugar (¡y el imán incluso le permitiría colocar la lámpara de lado sobre superficies metálicas!).

Descargo de responsabilidad: no soy responsable de ninguna lesión de su parte, así que use el sentido común

Además, haga esto en el exterior sobre una superficie de concreto que no le importará si se quema un poco (esto es solo una precaución). No tengo fotos para este proceso porque una cámara habría sido una distracción extra que no necesitaba ni quería.

Primero, haga un molde pequeño con papel de aluminio o arcilla húmeda, de aproximadamente 2 3/4 pulgadas por 1 3/4 pulgadas por 1/4 de pulgada en las dimensiones interiores. Puede ser una forma ovoide como la mía o un rectángulo. Utilice varias capas de papel de aluminio o capas gruesas de arcilla.

Coloca el molde en el plato de cerámica para plantas y llena tanto el molde como la bandeja con agua fría.

Tome su vela de alcohol apagada / mechero Bunsen y coloque el plato de acero / crisol en el trípode para que la llama caliente el centro del plato (cuando esté encendido). Antes de encender el quemador, asegúrese de tener al menos 1 par de alicates o tenazas para trabajar metales a la mano, si no 2.

Es una buena idea usar guantes de cuero, mangas largas, pantalones largos, zapatos cerrados y protección para los ojos mientras realiza los siguientes pasos

Enrolle y separe un manojo de la soldadura barata del carrete y colóquelo en el plato de acero, luego encienda el quemador. Espere hasta que la bobina se derrita por completo, luego comience a introducir el resto de la soldadura en el plato a un ritmo moderado. Si la soldadura tiene colofonia, esta puede quemarse espontáneamente con el calor, produciendo una llama de color amarillo pálido y humo negro. No te preocupes, esto me ha pasado varias veces y es perfectamente normal.

Continúe introduciendo la soldadura en el plato hasta que se derrita lo último.

Deje que las llamas de la combustión de colofonia se extingan por completo y use los alicates / pinzas para agarrar el plato y haga girar suavemente el metal derretido en el interior mientras lo mantiene cuidadosamente en la llama.

Una vez que esté seguro de que toda la soldadura está completamente licuada y a una buena temperatura caliente, retírela rápida y cuidadosamente de la llama y viértala en el molde. Habrá un fuerte silbido y vapor a medida que parte del agua se vaporiza y el resto se expulsa del molde para ser reemplazado por soldadura fundida.

Deje que la soldadura se enfríe, apague el quemador / apague la vela y coloque el plato de acero en un lugar seguro para enfriar. Es posible que desee verter agua fría sobre la soldadura de enfriamiento para acelerar el enfriamiento y endurecerla aún más. (El agua fría hace que el exterior se enfríe más rápido que el interior, creando una tensión interna que hace que el metal sea más duro y rígido, similar a una gota de Prince Rupert). También puede hacer correr agua sobre su plato de metal, pero esto hará que se vuelva quebradizo., especialmente si se hace varias veces.

Una vez que la soldadura se haya enfriado por completo (unos 20 minutos para que sea seguro), retírela del molde de aluminio.

El mío terminó siendo más grueso en un lado que en el otro, así que usé un martillo para nivelarlo y aplanar los bordes (resultando en la forma que ves en las imágenes). Luego lo lijé ligeramente con agua corriente para pulirlo y lo dejé a un lado para más tarde.

Paso 3: Construcción de la carcasa de la electrónica, Paso 1

Construcción de la carcasa de la electrónica, paso 1
Construcción de la carcasa de la electrónica, paso 1
Construcción de la carcasa de la electrónica, paso 1
Construcción de la carcasa de la electrónica, paso 1
Construcción de la carcasa de la electrónica, paso 1
Construcción de la carcasa de la electrónica, paso 1
Construcción de la carcasa de la electrónica, paso 1
Construcción de la carcasa de la electrónica, paso 1

Estas son las partes de la carcasa que albergarán el Nano, montarán la interfaz y es básicamente lo que mantiene unida a la lámpara HALO. Hice la mía con mi adhesivo de aluminio y pegamento caliente de 0,5 mm, pero si tienes una impresora 3D (algo que he estado tratando de conseguir para mi tienda por un tiempo) hice una versión. STL en Tinkercad que adjunté aquí para que la descargar. Como no tengo una impresora, no pude probar la impresión del modelo para ver si todo se imprime correctamente, pero creo que debería estar bien si agrega las estructuras de soporte adecuadas en su cortadora. También puede copiar y editar el archivo de origen aquí si necesita o desea un diseño o estética ligeramente diferente.

Las dimensiones en realidad se derivaron del peso del metal que fundí para mí mismo con la soldadura, no del tamaño de la electrónica, pero resultó bastante bien de todos modos y las dimensiones son bastante óptimas.

Las imágenes representan un orden de operación ligeramente diferente al que escribiré aquí, esto se debe a que he ideado un método mejorado basado en los resultados de mi método original.

Si está ensamblando a partir de chapa metálica como yo, esto es lo que debe hacer:

Paso 1: placas frontales

Corte dos formas idénticas en forma de semicírculo de aproximadamente 1.5 "de alto y 3" de ancho. (Yo hice los míos a mano alzada, por lo que se parecen un poco al frente de una máquina de discos).

En una de las dos placas, taladre los tres agujeros para los botones y el potenciómetro. Los míos tenían 1/4 de pulgada de diámetro. Estos pueden estar en cualquier diseño, pero prefiero que mi potenciómetro esté ligeramente elevado en el centro, con los botones a cada lado formando un triángulo isósceles. Al perforar, siempre hago un pequeño orificio piloto antes de ir a la broca del tamaño requerido, ayuda a centrar los orificios y los hace un poco más limpios.

Paso 2: cubierta arqueada

Doble una pieza de aluminio para que encaje alrededor de la curva de una de las placas frontales y marque la longitud adecuada del borde.

Corte una tira de esta longitud y de aproximadamente 2 pulgadas de ancho, y forme un arco que coincida con la forma de la curva de las placas frontales a cada lado.

Encuentre el punto central en la parte superior de la curva y taladre un agujero para que encaje en el cuello flexible del encendedor. Desplacé el holeto hacia la parte trasera de la mía porque mi lámpara tendrá principalmente el cuello inclinado hacia adelante mientras está en uso, así que quería agregar un poco de contrapeso a eso. Mi cuello flexible tenía un poco más de 1/4 de pulgada de diámetro, así que utilicé una broca de 1/4 de pulgada (la broca de torsión más grande que tengo que es de menos de 3/4 de pulgada) y simplemente incliné y torcí cuidadosamente el taladre para 'perforar' el orificio hasta que encaje el cuello.

Ahora que tenemos las partes para la carcasa, el siguiente paso es agregar componentes electrónicos y armarlos.

Paso 4: Construcción de la carcasa de la electrónica, Paso 2

Construcción de la carcasa de la electrónica, paso 2
Construcción de la carcasa de la electrónica, paso 2
Construcción de la carcasa de la electrónica, paso 2
Construcción de la carcasa de la electrónica, paso 2
Construcción de la carcasa de la electrónica, paso 2
Construcción de la carcasa de la electrónica, paso 2
Construcción de la carcasa de la electrónica, paso 2
Construcción de la carcasa de la electrónica, paso 2

Ahora agregamos los botones y el potenciómetro, y lo juntamos todo.

Paso 1: botones y pernos

Desatornille las tuercas hexagonales de sus botones y potenciómetro. Debe haber un dispositivo de anillo de agarre debajo de la tuerca, déjelo en su lugar.

Coloque cada uno de los componentes a través de su orificio respectivo, luego vuelva a atornillar las tuercas para asegurar cada uno en su lugar. Apriete las tuercas hasta el punto en que esté seguro de que cada componente está completamente seguro.

Paso 2. Flexionar el cuello

Pase el cuello flexible a través del agujero en la parte superior de la pieza curva. Pegue caliente o suelde (si tiene el equipo) el cuello firmemente en su lugar.

Si usa pegamento termofusible como yo, es una buena idea pegarlo con mucho pegamento en ambos lados extendido sobre un área grande para evitar que el pegamento se despegue más tarde.

Paso 3: Ensamblaje de la carcasa (no se aplica a la carcasa impresa en 3D)

Con una varilla de soldadura o pegamento caliente, fije las placas frontales delantera y trasera en sus respectivos lugares en la cubierta arqueada. Me tomó un par de intentos para que mi pegamento se pegara y, como antes, el truco es usar mucho pegamento en ambos lados de la articulación, al igual que en el cuello. Cuanto mayor sea el área cubierta por el pegamento, mejor se pegará.

Ahora que tenemos el caparazón, podemos pasar a agregar todos los bits del circuito.

Paso 5: Agregar componentes electrónicos

Adición de electrónica
Adición de electrónica
Adición de electrónica
Adición de electrónica
Adición de electrónica
Adición de electrónica

Y aquí está la parte divertida: ¡Soldar! En las últimas semanas, honestamente, me he cansado un poco de soldar, porque lo he estado haciendo mucho últimamente para intentar terminar otro proyecto que debería poner en marcha pronto (esté atento a una nueva versión radicalizada de mi pantalla robótica plataformas), lo que me hace arruinar un hierro y conseguir otro … De todos modos, no hay mucho que soldar aquí, así que esto debería ser bastante sencillo.

Nota: Si su Nano ya tiene encabezados de clavija, recomendaría desoldarlos para este proyecto, solo se interpondrán en el camino.

Hay un diagrama en las imágenes de arriba, puede seguirlo si lo desea.

Paso 1: interfaz

Desde cada uno de los interruptores, suelde un cable de un solo pin a un pin lateral del potenciómetro. Suelde un cable de este mismo pin lateral a un pin de tierra en el Nano.

Suelde un cable desde el pin central del potenciómetro a A0 en el Nano.

Suelde un cable desde el pin no conectado de cualquiera de los interruptores a A1 en el Nano.

Suelde un cable desde el pin no conectado en el otro interruptor a A2 en el Nano.

Nota: No importa qué conmutador es cuál, puede cambiarlos muy fácilmente en el código, además del hecho de que un conmutador simplemente hace lo contrario del otro.

Corte un trozo de alambre 4 pulgadas más largo que el cuello flexible y pele ambos lados. Con un rotulador, marque un lado con una sola línea.

Suelde un cable al último pin lateral no conectado del potenciómetro, tuerza el extremo no conectado de este cable junto con el extremo sin marcar del cable del último subpaso.

Suelde este extremo unido a 5V en el Nano.

Paso 2: Pantalla y cables de alimentación

Corte 2 trozos de alambre 4 pulgadas más largo que el cuello flexible y pele ambos extremos.

Con un Sharpie, marque los extremos de cada cable, un cable con 2 líneas y otro con 3.

Suelde el cable con 2 líneas al pin digital 9 del Nano.

En su conector de barril de 5 mm, suelde un cable desde el pin central (positivo) a Vin en el Nano.

Suelde otro cable a un pin lateral (tierra / negativo) del conector de barril.

Tuerza el cable largo con 3 líneas junto con el cable del pasador lateral del gato de barril.

Suelde estos cables al pin GND abierto del Nano.

Aísle las conexiones con cinta aislante o pegamento caliente donde sea necesario.

Paso 3: Cortar agujeros (solo en la versión de metal, si imprimió en 3D la cubierta, debería estar bien)

Con una broca y un X-acto o un cuchillo de uso general, haga con cuidado un agujero en el costado de la cubierta para el puerto USB del Nano.

Haga otro orificio del tamaño de la cara del conector de barril en la parte posterior de la cubierta, preferiblemente más cerca del lado opuesto al orificio del puerto USB.

Paso 4: Montaje de componentes

Pase los tres cables largos a través del cuello flexible y sáquelos por el otro lado.

Con mucho pegamento caliente, monte el gato de barril en su lugar con los pasadores hacia la parte superior de la cubierta.

Nuevamente, usando mucho pegamento caliente, monte el Nano en su lugar, con el botón de reinicio hacia abajo y el puerto USB en su ranura. Hice un "puente de pegamento caliente" entre el gato de barril y el Nano, lo que hace que cada uno mantenga al otro firmemente en su lugar.

¡Ahora podemos pasar a hacer la base ponderada!

Paso 6: Base ponderada

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

Confío en mis habilidades de soldadura y lo tenía bien planeado, así que seguí adelante y agregué la base antes de probar el código. Si tiene menos confianza en sus habilidades, le sugiero que omita este paso y vuelva al final cuando sepa que todo está funcionando.

Si creó la versión impresa en 3D, puede omitir el primer paso y pasar al segundo.

Paso 1: Madera

De una hoja de madera contrachapada de 1/4 de pulgada, corte una base de aproximadamente 3 pulgadas por 2 pulgadas.

Lije los bordes para alisarlos y quitar las fresas.

Paso 2: peso

Primero, asegúrese de que el peso de su elección, ya sea que un imán, un metal o uno de soldadura personalizada, encaje dentro de los bordes de la cubierta de metal que hicimos. El mío era un poco grande en una dirección, así que me afeité un poco el costado con un cuchillo X-acto. Si el tuyo no es del tipo en el que puedes hacer esto, es posible que tengas que jugar con un diseño base diferente.

Pegue con pegamento caliente su peso en el centro de la pieza de madera contrachapada, o en el caso del diseño impreso en 3D, en el área central de la "bandeja" que diseñé para este propósito.

Paso 3: Base

Coloque la cubierta de metal sobre la pesa y céntrela en la base de madera. (En el caso del diseño impreso en 3D, colóquelo en las ranuras prefabricadas).

Asegúrese de que el peso no interfiera con ninguno de los componentes electrónicos

Use pegamento caliente para asegurar la base en su lugar. Use lo suficiente para asegurar una conexión firme.

Ahora que tenemos nuestra caja de control completamente hecha, pasemos a las luces.

Paso 7: Anillo NeoPixel Halo

Anillo NeoPixel Halo
Anillo NeoPixel Halo
Anillo NeoPixel Halo
Anillo NeoPixel Halo
Anillo NeoPixel Halo
Anillo NeoPixel Halo
Anillo NeoPixel Halo
Anillo NeoPixel Halo

La inspiración para el nombre de esta lámpara, esta parte es el anillo de halo NeoPixel que usaremos como nuestra fuente de iluminación. Esta pieza en particular se puede modificar o reemplazar con cualquier NeoPixel o anillo LED direccionable individualmente, si se desea.

Paso 1: soldadura

Corta una tira de NeoPixels de 12 LED de longitud.

Suelde el pin GND al cable del cuello flexible que tiene 3 líneas.

Suelde el pin Din al cable que tiene 2 líneas.

Suelde el pin de 5V al cable que tiene 1 línea.

Paso 2: prueba las luces

Descargue e instale la biblioteca Adafruit_NeoPixel y abra el código "strandtest".

Cambie el PIN constante a 9.

Cambie la línea donde se define la tira para que esté configurada para 12 LED.

Sube el código al Nano y asegúrate de que todos tus LED funcionen correctamente.

Reemplace los LED defectuosos por otros que funcionen, hasta que toda la tira funcione.

Paso 3: anillo

Tome el anillo superior de una luz "Stick and Click" y corte cualquier tornillo de montaje en el borde interior.

Corta una pequeña muesca en el borde para los cables de la tira.

Despegue la cubierta de la cinta adhesiva en la parte posterior de los NeoPixels (si corresponde) y péguelos dentro del anillo, con cualquiera de los extremos de la tira justo en la muesca que hicimos.

Use pegamento caliente para asegurar firmemente los bordes de la tira

Una vez que el pegamento se haya enfriado por completo, vuelva a probar los píxeles. Esto es para asegurarse de que nadie sea quisquilloso con el calor y el rizado (algunos de los míos lo fueron).

Paso 4: montar

Recorta dos pequeños rectángulos de madera de 1/4 de pulgada, aproximadamente de la altura del anillo y 1 2/3 veces más ancho.

Pégalos en paralelo entre sí a cada lado de los cables del anillo, llenando el espacio y cubriendo los cables entre ellos por completo con pegamento.

Empuje con cuidado cualquier exceso de cable hacia el cuello flexible y luego pegue las piezas de madera en el extremo del cuello, usando mucho pegamento y llenando con cuidado los espacios (sin rellenar el cuello con pegamento).

Paso 6: acabado

Puede pintar el anillo y montar cualquier color si lo desea, yo preferí el acabado plateado, así que solo usé un Sharpie para cubrir el logotipo que estaba (molestamente) impreso en el anillo. Lo mismo ocurre con el resto de la lámpara.

¡Ahora podemos continuar para terminar con el código final!

Paso 8: Códigos y pruebas

Códigos y pruebas
Códigos y pruebas
Códigos y pruebas
Códigos y pruebas

Así que ahora todo lo que tenemos que hacer es programar la lámpara y probarla. Se adjunta la versión actual del código (rev1.0), he probado este código bastante y funciona muy bien. Estoy trabajando en una rev2.0 donde los botones están configurados como interrupciones externas para que los modos se puedan cambiar más fácilmente, pero esta versión tiene errores y aún no está lista para su lanzamiento. Con la versión actual, debe mantener presionado el botón hasta que ejecute el bucle de rebote y reconozca el cambio de estado, que puede ser molesto en los bucles "dinámicos" más largos. A continuación se muestra el código con algunas explicaciones escritas (hay las mismas explicaciones en la versión descargable).

#include #ifdef _AVR_ #include #endif

#define PIN 9

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

// Parámetro 1 = número de píxeles en la tira

// Parámetro 2 = número de pin de Arduino (la mayoría son válidos) // Parámetro 3 = indicadores de tipo de píxel, agregue según sea necesario: // NEO_KHZ800 800 KHz bitstream (la mayoría de los productos NeoPixel con LED WS2812) // NEO_KHZ400 400 KHz (clásico ' v1 '(no v2) píxeles FLORA, controladores WS2811) // NEO_GRB Los píxeles están conectados para el flujo de bits GRB (la mayoría de los productos NeoPixel) // NEO_RGB Los píxeles están conectados para el flujo de bits RGB (píxeles FLORA v1, no v2) // Los píxeles NEO_RGBW están conectados para Flujo de bits RGBW (productos NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// Y ahora, un mensaje de seguridad de nuestros amigos de Adafruit:

// IMPORTANTE: Para reducir el riesgo de quemado de NeoPixel, agregue un capacitor de 1000 uF en

// cables de alimentación de píxeles, agregue una resistencia de 300 a 500 ohmios en la entrada de datos del primer píxel // y minimice la distancia entre Arduino y el primer píxel. Evite conectar // en un circuito vivo … si es necesario, conecte GND primero.

// Variables

int buttonState1; int buttonState2; // la lectura actual del pin de entrada int lastButtonState1 = LOW; // la lectura anterior del pin de entrada int lastButtonState2 = LOW; modo int; // el modo de nuestras luces, puede ser una de 16 configuraciones (0 a 15) int brightVal = 0; // el brillo / velocidad, según lo establecido por el potenciómetro

// las siguientes variables son largas porque el tiempo, medido en milisegundos, // se convertirá rápidamente en un número mayor que el que se puede almacenar en un int. long lastDebounceTime = 0; // la última vez que se alteró el pin de salida long debounceDelay = 50; // el tiempo de rebote; aumentar si la salida parpadea

rebote vacío () {

// lee el estado del conmutador en una variable local: int reading1 = digitalRead (BUTTON1); int lectura2 = digitalRead (BOTÓN2); // Si alguno de los botones cambió, debido al ruido o presionando: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// reinicia el temporizador de supresión de rebotes lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// si el estado del botón ha cambiado definitivamente debido a presionar / soltar: if (reading1! = buttonState1) {buttonState1 = reading1; // establecerlo como lectura si se cambia if (buttonState1 == LOW) {// estos se establecen como conmutadores bajos activos modo ++; if (modo == 16) {modo = 0; }}} if (lectura2! = buttonState2) {buttonState2 = reading2; if (buttonState2 == LOW) {modo = modo - 1; if (modo == -1) {modo = 15; }}}} // guarda la lectura para la próxima vez a través del ciclo lastButtonState1 = reading1; lastButtonState2 = reading2; }

void getBright () {// nuestro código para leer el potenciómetro, da un valor entre 0 y 255. Se usa para configurar el brillo en algunos modos y la velocidad en otros.

int potVal = analogRead (POT); BrightVal = map (potVal, 0, 1023, 0, 255); }

// Aquí están nuestros modos de color. Algunos de estos se derivan del ejemplo de strandtest, otros son originales.

// Rellena los puntos uno tras otro con un color (colorwipe, derivado de strandtest)

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

// funciones de arco iris (también derivadas de strandtest)

arco iris vacío (uint8_t espera) {

uint16_t i, j;

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

// Ligeramente diferente, esto hace que el arco iris se distribuya por igual en todo

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

for (j = 0; j <256 * 5; j ++) {// 5 ciclos de todos los colores en la rueda para (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) y 255)); } halo.show (); retrasar (esperar); }}

// Ingrese un valor de 0 a 255 para obtener un valor de color.

// Los colores son una transición r - g - b - de regreso a r. uint32_t Wheel (byte WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return halo. Color (255 - WheelPos * 3, 0, WheelPos * 3); } si (WheelPos <170) {WheelPos - = 85; return halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos - = 170; return halo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

configuración vacía () {

// Esto es para Trinket 5V 16MHz, puede eliminar estas tres líneas si no está usando un Trinket #if definido (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // Fin del código especial de la baratija pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, SALIDA); Serial.begin (9600); // cosas de depuración halo.begin (); halo.show (); // Inicializar todos los píxeles en 'desactivado'}

bucle vacío () {

debounce ();

//Serial.println(mode); // más depuración //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

si (modo == 0) {

getBright (); para (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, brightVal)); // establece todos los píxeles en blanco} halo.show (); }; if (modo == 1) {getBright (); para (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, 0)); // establece todos los píxeles en rojo} halo.show (); }; if (modo == 2) {getBright (); para (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0)); // establece todos los píxeles en verde} halo.show (); }; if (modo == 3) {getBright (); para (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // establece todos los píxeles en azul} halo.show (); }; if (modo == 4) {getBright (); para (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, brightVal)); // establece todos los píxeles en cian} halo.show (); }; if (modo == 5) {getBright (); para (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, 0, brightVal)); // establece todos los píxeles en violeta / magenta} halo.show (); }; if (modo == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (brightVal, brightVal, 0)); // establece todos los píxeles en naranja / amarillo} halo.show (); }; if (mode == 7) {// ahora los modos dinámicos getBright (); colorWipe (halo. Color (brightVal, 0, 0), 50); // Rojo }; if (modo == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // Verde }; if (modo == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Azul }; if (modo == 10) {getBright (); colorWipe (halo. Color (brightVal, brightVal, brightVal), 50); // blanco }; if (modo == 11) {getBright (); colorWipe (halo. Color (brightVal, brightVal, 0), 50); // naranja amarillo }; if (modo == 12) {getBright (); colorWipe (halo. Color (0, brightVal, brightVal), 50); // cian}; if (modo == 13) {getBright (); colorWipe (halo. Color (brightVal, 0, brightVal), 50); // morado / magenta}; if (mode == 14) {// los dos últimos son control de velocidad, porque el brillo es dinámico getBright (); arco iris (BrightVal); }; if (modo == 15) {getBright (); rainbowCycle (BrightVal); }; retraso (10); // deja que el procesador descanse un poco}

Paso 9: la gran final

La gran final
La gran final

¡Y ahora tenemos una lámpara fantástica y superbrillante!

Puede modificarlo más desde aquí o dejarlo como está. Puede cambiar el código o incluso escribir uno nuevo por completo. Puede ampliar la base y agregar baterías. Podrías agregar un ventilador. Puede agregar más NeoPixels. La lista de todo lo que podrías hacer con esto es casi infinita. Digo "casi" porque estoy bastante seguro de que todavía no tenemos la tecnología para convertir esto en un generador de mini portal (desafortunadamente), pero aparte de cosas como esa, el único límite es tu imaginación (y hasta cierto punto, como encontré recientemente, las herramientas en su taller). Pero si no tienes las herramientas, no dejes que eso te detenga, si realmente quieres hacer algo, siempre hay una manera.

Ese es parte del objetivo de este proyecto, demostrarme a mí mismo (y, en menor medida, al mundo) que puedo hacer cosas útiles que a otras personas también les gustaría, incluso si todo lo que tengo es una verdadera pila de basura vieja y desechada. componentes y un contenedor de suministros Arduino.

Lo dejo aquí, porque creo que este salió bastante bien. Si tiene una sugerencia de mejora o una pregunta sobre mis métodos, deje un comentario a continuación. Si hiciste esto, toma una foto, ¡todos queremos verlo!

¡No olvide votar si le gusta esto!

Como siempre, estos son los proyectos de Dangerously Explosive, su misión de toda la vida, "¡Construir con valentía lo que quieres construir, y más!"

Puedes encontrar el resto de mis proyectos aquí.

¡Gracias por leer y Happy Making!

Recomendado: