2d Array - Arduino

2d Array - Arduino

Los tableros Arduino se pueden programar utilizando un lenguaje C/C ++. La mayoría de los conceptos, la programación de Arduino hereda de estos dos idiomas. Como en las matrices C/C ++ también se usan en los bocetos Arduino. Las matrices pueden almacenar múltiples elementos con el mismo tipo de datos. Las matrices en Arduino se usan comúnmente con bucles para controlar el nivel de voltaje a múltiples alfileres. Veamos cómo crear matrices 2D en Arduino.

Matrices 2d en Arduino

Las matrices 2D o bidimensionales son similares a la diferencia de solo dimensiones, aquí tenemos múltiples filas y múltiples columnas en lugar de una sola línea de caracteres. Todos los elementos de las matrices están dispuestos dentro de una cuadrícula en forma tabular con filas y columnas.

En palabras simples, las matrices que requieren dos subíndices diferentes para llamar a un elemento específico en una ubicación particular se denominan matrices 2D. Cualquier matriz que tenga dos o más dimensiones se conoce como una matriz multidimensional.

Aquí en la imagen de arriba, podemos ver una matriz 2D multidimensional porque requiere dos subíndices para identificar un elemento específico.

  • Primero es el nombre de la matriz denotada por "a".
  • El segundo es el subíndice de filas [2] diciéndonos la ubicación del elemento con respecto a su número de fila.
  • El tercero es el subíndice de columna [1] denota el número de columna de elementos específicos.

Inicializando la matriz 2D en Arduino

Ahora para comprender el concepto de matriz 2D inicializamos una matriz 2D dentro del código Arduino e imprimimos en un monitor en serie. El siguiente es el código para inicializar una matriz 2D 2 × 3:

setup () void
De serie.comenzar (115200); /*Comienza la comunicación en serie*/
int nrow = 2; /*Número de filas*/
int ncol = 3; /*Número de columna*/
int twodimarray [2] [3] = /*Array definida con dimensión* /

1, 2, 3, /*elementos de matriz* /
4, 5, 6
;
De serie.println ("matriz de dos dimensiones de [2] x [3]");
int CURROW = 0;
Mientras (Currow < nRow) /*While loop to print n value of row*/

int curcol = 0;
Mientras (Curcol < nCol) /*While loop to print n value of column*/

De serie.imprimir (twodimArray [Currow] [curcol]);
De serie.imprimir(" ");
curcol ++; /*Imprima todas las filas elementos*/

De serie.println ();
Currow ++; /*Imprima todos los elementos de columna*/


bucle vacío ()

Aquí en el código anterior, comenzamos inicializando la comunicación en serie para imprimir resultados en el monitor en serie. Siguiente número total de filas y columnas se inicializan. Para almacenar datos dentro de la matriz, inicializamos una cadena de matriz bidimensional que imprime números del 1 al 6.

Junto para almacenar los datos inicializados dentro de la matriz dos, mientras que los bucles se requerirán uno para el número de filas y el segundo para el número total de columnas. También podemos hacer esto manualmente, pero en caso de matrices 2D de gran tamaño tenemos que escribir una línea separada para cada elemento de la matriz 2D. Para evitar este bucle, se inicializa que se ejecutará por sí mismo e incrementará su valor para almacenar el siguiente elemento dentro de la matriz.

Por último, imprimimos las filas y las columnas usando la serie.impresión () función.

Producción

La salida muestra una matriz 2D con 2 × 3 de tamaño.

Reemplazo de elementos de matriz 2D con un valor en Arduino

Como hemos impreso con éxito una matriz 2D en el monitor de serie, ahora reemplazaremos un valor específico con un elemento dentro de la matriz 2D.

setup () void
De serie.comenzar (115200); /*Comienza la comunicación en serie*/
int nrow = 2; /*Número de filas*/
int ncol = 3; /*Número de columna*/
int twodimarray [2] [3] = /*Array definida con dimensión* /

1, 2, 3, /*elementos de matriz* /
4, 5, 6
;
De serie.println ("Elemento en la ubicación [1] x [1] se reemplaza con 0:");
int CURROW = 0;
Mientras (Currow < nRow)

int curcol = 0;
Mientras (Curcol < nCol)

TWODIMArray [1] [1] = 0; /*El elemento de matriz en [1] x [1] se reemplaza con 0*/
De serie.imprimir (twodimArray [Currow] [curcol]);
De serie.imprimir(" ");
curcol ++; /*Imprima todas las filas elementos*/

De serie.println ();
Currow ++; /*Imprima todos los elementos de columna*/


bucle vacío ()




El código anterior es similar en el trabajo como el código explicado anteriormente. La única diferencia aquí es la adición de dos líneas usando la siguiente función: podemos reemplazar cualquier elemento de matriz con un valor dado.
[CCE_BASH Width = "100%" Height = "100%" Escaped = "True" Theme = "Blackboard" Nowrap = "0"]
TWODIMArray [1] [1] = 0;

Aquí el elemento [1] x [1] que es igual a 5 será reemplazado con un número 0. Al definir la ubicación del elemento de matriz, cualquier número se puede reemplazar con uno nuevo.

Producción

En el monitor en serie podemos ver que ese elemento en la ubicación [1] x [1] se reemplaza con el número 0:

Obtener un valor de una posición específica en la matriz 2D en Arduino

Ahora recuperaremos un valor específico de un elemento de cualquier posición dentro de la matriz 2D:

setup () void
De serie.comenzar (115200); /*Comienza la comunicación en serie*/
int nrow = 2; /*Número de filas*/
int ncol = 3; /*Número de columna*/
int twodimarray [2] [3] = /*Array definida con dimensión* /

1, 2, 3, /*elementos de matriz* /
4, 5, 6
;
int CURROW = 0;
Mientras (Currow < nRow)

int curcol = 0;
Mientras (Curcol < nCol)

De serie.imprimir (twodimArray [Currow] [curcol]);
De serie.imprimir(" ");
curcol ++; /*Imprima todas las filas elementos*/

De serie.println ();
Currow ++; /*Imprima todos los elementos de columna*/

int myValue = twodimArray [1] [1]; /*Elemento de impresión al [1] x [1]*/
De serie.imprimir ("Valor del elemento en [1] x [1] es:");
De serie.imprimir (myValue);

bucle void ()

Aquí al final del código definimos una nueva variable myValue de tipo int ty. Esta variable tomará el valor del elemento definido utilizando su ubicación e imprimirá en el monitor en serie.

Aquí lo hemos inicializado para imprimir elementos en la ubicación [1] x [1].

Producción

El terminal de salida representa el valor en la ubicación [1] x [1] que es igual a 5:

Conclusión

Matrices bidimensionales (matriz 2D) Retire la molestia del manejo de varias variables. También utilizando matrices 2D podemos establecer diferentes valores de PIN altos o bajos. Este artículo ofrece una introducción de matrices 2D en Arduino y guías sobre cómo obtener o reemplazar valores de elementos específicos dentro de la matriz 2D.