Hacer un escritor de aire pov conducido por menos de $ 5
Se puede hacer todo tipo de cosas con LEDs intermitentes, y en este proyecto simple, vamos a hacer un pequeño dispositivo que se ilumina mensajes en el aire cuando le hace señas hacia atrás y adelante. Es más fácil de lo que piensa, y el coste total de las piezas es menos de $ 5.
Este proyecto utiliza una ilusión óptica llamada persistencia de la visión para que el texto aparezca en el aire. Usted probablemente ha llegado a través de este fenómeno cuando alguien mueve una bengala encendida rápidamente por la noche. Vamos a utilizar un Arduino y algunos LED para imitar este efecto. Este proyecto es sencillo de construir, con pocos componentes y poca soldar (aunque si quieres algunos consejos sobre cómo empezar con su cheque a cabo soldador esta guía).Aprender cómo soldar, con estos sencillos consejos y ProyectosAprender cómo soldar, con estos sencillos consejos y Proyectos¿Es usted un poco intimidados por la idea de una plancha caliente y el metal fundido? Si desea empezar a trabajar con la electrónica, vas a tener que aprender a soldar. Vamos a ayudarle.Lee mas
Vídeo: Conferencia: Escribir hoy. Los desafíos para un escritor en tiempos de Internet
Necesitará
- Arduino (he usado un Nano $ 2, ya que es compacto y barato, pero cualquier modelo debe estar bien).
- LEDs rojos 5x.
- resistencias 5x 220 Ohm.
- 1x soporte de la batería de 9V.
- 1x interruptor basculante.
- piece 1x de protoboard.
- Un alojamiento para el producto terminado (I utiliza una pequeña caja de cartón pintado de negro).
Vídeo: CARLOS FUENTES - La escritura: encuentro y memoria
Usted también necesitará un soldador y un poco de estaño para ponerlo todo junto.
Aunque opcional, algunos mecha de soldadura puede ser muy útil en caso de que se cometan errores de soldadura. Un tablero y algunos cables de conexión también son útiles para probar su circuito.
Alambrado
El cableado no puede ser más sencillo. En primer lugar, conectar sus Arduino, LEDs y resistencias como se muestra en este diagrama.
Botones D2 a D6 ir a cada resistor, respectivamente, que están unidos al ánodo positivo (pierna de longitud) de cada LED. El cátodo está conectado a tierra, que se conecta de nuevo a la Arduino. Cuando se hace debe ser algo como esto:
Eso es todo: nuestro circuito está hecho! Vamos a añadir un alojamiento de la batería y un interruptor a ella más tarde, pero esto es todo lo que necesitamos para probar si funciona.
Código
Ahora conectar el Arduino al ordenador y abrir el IDE de Arduino. Si usted es nuevo en el uso del Arduino y quieres una buena guía en conseguir ir, este enlace será útil.Primeros pasos con Arduino: una guía para principiantesPrimeros pasos con Arduino: una guía para principiantesArduino es una plataforma electrónica de prototipos de código abierto basado en flexible y fácil de usar hardware y software. Está pensado para artistas, diseñadores, aficionados y cualquier persona interesada en la creación de objetos interactivos o ambientes.Lee mas
Abrir un nuevo dibujo y copiar el código. El código se modificó a partir de este proyecto y se puede descargar en su totalidad en este Gist.
// el tiempo que cada LED permanece encendida duranteint tiempo de retardo = 1-// el tiempo entre cada int charBreak = 3-// el tiempo de espera después de que se terminó el mensaje antes de que se repiteint restablecer el tiempo = 20-int LED1 = 2-int LED2 = 3-int LED3 = 4-int LED4 = 5-int LED5 = 6-vacío preparar(){pinMode(LED1, SALIDA)-pinMode(LED2, SALIDA)-pinMode(LED3, SALIDA)-pinMode(LED4, SALIDA)-pinMode(LED5, SALIDA)-}int un[] = {1, 6, 26, 6, 1}-int segundo[] = {31, 21, 21, 10, 0}-int c2[] = {14, 17, 17, 10, 0}-int re[] = {31, 17, 17, 14, 0}-int mi[] = {31, 21, 21, 17, 0}-int F[] = {31, 20, 20, dieciséis, 0}-int gramo[] = {14, 17, 19, 10, 0}-int marido[] = {31, 4, 4, 4, 31}-int yo[] = {0, 17, 31, 17, 0}-int j[] = {0, 17, 30, dieciséis, 0}-int k[] = {31, 4, 10, 17, 0}-int l[] = {31, 1, 1, 1, 0}-int metro[] = {31, 12, 3, 12, 31}-int norte[] = {31, 12, 3, 31, 0}-int o[] = {14, 17, 17, 14, 0}-int pag[] = {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[] = {dieciséis, dieciséis, 31, dieciséis, dieciséis}-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, dieciséis}-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}-vacío displayLine(int línea){int mi linea-mi linea = línea-Si (mi lineagt; =dieciséis) {digitalWrite(LED1, ALTO)- mi linea-=dieciséis-} más {digitalWrite(LED1, BAJO)-}Si (mi lineagt; =8) {digitalWrite(LED2, ALTO)- mi linea-=8-} más {digitalWrite(LED2, BAJO)-}Si (mi lineagt; =4) {digitalWrite(LED3, ALTO)- mi linea-=4-} más {digitalWrite(LED3, BAJO)-}Si (mi lineagt; =2) {digitalWrite(LED4, ALTO)- mi linea-=2-} más {digitalWrite(LED4, BAJO)-}Si (mi lineagt; =1) {digitalWrite(LED5, ALTO)- mi linea-=1-} más {digitalWrite(LED5, BAJO)-}}vacío displayChar(carbonizarse do){Si (do == `un`){para (int yo = 0- yo lt;5- yo++){displayLine(un[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `segundo`){para (int yo = 0- yo lt;5- yo++){displayLine(segundo[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `C2`){para (int yo = 0- yo lt;5- yo++){displayLine(c2[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `re`){para (int yo = 0- yo lt;5- yo++){displayLine(re[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `mi`){para (int yo = 0- yo lt;5- yo++){displayLine(mi[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `F`){para (int yo = 0- yo lt;5- yo++){displayLine(F[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `gramo`){para (int yo = 0- yo lt;5- yo++){displayLine(gramo[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `marido`){para (int yo = 0- yo lt;5- yo++){displayLine(marido[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `yo`){para (int eso = 0- eso lt;5- eso++){displayLine(yo[eso])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `J`){para (int yo = 0- yo lt;5- yo++){displayLine(j[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `K`){para (int yo = 0- yo lt;5- yo++){displayLine(k[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `L`){para (int yo = 0- yo lt;5- yo++){displayLine(l[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `metro`){para (int yo = 0- yo lt;5- yo++){displayLine(metro[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `norte`){para (int yo = 0- yo lt;5- yo++){displayLine(norte[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `O`){para (int yo = 0- yo lt;5- yo++){displayLine(o[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `pag`){para (int yo = 0- yo lt;5- yo++){displayLine(pag[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `Q`){para (int yo = 0- yo lt;5- yo++){displayLine(q[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `R`){para (int yo = 0- yo lt;5- yo++){displayLine(r[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `S`){para (int yo = 0- yo lt;5- yo++){displayLine(s[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `T`){para (int yo = 0- yo lt;5- yo++){displayLine(t[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `U`){para (int yo = 0- yo lt;5- yo++){displayLine(u[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `V`){para (int yo = 0- yo lt;5- yo++){displayLine(v[yo])-retrasar(tiempo de retardo)-}displayLine(0)-}Si (do == `W`){para (int yo = 0- yo lt;5- yo++){displayLine(w[yo])-retrasar(tiempo de retardo