Puedes hacer todo tipo de cosas con LED parpadeantes, y en este proyecto simple, crearemos un pequeño dispositivo que iluminará mensajes en el aire cuando lo muevas hacia adelante y hacia atrás. Es más fácil de lo que crees, y el costo total de las piezas es menos de $ 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 topado con este fenómeno cuando alguien mueve una bengala encendida rápidamente por la noche. Utilizaremos un Arduino y algunos LED para imitar este efecto. Este proyecto es simple de construir, con pocos componentes y poca soldadura (aunque si quieres algunos consejos para comenzar con tu soldador mira esta guía Aprende a soldar, con estos simples consejos y proyectos Aprende a soldar, con estos simples Consejos y proyectos ¿Está un poco intimidado por la idea de un hierro caliente y metal fundido? Si desea comenzar a trabajar con productos electrónicos, tendrá que aprender a soldar. Permítanos ayudarlo. Lea más).
Necesitará
- Arduino (utilicé un Nano de $ 2 porque es compacto y barato, pero cualquier modelo debería estar bien).
- 5x LED rojos.
- 5x resistencias de 220 Ohm.
- 1 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ás un soldador y algo de soldadura para armarlo todo.
Si bien es opcional, algunas mechas de soldadura pueden ser muy útiles en caso de que cometas algún error de soldadura. Una placa de prueba y algunos cables de conexión también son útiles para probar su circuito.
Alambrado
El cableado no podría ser más simple. Primero, conecte su Arduino, LED y resistencias como se muestra en este diagrama.
Los pines D2 a D6 van a cada resistencia respectivamente, que están unidos al ánodo positivo (pata larga) de cada LED. El cátodo está conectado a tierra, que se conecta de nuevo con el Arduino. Cuando termine, debería verse más o menos así:
Eso es todo: nuestro circuito está hecho! Agregaremos 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 conecta tu Arduino a la computadora y abre el Arduino IDE. Si usted es nuevo en el uso de Arduino y desea una buena guía para comenzar, este enlace Comenzar con Arduino: una guía para principiantes Comenzar con Arduino: una guía para principiantes Arduino es una plataforma de creación de prototipos de electrónica de código abierto basada en flexibilidad, facilidad usar hardware y software. Está dirigido a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Leer más será útil.
Abra un nuevo boceto y copie este código. El código fue modificado a partir de este proyecto y puede descargarlo en su totalidad en este Gist.
// how long each led stays on for int delayTime = 1; //how long between each int charBreak = 3; //how long to wait after the message is finished before it repeats int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; void setup(){ pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); } 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 space[] = {0, 0, 0, 0, 0}; void displayLine(int line){ int myline; myline = line; 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; it<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(space[i]);delay(delayTime);}displayLine(0);} delay(charBreak); } void displayString(char* s){ for (int i = 0; i<=strlen(s); i++){ displayChar(s[i]); } } void loop(){ //Change the text inside here to change the text displayed. //Make sure to keep the brackets and the quotation marks. displayString("..hello!.."); delay(40); }
Guarde el boceto y cárguelo en su tablero. Si obtiene algún error, asegúrese de tener la placa correcta y el puerto com seleccionado. Sus LED deberían comenzar a parpadear. Si no lo hacen, verifique todas sus conexiones en su placa de prueba. 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á agitar el dispositivo. Descubrí que los números utilizados aquí funcionaban bien.
Ahora para hacer una prueba rápida. Desconecta tu Arduino del cable USB, y conecta el soporte de la batería a los pines VIN y GND de tu arduino
Ahora que puede moverlo, intente balancear los LED delante de usted. Debería ver algunas letras formando en el aire siempre que esté lo suficientemente oscuro a su alrededor. Descubrí que ayudó a configurar mi teléfono para capturar esto.
¡Funciona! Ahora para hacerlo un poco más permanente.
Hierros en el listo!
Coloque su placa Arduino, resistencias y LED en su protoboard de esta manera:
Por supuesto, puede hacer el diseño tan compacto como desee, siempre y cuando el circuito siga siendo el mismo. 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 buenos consejos para ti. Electrónica para principiantes: 10 habilidades que debes conocer Electrónica para principiantes: 10 habilidades que necesitas saber Muchos de nosotros nunca hemos tocado un soldador, pero hacer cosas puede ser increíblemente gratificante . Aquí encontrarás diez de las habilidades básicas de electrónica de bricolaje para ayudarte a comenzar. Lee mas .
Estaremos soldando los cátodos LED juntos en una línea para hacer un terreno común, al igual que cuando hicimos nuestra matriz LED Actualice su corona de Navidad con una matriz LED activada por movimiento Actualice su corona navideña con una matriz LED activada por movimiento Esta Navidad DIY corona utiliza una matriz Arduino y LED para producir una increíble pantalla de luces que impresionará a sus amigos y familiares. Lee mas .
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 al lado de ellos. Encontré que la manera más fácil de hacerlo era soldar cada pata en su almohadilla respectiva, y luego colocar la plancha entre ellas para calentar ambas juntas, antes de finalmente agregar más soldadura para cerrar la brecha entre ellas.
Compruebe cada conexión para ver que está sólidamente conectada, y luego use alicates para cortar el exceso de patas de las resistencias y los LED.
Ahora repito la 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 en que se pretende. Cometí varios errores aquí y tuve que usar la mecha de soldadura para eliminar la soldadura no deseada varias veces.
Una vez que haya realizado todas las conexiones correctas, verifique que ninguno de ellos 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 artículo. 7 Habilidades técnicas de bricolaje para enseñar a sus hijos, porque las escuelas no 7 Habilidades técnicas de bricolaje para enseñar a sus hijos, porque las escuelas no leerán más
Una vez que haya verificado cada conexión, corte el exceso de longitud de las patas de las resistencias
Agregar potencia
Ahora pase un trozo de cable del pin GND de su Arduino a 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.
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 un terreno común para el circuito.
Finalmente, conecte un cable al pin VIN de su arduino y coloque el interruptor entre ese cable y el paquete de baterías. Disculpas por el interruptor cubierto con pegamento caliente en esta foto, ¡tuve que desmontar la máquina terminada para fotografiar esta etapa!
Una vez que esté todo soldado, pon una batería y presiona el interruptor. ¡Felicitaciones! El circuito está hecho. Si no ve nada encendido, revise cuidadosamente cada junta de soldadura para ver dónde puede haber una rotura o un cortocircuito.
Recinto
Ahora que lo tenemos funcionando, pongámoslo en una caja. Aquí se usó una caja de cartón pintado, aunque se podía hacer algo más permanente usando una caja comprada en una tienda de pasatiempos, o incluso una caja de tupperware vieja. Para mayor credibilidad geek, incluso puede imprimir en 3D su propia en una de estas impresoras 3D baratas. 5 impresoras 3D baratas que realmente puede comprar hoy 5 impresoras 3D baratas que realmente puede comprar hoy Hace unos años, incluso las impresoras 3D más baratas se acercaban incómodamente a la marca de los $ 1000: ahora puede obtener una impresora 3D de calidad por tan solo $ 400. Lee mas
Reduzca su protoboard al tamaño anotándolo y quitándole las piezas que no necesita.
Coloque su circuito dentro de su gabinete y marque donde los LED y el interruptor necesitan pasar. Opcionalmente, también puede marcar dónde se encuentra el borde del conector USB en la placa Arduino para que pueda enchufarlo y cambiar el texto sin abrir la caja. Taladre o corte los agujeros que necesita en el gabinete.
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 asentara cómodamente 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 dentro 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.
¡Job ha terminado!
¡Cierre su recinto y listo! Para cambiar el texto, conecte el cable USB a la placa Arduino y cambie el texto dentro de los corchetes después de mostrar la cadena en el método de bucle . Encuentra un lugar oscuro y diviértete!
¿Ha construido una máquina POV antes y sabe cómo 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!