array

Descripción

Una matriz es un conjunto de variables a las que se accede con un número de índice. Las matrices en el lenguaje de programación C, en el que se basa Arduino, pueden ser complicadas, pero el uso de matrices simples es relativamente sencillo.

Creación (Declaración) de una Matriz

Cualquiera de los métodos que se indican abajo son adecuados para crear (declarar) una matriz.

int myInts[6]; int myPins[] = {2, 4, 8, 3, 6}; int mySensVals[6] = {2, 4, -8, 3, 2, -7}; char message[6] = "hola";
  • Puede declarar una matriz sin inicializar como myInts.
  • En myPins declaramos una matriz sin elegir un tamaño de forma explícita. El compilador cuenta los elementos y crea una matriz de tamaño apropiado.
  • Por último se puede inicializar dar tamaño de la matriz, como en mySensVals.
  • Tenga en cuenta que cuando se declara un array de tipo char, se requiere un elemento más de su inicialización, para mantener el carácter nulo requerido.

Acceso a una Matriz

Las matrices se indexan desde cero, es decir, el primer elemento de la matriz está en el index 0, por lo tanto

mySensVals[0] == 2, mySensVals[1] == 4, y así sucesivamente.

Esto significa que en una matriz de diez elementos, el índice nueve es el último elemento. Por lo tanto:

int myArray[10]={9, 3, 2, 4, 3, 2, 7, 8, 9, 11}; // myArray[9] contiene 11 // myArray[10] no es válido y contiene información aleatória (otra dirección de memoria)

Por esta razón se debe tener cuidado al acceder a las matrices. El acceso a más allá del final de una matriz (utilizando un número de índice mayor que el tamaño de su matriz declarada - 1) se lee de la memoria que se utiliza para otros fines. La lectura de estas ubicaciones probablemente no va a servir para nada. La escritura en las posiciones de memoria al azar es definitivamente una mala idea y, a menudo puede conducir a resultados infelices tales como accidentes o mal funcionamiento del programa. Esto también puede ser un error difícil de localizar.

A diferencia de BASIC o Java, el compilador de C no hace la comprobación para ver si el acceso matriz está dentro de los límites legales del tamaño de la matriz que se ha declarado.

Para asignar un valor a una matriz:

mySensVals[0] = 10;

Para recuperar un valor de una matriz:

x = mySensVals[4];

Matrices y bucles FOR

Las matrices se utilizan muchas veces dentro de los bucles, en el que el contador de bucle se utiliza como el índice de cada elemento de la matriz. Por ejemplo, para imprimir los elementos de una matriz a través del puerto serie, se podría hacer algo como esto:

int i; for (i = 0; i < 5; i = i + 1) { Serial.println(myPins[i]); }

Ejemplo

Para ver un programa completo que muestra el uso de matrices, ver el tutorial Knight Rider example.

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES