Anuncio

Puede hacer todo tipo de cosas con LED parpadeantes, y en este simple proyecto, crearemos un pequeño dispositivo que ilumine los mensajes en el aire cuando lo mueve de un lado a otro. Es más fácil de lo que piensa y el costo total de las piezas es inferior a $ 5.

Este proyecto utiliza una ilusión óptica llamada persistencia de la visión para hacer que el texto aparezca en el aire. Probablemente te hayas encontrado con este fenómeno cuando alguien mueve una bengala encendida rápidamente por la noche. Usaremos un Arduino y algunos LED para imitar este efecto. Este proyecto es simple de construir, con pocos componentes y poca soldadura (aunque si desea algunos consejos para comenzar con su soldador, consulte esta guia Aprenda a soldar, con estos simples consejos y proyectos¿Estás un poco intimidado por la idea de un hierro caliente y metal fundido? Si desea comenzar a trabajar con la electrónica, necesitará aprender a soldar. Permítanos ayudarlo. Lee mas ).

Necesitará

  • Arduino (usé un Nano de $ 2 porque es compacto y barato, pero cualquier modelo debería estar bien).
  • instagram viewer
  • 5x LEDs rojos.
  • 5x Resistencias de 220 ohmios.
  • 1x Soporte de batería de 9v.
  • 1x interruptor basculante.
  • 1x pieza de protoboard.
  • Una carcasa para el producto terminado (utilicé una pequeña caja de cartón pintada de negro).

También necesitará un soldador y un poco de soldadura para unirlo todo.

Si bien es opcional, algunas mechas de soldadura pueden ser muy útiles en caso de que se produzcan errores de soldadura. Una placa de pruebas y algunos cables de conexión también son útiles para probar su circuito.

Componentes requeridos para el proyecto

Alambrado

El cableado no podría ser más simple. Primero, conecte su Arduino, LED y resistencias como se muestra en este diagrama.

punto de vista fritzing

Los pines D2 a D6 van a cada resistencia respectivamente, que están unidas al ánodo positivo (pata larga) de cada LED. El cátodo está conectado a tierra, que se conecta de nuevo al Arduino. Cuando esté hecho, debería verse más o menos así:

tablero de pov

Eso es todo: nuestro circuito está hecho! Añadiremos una carcasa de batería y un interruptor más adelante, pero esto es todo lo que necesitamos para probar si funciona.

Código

Ahora conecte su Arduino a la computadora y abra el IDE de Arduino. Si eres nuevo en el uso de Arduino y quieres una buena guía para comenzar, este enlace Comenzando con Arduino: una guía para principiantesArduino es una plataforma de creación de prototipos de electrónica de código abierto basada en hardware y software flexible y fácil de usar. Está destinado a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Lee mas será útil.

Abra un nuevo boceto y copie este código. El código fue modificado de este proyecto y puedes descargarlo por completo en esta esencia.

// cuánto tiempo permanece encendido cada led. int delayTime = 1; // cuánto tiempo entre cada int charBreak = 3; // cuánto tiempo esperar después de que el mensaje haya terminado antes de que se repita. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; configuración nula () { pinMode (LED1, SALIDA); pinMode (LED2, SALIDA); pinMode (LED3, SALIDA); pinMode (LED4, SALIDA); pinMode (LED5, SALIDA); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; int o [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int excl [] = {0, 29, 0, 0, 0}; int ques [] = {8, 19, 20, 8, 0}; int espacio [] = {0, 0, 0, 0, 0}; displayLine vacío (línea int) { int myline; myline = línea; if (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} if (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} if (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} if (myline> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} if (myline> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } void displayChar (char c) { if (c == 'a') {for (int i = 0; i <5; i ++) {displayLine (a [i]); delay (delayTime);} displayLine (0);} if (c == 'b') {for (int i = 0; i <5; i ++) {displayLine (b [i]); delay (delayTime);} displayLine (0);} if (c == 'c2') {for (int i = 0; i <5; i ++) {displayLine (c2 [i]); delay (delayTime);} displayLine (0);} if (c == 'd') {for (int i = 0; i <5; i ++) {displayLine (d [i]); delay (delayTime);} displayLine (0);} if (c == 'e') {for (int i = 0; i <5; i ++) {displayLine (e [i]); delay (delayTime);} displayLine (0);} if (c == 'f') {for (int i = 0; i <5; i ++) {displayLine (f [i]); delay (delayTime);} displayLine (0);} if (c == 'g') {for (int i = 0; i <5; i ++) {displayLine (g [i]); delay (delayTime);} displayLine (0);} if (c == 'h') {for (int i = 0; i <5; i ++) {displayLine (h [i]); delay (delayTime);} displayLine (0);} if (c == 'i') {for (int it = 0; es <5; it ++) {displayLine (i [it]); delay (delayTime);} displayLine (0);} if (c == 'j') {for (int i = 0; i <5; i ++) {displayLine (j [i]); delay (delayTime);} displayLine (0);} if (c == 'k') {for (int i = 0; i <5; i ++) {displayLine (k [i]); delay (delayTime);} displayLine (0);} if (c == 'l') {for (int i = 0; i <5; i ++) {displayLine (l [i]); delay (delayTime);} displayLine (0);} if (c == 'm') {for (int i = 0; i <5; i ++) {displayLine (m [i]); delay (delayTime);} displayLine (0);} if (c == 'n') {for (int i = 0; i <5; i ++) {displayLine (n [i]); delay (delayTime);} displayLine (0);} if (c == 'o') {for (int i = 0; i <5; i ++) {displayLine (o [i]); delay (delayTime);} displayLine (0);} if (c == 'p') {for (int i = 0; i <5; i ++) {displayLine (p [i]); delay (delayTime);} displayLine (0);} if (c == 'q') {for (int i = 0; i <5; i ++) {displayLine (q [i]); delay (delayTime);} displayLine (0);} if (c == 'r') {for (int i = 0; i <5; i ++) {displayLine (r [i]); delay (delayTime);} displayLine (0);} if (c == 's') {for (int i = 0; i <5; i ++) {displayLine (s [i]); delay (delayTime);} displayLine (0);} if (c == 't') {for (int i = 0; i <5; i ++) {displayLine (t [i]); delay (delayTime);} displayLine (0);} if (c == 'u') {for (int i = 0; i <5; i ++) {displayLine (u [i]); delay (delayTime);} displayLine (0);} if (c == 'v') {for (int i = 0; i <5; i ++) {displayLine (v [i]); delay (delayTime);} displayLine (0);} if (c == 'w') {for (int i = 0; i <5; i ++) {displayLine (w [i]); delay (delayTime);} displayLine (0);} if (c == 'x') {for (int i = 0; i <5; i ++) {displayLine (x [i]); delay (delayTime);} displayLine (0);} if (c == 'y') {for (int i = 0; i <5; i ++) {displayLine (y [i]); delay (delayTime);} displayLine (0);} if (c == 'z') {for (int i = 0; i <5; i ++) {displayLine (z [i]); delay (delayTime);} displayLine (0);} if (c == '!') {for (int i = 0; i <5; i ++) {displayLine (excl [i]); delay (delayTime);} displayLine (0);} if (c == '?') {for (int i = 0; i <5; i ++) {displayLine (ques [i]); delay (delayTime);} displayLine (0);} if (c == '.') {for (int i = 0; i <5; i ++) {displayLine (eos [i]); delay (delayTime);} displayLine (0);} if (c == '') {for (int i = 0; i <5; i ++) {displayLine (espacio [i]); delay (delayTime);} displayLine (0);} retraso (charBreak); } void displayString (char * s) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Cambia el texto dentro de aquí para cambiar el texto que se muestra. // Asegúrese de mantener los corchetes y las comillas. displayString (".. hola ..."); retraso (40); }

Guarde el boceto y cárguelo en su tablero. Si obtiene algún error, asegúrese de tener seleccionada la placa y el puerto de comunicaciones correctos. Sus LED deberían comenzar a parpadear. Si no lo hacen, verifique todas sus conexiones en su placa de pruebas. Los enteros declarados al comienzo del código determinan qué tan rápido se muestra el texto. Cuanto mayor sea el número, más rápido necesitará mover el dispositivo. Descubrí que los números utilizados aquí funcionaban bien.

Ahora para hacer una prueba rápida. Desconecte su Arduino del cable USB y conecte el soporte de la batería a los pines VIN y GND de su arduino

pov fritz con batt

Ahora que puede moverlo, intente con cuidado balancear los LED frente a usted. Debería ver algunas letras que se forman en el aire siempre que esté lo suficientemente oscuro a su alrededor. Descubrí que ayudó a configurar mi teléfono para capturar esto.

prueba de pan

¡Funciona! Ahora para hacerlo un poco más permanente.

Hierros listos!

Coloque su placa Arduino, resistencias y LED en su protoboard de esta manera:

presentado a bordo

Por supuesto, puede hacer que el diseño sea tan compacto como desee, siempre que el circuito permanezca igual. Asegúrese de dejar al menos una línea de contactos de protoboard a cada lado de su Arduino para los componentes y la fuente de alimentación. Si eres un principiante en electrónica, aquí hay algunos grandes consejos para ti Electrónica para principiantes: 10 habilidades que debes saberMuchos de nosotros nunca hemos tocado un soldador, pero hacer cosas puede ser increíblemente gratificante. Aquí hay diez de las habilidades básicas de electrónica de bricolaje para ayudarlo a comenzar. Lee mas .

Soldaremos los cátodos LED juntos en una línea para hacer un terreno común, como lo hicimos cuando hicimos nuestro Matriz de LED Actualice su corona navideña con una matriz de LED activada por movimientoEsta corona navideña de bricolaje utiliza una matriz Arduino y LED para producir una increíble pantalla iluminada que impresionará a sus amigos y familiares. Lee mas .

cátodos de fila

Dobla cada cátodo para que se superponga al siguiente, y suelda para crear una línea continua. Ahora necesitamos soldar nuestros ánodos a las patas de las resistencias a su lado. Encontré que la forma más fácil de hacer esto era soldar cada pata a su respectiva almohadilla y luego colocar el planche entre ellos para calentar ambas juntas, antes de finalmente agregar más soldadura para cerrar la brecha entre ellos.

Verifique cada conexión para ver si está firmemente conectada, y luego use cortadores de alambre para cortar el exceso de patas de las resistencias y los LED.

resistencias a los ánodos

Ahora para repetir esa misma tarea, pero esta vez conectando el otro extremo de nuestras resistencias a las patas del Arduino. Esta es la parte más complicada de la soldadura. Cada resistencia se conecta mucho a su pin Arduino solo o el circuito no funcionará de la manera prevista. Cometí varios errores aquí y tuve que usar una mecha de soldadura para eliminar la soldadura no deseada varias veces.

Una vez que haya realizado todas las conexiones correctas, verifique que ninguna de ellas se superponga con sus vecinos. Si tiene acceso a un multímetro aquí, puede usar el modo de continuidad para verificar que cada pin solo tenga una línea continua a su resistencia. Si acaba de obtener un multímetro, hay una excelente guía para comenzar en este articulo. 7 habilidades tecnológicas de bricolaje para enseñar a tus hijos, porque las escuelas no Lee mas

imagen de continuidad

Una vez que haya verificado cada conexión, corte el exceso de longitud de las patas de las resistencias

Agregando poder

Ahora pase un trozo de cable desde el pin GND de su Arduino hasta un orificio al lado de donde termina su línea de cátodos soldados, y coloque el cable negro del soporte de la batería al lado.

gnd cables arriba

Ahora suelde el cable al pin GND, de la misma manera que lo hicimos con las resistencias, y suelde ambos cables al final de la línea de cátodos para crear una tierra común para el circuito.

Finalmente, conecte un cable al pin VIN de su arduino y coloque el interruptor entre ese cable y la batería. Disculpas por el interruptor cubierto de pegamento caliente en esta foto, ¡tuve que desmontar la máquina terminada para fotografiar esta etapa!

cambiar vin

Una vez que esté todo soldado, coloque una batería y encienda el interruptor. ¡Felicidades! El circuito está hecho. Si no ve nada iluminado, revise cada junta de soldadura con cuidado para ver dónde puede haber una rotura o un cortocircuito.

Recinto

Ahora que lo tenemos funcionando, vamos a ponerlo en una caja. Aquí se usó una caja de cartón pintada, aunque podría hacer algo más permanente usando una caja comprada en una tienda de pasatiempos, o incluso una vieja caja de tupperware. Para obtener más credibilidad geek, incluso podría imprimir en 3D su propio Una de estas impresoras 3D baratas. 5 impresoras 3D baratas que realmente puedes comprar hoyHace unos años, incluso las impresoras 3D más baratas estaban incómodamente cerca de la marca de los $ 1,000; ahora puede obtener una impresora 3D de calidad por tan solo $ 400. Lee mas

Reduzca el tamaño de su protoboard marcándolo y separando cuidadosamente las partes que no necesita.

proto gif

Coloque su circuito dentro de su gabinete y marque dónde deben pasar los LED y el interruptor. Opcionalmente, también puede marcar dónde el conector USB en la placa Arduino se encuentra con el borde para que pueda enchufarlo para cambiar el texto sin abrir la caja. Taladre o corte los agujeros que necesita en el gabinete.

hacer agujeros

Ahora agregue un poco de pegamento caliente a los bordes de los LED y péguelos en su lugar. Pegué un trozo de esponja debajo del circuito para que se acomodara perfectamente en la caja. Adjunte su interruptor a la caja. Usé pegamento caliente, aunque los tornillos o pernos harían una conexión mucho más fuerte. También puede pegar el soporte de la batería en la parte posterior de la placa de circuito para evitar que se mueva adentro cuando el artículo está en uso, pero asegúrese de que los contactos metálicos de la carcasa no toquen ninguna de sus juntas de soldadura.

interruptor de medida

¡Trabajo hecho!

¡Cierra tu recinto y listo! Para cambiar el texto, conecte su cable USB a la placa Arduino y cambie el texto dentro de los corchetes después displayString en el lazo método. ¡Encuentra un lugar oscuro y diviértete!

ritmo más lento

¿Has construido una máquina POV antes y conoces formas de mejorar el diseño? ¿Estás planeando construir uno tú mismo? Cuéntanos sobre tu proyecto en los comentarios a continuación, ¡nos encantaría escucharlo!

Ian Buckley es periodista independiente, músico, intérprete y productor de video que vive en Berlín, Alemania. Cuando no está escribiendo o en el escenario, está jugando con la electrónica o el código de bricolaje con la esperanza de convertirse en un científico loco.