Un proyecto arduino: cómo hacer llamativas luces de navidad adornos
Esta es la siguiente parte de nuestra serie de Arduino aprendizaje, y esta vez nos? Ll ser el aprendizaje y el uso de Las matrices para hacer un poco de adorno del árbol de Navidad con diversas secuencias intermitentes. Este sería un proyecto ideal para mantener a los niños ocupados si desea enseñarles soldadura básica - acaba de montar los LEDs en un trozo de cartulina, y se puede obtener energía de una batería estándar de 9V.
Es también una lección clave en la programación de Arduino principiante, sin embargo si usted no planea usar realmente esto como un adorno me gustaría sugerir fuertemente Compaginación que de todos modos.
Nota: Este es un tutorial nivel muy principiante y que sin duda ganó t estar infringiendo nada nuevo - que s??? sólo un dispositivo para enseñar los conceptos de uso Las matrices y para bucles para hacer frente a una gran número de LEDs (U otros dispositivos de salida).
? Si usted no ha ya, ahora sería un buen momento para seguir junto con los otros artículos de la serie:
- ¿Qué es Arduino & Qué puedes hacer con eso?
- ¿Qué es un kit de arranque de Arduino & ¿Qué contiene?
- Más Cool Componentes Para comprar con su kit de inicio
- Para hacer funcionar su Kit de Inicio Arduino? Instalación de los controladores & Preparando la placa & Puerto
- Fritzing, una herramienta gratuita para la elaboración de diagramas de circuitos
- Una mirada más atenta en la estructura de una aplicación Arduino & El programa de ejemplo Blink
Vídeo: Cómo Hacer Una Estrella Navideña de LED (muy fácil de hacer)
Para este proyecto, usted? Ll necesita al menos 8 o 9 LEDs en rojo o verde, una resistor para cada uno de ellos, una tablero de circuitos y algunos cables de conexión. El kit de inicio de Ooomlout, que recientemente he comprado yo mismo y es descrito en este tutorial, ofrece una gran relación calidad-precio y tiene más LEDs y resistencias que tú? Necesitará siempre, al igual que viene con un tablero limpio y caso Arduino para mantener las cosas ordenado.
? Aquí es la última cosa:
Y un video de él en acción.
Aquí? S una vista del cableado de Fritzing. ? Que es muy básico - sólo tiene que conectar el cable positivo de los LEDs a los pines 2-gt; lo (Hasta al pin 13), y conectar las patas negativos a la línea de tierra con una resistencia. El valor que? He utilizado aquí es de 560 Ohms. Ése es que para el cableado.
En cuanto al software, pensar en cómo se puede escribir en todos estos LEDs en el código. Usted podría ir en ello como esto:
int LED1 = 2- // LED primero en el pin 2INT LED2 = 3- // segundos en el pin 3 // etc etcvoid loop () {digitalWrite (LED1, HIGH) -delay (100) -digitalWrite (LED1, LOW) -delay (100) -digitalWrite (LED2, ALTO) - // etc}
Usted debe ser capaz de ver que con 9 LEDs, esta es la voluntad de obtener rápidamente agotador. La respuesta está en Las matrices, lo que si usted no puede recordar nuestra Programación 101 sobre los tipos de datos básicos - son básicamente sólo listas.Los fundamentos de Programación de Computadoras 101 - Variables y tipos de datosLos fundamentos de Programación de Computadoras 101 - Variables y tipos de datosDespués de haber introducido y habló un poco sobre programación orientada a objetos antes y donde su homónimo viene, pensé que es hora de ir a través de los fundamentos absolutos de la programación de una manera no específica del idioma. Esta...Lee mas
La sintaxis es la siguiente (colocarlo como la primera línea en su código):
int leds [] = {} 2,3,4,5,6,7,8,9,10 -
Los corchetes indican que los leds?? variable se va a ser una Formación. Las llaves encierran la lista de los números de pin donde se incluirá el arreglo.
Ahora, para utilizar una matriz, tenemos que abordarlo por el número de índice. los índice comienza en 0, y siempre, por tanto, subir a 1 menos que el número total de las cosas en su interior (por lo que con 9 artículos, el último tendría un índice de 8).
Se escribe así:
leds [0]
Que en nuestro caso, se vendería por el número 2, debido a que? Es lo que? S en el índice 0 en nuestra matriz.
Vídeo: Peligrosas luces led de navidad
Siguiendo hasta el momento? Estupendo. Eso por sí solo ISN t lo suficiente para nosotros, aunque - también necesitamos alguna manera de iterar sobre cada elemento de nuestra gama LED Para ello, se utilizará una en bucle. La sintaxis de hacerlo es la siguiente:
para (condición inicial variable en las que repetimos nuevo- cambio a la variable de cada iteración)
Por ejemplo:
for (int i = 0- ilt; 9- i ++)
¿Qué dice
- iniciar este bucle con una variable, yo, que tiene un valor de cero
- continuar sólo mientras bucle i es menos de 9?(Así: 0,1,2,3,4,5,6,7,8)
- cada vez, añadir 1 ai (I ++ es una manera corta de decir i = i + 1)
Así que, básicamente, el bucle se va a repetir tantas veces como lo hemos hecho LED, y cada vez que? S repetida tendremos una variable, yo, que podemos utilizar como queramos.
Ll sea utilizando esta estructura dos veces para empezar. Una vez dentro de la función de configuración para realizar todos nuestros pernos a su vez a modo de salida, así:
void setup () {for (int i = 0-ilt; 9-i ++) {pinMode (leds [i], OUTPUT) -}}
¿Puede usted ver lo que hicimos allí? En lugar de escribir 9 líneas de código para declarar cada pin individuo como de salida, creamos un ‘para` bucle se repita 9 veces, cada ajuste del otro pasador de tiempo.
Ahora, usted debería ser capaz de ver cómo podríamos hacer exactamente lo mismo en el bucle principal del programa para convertir cada LED en secuencia:
void loop () {for (int i = 0-ilt; 9-i ++) {digitalWrite (leds [I], HIGH) -delay (100) -digitalWrite (leds [i], LOW) -}}
Trata eso. Puede descargar el código completo para el proyecto de hoy desde aquí si usted? D prefieren no la escribe de nuevo (aunque os animo a, ya que ayuda al proceso de aprendizaje).
Está bien, así que ahora tenemos una secuencia de iluminación bastante aburrido. Let? S programa de otro. Sólo por diversión, vamos? S que sea completamente al azar. Reemplace el código bucle principal con esto:
void loop () {int randomLed = aleatorio (0,8) -digitalWrite (leds [randomLed], HIGH) -delay (50) -randomLed = aleatorio (0,8) -digitalWrite (leds [randomLed], LOW) -}
En lugar de utilizar un bucle ‘para` para iterar sobre cada LED, elegimos un número aleatorio 0-9 en su lugar, y el flash que sucesivamente.
Voy a dejarlo ahí por hoy ya que ahora debe estar armado con el conocimiento suficiente para programar todas las secuencias nuevas y experimentar con bucles. Para demostrar lo fácil que es todo esto, me desafió a mi mujer a pensar en una secuencia de ella? D gustaría ver, y luego se puso?ella para programar ella misma, dado sólo el código y lecciones que? has tenido hasta el momento. Ella se acercó con esto, así que a ver si puede coincidir que para hacer la tarea!
Preguntas, sugerencias, problemas - por favor ponerse en contacto en los comentarios.