Guía de iniciación a Arduino (8 / 15 paso)

Paso 8: Incluso más LEDs parpadeantes

Programar la secuencia de LED

Abra el ejemplo blink7.

En la línea 3, usted verá una nueva estructura: llamamos a esto un array. Una matriz es básicamente una lista de variables, en este caso, es una lista de variables del tipo int Usamos corchetes para indicar que es una matriz. Para inicializar el array, utilizamos Soportes curvos, y los valores están separados por comas.

Cuando queremos utilizar un valor de un array, tendremos que especificar en que lugar de la matriz que queremos el valor de. Vamos a utilizar la matriz en blink7 como ejemplo:

int arreglo [] = {1,2,3,4,5,6,5,4,3,2};

Si queremos obtener el primer valor del array, usamos

El cero entre corchetes se denomina el Índice. Las matrices son cero, este significa que el primer elemento de la matriz tiene índice cero. Esto puede ser confuso al principio, por ejemplo, array [5] devolverá 6, donde cabría esperar que reaparezca 5.
Se imaginarán que esto puede causar muchos problemas... Es por ello que este error tiene nombre propio: apagado por un erroro OBOE para el cortocircuito.

Cuando intenta leer un valor que no está dentro de la matriz, array [10] por ejemplo, el Arduino solo leerá el siguiente lugar en la memoria, sin darse cuenta que el valor tiene lectura ya no es una parte de la matriz. Sólo le dará el valor que encuentra en ese lugar en particular en su memoria.
Pero las cosas ponen aún peor cuando usted está escribiendo a un índice fuera de la matriz, porque usted puede sobrescribir otros datos, como las variables o trozos de código que en ese lugar en la memoria! Una mala idea...

Si desea declarar una matriz sin inicializar sin embargo, puede utilizar

Tenga en cuenta que 10 es el número de elementos, mientras que el último elemento matriz [9].

Si se inicializa en la misma línea, como en blink7, el IDE de Arduino contará los elementos para usted, y no tienes que especificar nada entre los paréntesis.

Si desea saber el número de elementos de la matriz, puede utilizar la función sizeof(array) . Esta función devuelve el tamaño de la matriz de bytes (1 byte = 8 bits). Sin embargo, esto no es la cantidad de elementos, en blink7, sizeof(array) devolverá 20. Esto es porque cada elemento es un int, un int es 2 bytes de longitud. Por lo que el número total de elementos es de 20/2 = 10.
Usamos esto para salir de nuestro bucle for cuando hemos leído toda la serie: siempre y cuando el índice es menor que el número de elementos, con seguridad podemos leer la matriz. Empezamos con i = 0, puesto que el primer elemento tiene índice 0. Esta vez sólo aumentamos yo con 1. La notación 'i ++' es exactamente lo mismo que escribir ' i = i + 1', es simplemente más corto. Otra manera de la escritura esto sería ' i += 1'.

Desde el LED #1 está conectado al pin 2, LED #2 al pin 4, 3 a 6 etc., multiplicamos al número por 2 para obtener el número pin.

Referencia de Arduino: matriz

Referencia de Arduino: Sizeof

Referencia de Arduino: incremento

Referencia de Arduino: adición de compuestos

Usted puede cambiar los valores de la matriz para hacer su propia secuencia, y podría incluso agregar o eliminar elementos, ya que hicimos nuestro programa independiente de la longitud de la matriz mediante la función sizeof().

Resumen:

  • Una matriz es una lista de valores (caracteres u otros arreglos de discos) y utiliza corchetes]
  • Esta es la declaración de un array: 'int matriz [10];'
  • Se trata de la declaración y la inicialización de un array: ' int arreglo [] = {1,2,3,4,5,6,5,4,3,2};
  • Índices de la matriz son cero, lo que significa que el primer elemento tiene índice 0
  • sizeof(array) devuelve el tamaño en bytes de la matriz
  • sizeof(Data Type) devuelve el tamaño en bytes del tipo de datos
  • sizeof (array) sizeof (tipo de datos de matriz) da el número de elementos de la matriz

Extra: 2-dimensional arrays (Matrices)

En un array, los elementos no sólo pueden ser tipos de datos como enteros, pero también otros arreglos de discos. Esto le permite tener supuestas matrices de 2 dimensiones, que pueden compararse a las matrices de.

Se utiliza en blink8 ejemplo: ahora puede configurar el número de led y el retraso en la matriz.

Tenga en cuenta que tenemos que especificar todas las dimensiones excepto la primera entre corchetes, al declarar una matriz multidimensional.

La sintaxis para obtener un valor fuera de la matriz es

Abra el ejemplo matrix_sum. Este ejemplo no hará nada si lo subes, no tiene ninguna salida, es sólo con fines de aprendizaje.

Crea 4 matrices (arrays 2D), dos de los cuales tienen valores. Entonces solo se calcula la suma de las dos matrices y la matriz transportada para el primero de ellos.

Esto se hace mediante el uso de bucles anidados. Puede seguir esta explicación en la imagen de arriba.
Los números son del orden que el bucle for va ir sobre ellos. i sirve para las filas, j las columnas. Comienzan en la primera columna y primera fila (1,1) en la notación de matriz, [0] [0] para la notación de matrices, entonces la columna incrementado (1.2) o [1] [0], la columna se incrementa otra vez (1,3) o [2] [0] cuando j se incrementa otra vez, sale del bucle j, porque j es no menos de tres. se incrementa, j vuelva a cero: (2,1) o [0] [1], j se incrementa: (2,2) o [1] [1], entonces (2,3) o [2] [1]. se incrementa, j vuelva a cero: (3,1) o [2] [0], entonces (3,2) o [2] [1] y finalmente (3,3) o [2,2]. Ahora j sale y sale así.

El cálculo de la matriz transportada es similar, sólo cambia de las columnas y las filas:

transposeMatrix [i] [j] = matrixA [j] [i];

Dentro de estos arreglos de discos, puede usar más arreglos de discos, básicamente creando espacios multidimensionales. En teoría, él número de dimensiones es ilimitado, pero una vez que utilice más de tres dimensiones, es realmente complicado, por lo que se prefieren otros métodos.

Artículos Relacionados

BRICOLAJE casero portátil Arduino café montaña con LED de indicador de temperatura

BRICOLAJE casero portátil Arduino café montaña con LED de indicador de temperatura

Muchas cosas suceden solo por tomar café. Grandes empresas éxito ideas salen mientras gente chateando con café. Me encanta tomar café sobre todo cuando estoy en la oficina. Estoy bastante seguro de que allí todo el mundo ama el café. Pero cuando hago
Brazo robótico Arduino

Brazo robótico Arduino

Ya que es mi primer proyecto después de los 15 tutoriales de mi kit de iniciación de Arduino, el verdadero propósito de la misma es para algunos críticos, consejos, sugerencias, ideas de cualquier persona que sabe más que yo.Este proyecto trata de un
Control CC MIDI en Ableton Live con un Arduino Uno

Control CC MIDI en Ableton Live con un Arduino Uno

En este instructable utilizaremos un potenciómetro en un Arduino Uno para controlar una CC MIDI en Ableton Live. Un MIDI CC está parado para el regulador continuo, es decir, un número en el rango de 0 a 127 inclusive modular algo con. En el youtube q
Arduino All-in-One Getting Started guía

Arduino All-in-One Getting Started guía

un tutorial todo-en-uno para empezar con la plataforma de prototipado Arduino electrónica de código abierto. Esta guía está pensada para el principiante pero debe también ser útiles si ya jugar con la electrónica pero quiere iniciar con el Arduino. H
Juego el francés puede poder utilizando un Arduino y un zumbador

Juego el francés puede poder utilizando un Arduino y un zumbador

Bonjour!Hacer que tu Arduino el francés puede poder mediante una señal acústica. No pinzas. No se dispara. Es tan directo que resulta tan escandaloso el puede puede implica.Este instructivo cubre información electrónica introductorio y se centra en e
Arduino Drawbot

Arduino Drawbot

en algunas de mis anteriores instructurables Arduino tengo programa para la iniciación de Arduino en cómo controlar servos de diferentes maneras.Y en mi última instructurable he muestran la modificación de un servo de paralaje para una rotación de 36
Reflejo del dolor humano de Arduino mecatronicos

Reflejo del dolor humano de Arduino mecatronicos

Debido a su simplicidad, circuitos reflejos son un lugar obvio para comenzar cuando se trata de modelar el sistema nervioso. Opté por usar el reflejo de dolor térmico para mi primer proyecto. En este reflejo de dolor, un estímulo doloroso como una ll
Movimiento reactivo Shake the Maze Juego

Movimiento reactivo Shake the Maze Juego

Traer la magia a la vida con un movimiento automatizado, reactivo shake the maze juego! Usando componentes de un kit de iniciación de Arduino y materiales comunes alrededor de la casa, este es un juego personalizable para que pueda sentirse como un a
Detector de temperatura DIY

Detector de temperatura DIY

Ahora usted puede construir a su propio monitor de temperatura utilizando una placa Arduino. El circuito es una combinación de una placa Arduino UNO, sensor de temperatura LM35 y display de 7 segmentos. Mostrará la temperatura en el segmento de 7 gra
Automático regulador persiana Horizontal accionado Solar

Automático regulador persiana Horizontal accionado Solar

Empecé este proyecto porque tenemos algunas persianas horizontales situados en una alta ventana sobre la puerta principal de nuestra casa. Esta ventana está orientada al sur, y aquí en Colorado, significa un montón de sol. Sería bueno tener esa luz d
Una breve historia del tiempo

Una breve historia del tiempo

"La gente no entiende a tiempo. Es no lo que crees que es. - La gente asume que el tiempo es una progresión estricta de causa a efecto... pero en realidad, desde una perspectiva no lineal, no subjetiva, es más como una bola grande de wibbly-wobbly...
Haz de tu ADVERTENCIA de culo gritando dispositivo

Haz de tu ADVERTENCIA de culo gritando dispositivo

Resolución de año nuevo: no sentarse en mi culo por mucho tiempo. Así que hice un pequeño dispositivo que grita que debo levantarme, cuando me siento por mucho tiempo.Basado en el dispositivo de grabación de este Radioshack , un sensor de inclinación
Temporizador de entrenamiento AB

Temporizador de entrenamiento AB

No te pierdas ni un entrenamiento nuevo! Ahora que el tiempo es cada vez más frío, muchos de nosotros están menos motivados a correr al aire libre o ir al gimnasio. En este caso, tenemos que conseguir creativo con ejercicios que podemos hacer en casa
Torno eléctrico (actualización OFF ON interruptor de encendido ON)

Torno eléctrico (actualización OFF ON interruptor de encendido ON)

te amo mi pequeño pan tornillo lo uso para mi trabajo de reparación y para sostener placas para soldar el único problema es que la prensa sólo se mueve un poco con cada rotación por lo que va de un tablero de circuito pequeño a una gran placa de circ