Anuncio
Esta es la siguiente parte de nuestra serie de aprendizaje Arduino, y esta vez nosotros? aprenderá y usará Matrices para hacer un pequeño adorno de árbol de Navidad con varias secuencias intermitentes. Este sería un proyecto ideal para mantener a los niños ocupados si desea enseñarles la soldadura básica: simplemente monte los LED en una tarjeta y podrá obtener energía de una batería estándar de 9v.
También es una lección clave en la programación de Arduino para principiantes, aunque si no planeas usar esto realmente como adorno, te sugiero encarecidamente que lo hagas de todos modos.
Nota: Este es un tutorial para principiantes y ciertamente ganamos. No estar abriendo nuevos caminos. s? solo un dispositivo para enseñar los conceptos de uso Matrices y Para bucles lidiar con un gran cantidad de LED (u otros dispositivos de salida).
Si tienes refugio? t ya, ahora sería un buen momento para seguir junto con los otros artículos de la serie:
- ¿Qué es Arduino y qué puedes hacer con él? ¿Qué es Arduino y qué puedes hacer con él? El Arduino es un pequeño dispositivo electrónico notable, pero si nunca ha usado uno, ¿qué son exactamente y qué puede hacer con uno? Lee mas ?
- ¿Qué es un kit de inicio Arduino y qué contiene? ¿Qué se incluye en un kit de inicio Arduino? [MakeUseOf explica]Anteriormente presenté el hardware de código abierto Arduino aquí en MakeUseOf, pero necesitarás más que el Arduino real para construir algo a partir de él y comenzar realmente. Los "kits de inicio" de Arduino son ... Lee mas
- Más componentes geniales para comprar con su kit de inicio 8 componentes más geniales para sus proyectos ArduinoEntonces, ¿estás pensando en obtener un kit de inicio Arduino, pero te preguntas si algunos LED básicos y resistencias serán suficientes para mantenerte ocupado durante el fin de semana? Probablemente no. Aquí hay otros 8 ... Lee mas
- ¿Cómo comenzar con su kit de inicio Arduino? Instalación de controladores y configuración de la placa y el puerto Introducción a su kit de inicio Arduino: instalación de controladores y configuración de la placa y el puertoEntonces, te has comprado un kit de inicio Arduino, y posiblemente algunos otros componentes geniales al azar, ¿y ahora qué? ¿Cómo comienzas a programar esta cosa de Arduino? Cómo lo configuras... Lee mas
- Fritzing, una herramienta gratuita para dibujar diagramas de circuitos Fritzing: la herramienta definitiva para dibujar proyectos electrónicos [Plataforma cruzada]A pesar de sonar como un alcopop, Fritzing es en realidad un increíble software gratuito que puedes usar para crear diagramas de circuitos y componentes para usar con placas electrónicas de creación rápida de prototipos, como el fantástico código abierto Arduino ... Lee mas
- Una mirada más cercana a la estructura de una aplicación Arduino y al programa de ejemplo Blink Primeros pasos con Arduino: una mirada más cercana a la placa de circuito y la estructura de un programaLa última vez que te dejé configuró tu Arduino para que funcione con Mac o Windows, y cargué una aplicación de prueba simple que parpadeó en el LED incorporado. Hoy voy a explicar el código ... Lee mas
Para este proyecto, tu? necesitaré al menos 8 o 9 LED en rojo o verde, un resistor para cada uno de ellos, un tablero de circuitos y algunos cables de conexión. El kit de inicio de Ooomlout, que compré recientemente y que aparece en este tutorial, ofrece una excelente relación calidad-precio y tiene más LED y resistencias que usted. alguna vez lo necesitará, además de venir con una placa de prueba ordenada y un estuche Arduino para mantener las cosas ordenadas.
¿Aquí? s lo último:
Y un video de ello en acción.
¿Aquí? Es una vista del cableado de Fritzing. ¿Eso? s muy básico: simplemente conecte el cable positivo de los LED a los pines 2-> lo que sea (hasta el pin 13), y conecte las patas negativas al suelo en línea con una resistencia. El valor I? Lo que he usado aquí es 560 ohmios. ¿Ese? s para el cableado.
En el lado del software, piense cómo podría escribir en todos estos LED en el código. Podrías hacerlo así:
int led1 = 2; // primer LED en el pin 2. int led2 = 3; // segundo en el pin 3. // etc etc void loop () {digitalWrite (led1, HIGH); retraso (100); digitalWrite (led1, BAJO); retraso (100); digitalWrite (led2, ALTO); // etc. }
Debería poder ver que con 9 LED, esto se cansará rápidamente. La respuesta está en Matrices, que si puedes? t recuerda nuestro Programación 101 sobre tipos de datos básicos Los fundamentos de la programación de computadoras 101 - Variables y tipos de datosHabiendo presentado y hablado un poco sobre la Programación Orientada a Objetos antes y dónde se llama proviene de, pensé que es hora de que revisemos los conceptos básicos absolutos de la programación en un lenguaje no específico camino. Esta... Lee mas - son básicamente solo listas.
La sintaxis se ve así (coloque esto 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 va a ser una Formación. Las llaves encierran la lista de números de pin que contendrá nuestra matriz.
Ahora, para usar una matriz, debemos abordarla por el número de índice. los el índice comienza en 0, y por lo tanto siempre irá a 1 menos que el número total de cosas dentro de élentonces con 9 ítems, el último tendría un índice de 8).
Lo escribes así:
leds [0]
Que en nuestro caso, obtendría el número 2, porque eso? s que? s en el índice 0 en nuestra matriz.
Siguiendo hasta ahora? Excelente. Eso solo no es? Sin embargo, es suficiente para nosotros: también necesitamos alguna forma de iterar sobre cada elemento de nuestra matriz de LED. Para eso, utilizaremos un en bucle. La sintaxis para hacer eso es así:
para (variable inicial; condición bajo la cual repetimos nuevamente; cambiar a variable cada iteración)
Por ejemplo:
para (int i = 0; i <9; i ++)
Que dice
- comenzar este ciclo con una variable, yo, que tiene un valor de cero
- continuar bucle solo mientras estoy menos de 9? (entonces: 0,1,2,3,4,5,6,7,8)
- cada vez, agregue 1 a i (i ++ es una forma corta de decir i = i + 1)
Entonces, básicamente, el ciclo se repetirá tantas veces como tengamos LED, ¿y cada vez que lo haga? s repetido tendremos una variable, yo, que podemos usar como queramos.
¿Nosotros? utilizaré esta estructura dos veces para comenzar. Una vez dentro de la función de configuración para hacer que todos nuestros pines pasen al modo de salida, así:
configuración nula () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }
¿Puedes ver lo que hicimos allí? En lugar de escribir 9 líneas de código para declarar cada pin individual como salida, creamos un bucle "for" para que se repita 9 veces, cada vez estableciendo otro pin.
Ahora, debería poder ver cómo podríamos hacer exactamente lo mismo en el ciclo principal del programa para encender cada LED en secuencia:
void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); retraso (100); digitalWrite (leds [i], LOW); } }
Trata eso. Usted puede descargue el código completo del proyecto de hoy desde aquí ¿si tu? prefiero no escribirlo nuevamente (aunque lo animo, ya que ayuda al proceso de aprendizaje).
Bien, ahora tenemos una secuencia de iluminación bastante aburrida. ¿Dejar? s programe otro. Solo por diversión, ¿no? s lo hacen completamente al azar. Reemplace el código del bucle principal con esto:
bucle vacío () { int randomLed = random (0,8); digitalWrite (leds [randomLed], HIGH); retraso (50); randomLed = random (0,8); digitalWrite (leds [randomLed], LOW); }
En lugar de utilizar un bucle "for" para iterar sobre cada LED, elegimos un número aleatorio del 0 al 9 y lo activamos.
Lo dejaré allí por hoy, ya que ahora debería 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, ¿desafié a mi esposa a pensar en una secuencia que ella? me gustaría ver, y luego tengo?ella para programarlo ella misma, dado solo el código y las lecciones que usted? he tenido hasta ahora. Se le ocurrió esto, ¡así que mira si puedes igualar eso para la tarea!
Preguntas, sugerencias, problemas: póngase en contacto en los comentarios.
James tiene una licenciatura en Inteligencia Artificial y está certificado por CompTIA A + y Network +. Es el desarrollador principal de MakeUseOf, y pasa su tiempo libre jugando VR paintball y juegos de mesa. Ha estado construyendo computadoras desde que era un niño.