Está en la página 1de 4

   

Uso de Arrays en Arduino - Programar con Arreglos y Vectores


¡Bienvenido al undécimo capítulo de este curso de Arduino desde cero! En el tutorial
anterior te expliqué cómo crear tus propias funciones. Hoy también vamos a ver un nuevo
concepto de programación, conocido como arrays o arreglos.

¡Suscríbete a nuestro canal de YouTube para aprender más sobre Arduino!

Wexter Home

YouTube 185 K
Qué es un array
Un array o arreglo es una secuencia de elementos del mismo tipo. Estos elementos están
ordenados de forma contigua en la memoria. Además, se puede acceder a cada elemento
individualmente utilizando un índice.

Una cosa muy importante a tener en cuenta es que la posición del primer elemento del array es
la posición 0, no la 1. Si por ejemplo tienes un arreglo de 20 elementos, la posición de cada
elemento iría de la 0 a la 19.

Cómo definir un arreglo en Arduino

Hay dos formas básicas de crear un array. La primera de ellas es NO inicializándolo y la


segunda es inicializandolo. Lo primero que tienes que escribir es el tipo de dato de los
elementos que guarda el array. Si por ejemplo quieres que guarde caracteres tendrás que
utilizar «char».

Después tienes que escribir el nombre del array. Recuerda que un arreglo es una variable, así
que siempre tienes que intentar que el nombre tenga sentido y describa de forma breve los
datos que guarda.

En el caso de que no quieras inicializar el array necesitas saber cuantos elementos va a


guardar. El número de elementos que va a almacenar tienes que escribirlo dentro de los
corchetes. De esta manera estás reservando memoria aunque ésta aun no esté ocupada.

Si por el contrario si quieres inicializarlo puedes dejar los corchetes vacíos. Solo te faltaría
asignarle al array los elementos que quieres que guarde. Para ello utiliza como siempre el
operador «=». Los diferentes elementos del vector tienen que estar separados por una coma
dentro de unas llaves. Abajo tienes un ejemplo para cada caso.

1. //Creación de dos arrays en Arduino


2. int numeros[20]; //Sin inicializar
3. char miNombre[] = {'W', 'e', 'x', 't', 'e', 'r'}; //Inicializando

Calcular tamaño de un array en Arduino


Vamos a crear ya el primer programa utilizando un arreglo. Es muy sencillo. Simplemente he
creado el mismo array que en el apartado anterior, llamado «miNombre». El objetivo es
aprender a calcular el tamaño de un vector y acceder a los elementos que guarda para poder

utilizarlos.

Para calcular el tamaño del array he utilizado la función «sizeof()». Sin embargo tienes que
tener cuidado porqué dicha función devuelve el número de elementos multiplicado por el
número de bytes del tipo de dato del array.

Por ejemplo, los números enteros ocupan 2 bytes de memoria. Si tienes un array de tipo entero
con 30 elementos, sizeof te devolverá 60. Por este motivo divido el resultado obtenido entre el
sizeof del tipo de dato del array, obteniendo así el número de elementos.

Para acceder a un dato del array de forma individual simplemente tienes que escribir el nombre
del arreglo y entre corchetes la posición del dato al que quieres acceder. Recuerda que la
primera posición es la 0, NO la 1.
1. char miNombre[] = {'W', 'e', 'x', 't', 'e', 'r'};
2. int nElements = 0;
3.
4. void setup() {
5. // put your setup code here, to run once:
6. Serial.begin(9600);
7. nElements = sizeof(miNombre) / sizeof(char);
8. Serial.print("Numero de elementos: ");
9. Serial.println(nElements);
10. Serial.println(miNombre[3]);
11.
12. }
13.
14. void loop() {
15. // put your main code here, to run repeatedly:
16.
17. }

Hacer parpadear varios LEDs utilizando un Array


Este programa también es bastante fácil pero nos sirve para seguir aprendiendo a utilizar los
arrays en Arduino en diferentes casos. El objetivo es hacer parpadear varios leds, en concreto 5,
utilizando un arreglo.

Como puedes ver he creado un array llamado «leds» que básicamente guarda los números de
los pines digitales a los que tengo conectados los 5 leds. He calculado el tamaño del vector de
la misma forma que en el código anterior.

Con el bucle for lo que hago es inicializar cada pin digital. ¿Cómo funciona? Inicialmente la «i»,
que es el contador, vale 0. La condición para que se repita el bucle es que tiene que ser menor
que el número de elementos del array. El incremento es de 1 en 1.

Dentro del bucle for, con la función «pinMode()» inicializo cada pin digital. En vez de poner el
número del pin directamente, utilizo el array «leds» accediendo a cada elemento de forma
individual. En la primera vuelta del bucle la «i» vale 0, así que con leds[0] accedo al primer
elemento del arreglo, que es el 9, inicializando el pin digital 9 como salida. Esto se repite con
todos los números que guarda «leds».

1. int leds[] = {9, 10, 11, 12, 13};


2. int nElements = 0;
3.
4. void setup(){
5. //put your setup code here, to run once:
6. Serial.begin(9600);
7. nElements = sizeof(leds) / sizeof(int);
8. for(int i = 0; i < nElements; i++){
9. pinMode(leds[i], OUTPUT);
10. }
11. }
12.
13. void loop(){
14. //put your main code here, to run repeatedly:
15. for(int i = 0; i < nElements; i++){
16. digitalWrite(leds[i], HIGH);
17. delay(200);
18. digitalWrite(leds[i], LOW);
19. delay(200);
20. }
21. }

Para encender y apagar los leds hago exactamente lo mismo pero en vez de utilizar la función
«pinMode» utilizo «digitalWrite» con un delay entre medias.

Ejemplo de arrays en Arduino


Te dejo aquí un programa bastante más complicado utilizando los arrays en Arduino. Yo te
recomiendo que intentes leerlo y entenderlo por tu cuenta. Si quieres comprobar si lo has
entendido correctamente al final del vídeo que hay al principio de esta página lo explico.

1. char texto[500];
2. int cont = 0;
3. int nElements = 0;
4.
5. void setup() {
6. // put your setup code here, to run once:
7. Serial.begin(9600);
8. }
9.
10. void loop() {
11. // put your main code here, to run repeatedly:

También podría gustarte