Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Uso de Arrays en Arduino - Programar Con Arreglos y Vectores
Uso de Arrays en Arduino - Programar Con Arreglos y Vectores
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.
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.
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.
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. }
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».
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.
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: