Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Programación para Arduino - Clase 6

No description
by

Laura Molina

on 29 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Programación para Arduino - Clase 6

Arreglos (Arrays)

Hasta el momento, hemos aprendido a usar
una variable
por cada pin que necesitemos utilizar, o por cada dato que maneje nuestro programa.
Si necesitábamos definir más de un pin de entrada o salida, los hacíamos línea a línea. En el mejor de los casos, si estos pines eran continuos, podíamos hacer un FOR para inicializar a todos en una sola instrucción.

¿Que pasaría si tuviéramos varios pines discontinuos y quisiéramos trabajar con todos ellos (por ejemplo, 6 LEDS activados por 6 pulsadores)?
Si, además, tuviéramos un módulo que recibe los 6 leds y los 6 pulsadores, serían 12 parámetros. Sin duda, sería un código muy engorroso, donde se pueden cometer errores muy facilmente.

Para simplificar ésto, se crea una
estructura de datos
: el
ARREGLO
o
ARRAY

Arreglos (Arrays)
Un
arreglo
o
array
, es una colección de datos homogéneos que son accedidos mediante un índice.

Todo arreglo se compone de un determinado número de elementos. Cada elemento es referenciado por la posición que ocupa dentro del arrelgo. Dichas posiciones son llamadas índices.

Los más sencillos son los arrays unidimensionales, aunque también hay de dos, 3 o más dimensiones.

Arreglos (Arrays)
Estructura homogénea:
los datos que almacena son todos del mismo tipo.
Estructura estática:
su tamaño no varía al agregar o sacar elementos del arreglo.
Estructura indizada:
permite recuperar cualquier elemento del arreglo indicando su posición (índice).

Los datos almacenados en el arreglo pueden ser de cualquier tipo (int, char, long, boolean, byte u otros tipos definidos por el usuario)

Qué es el índice?

El índice es una variable del tipo ordinal (en Arduino sólo int).
Permite acceder a cualquier elemento de manera directa.
Representa un desplazamiento desde la posición inicial del arreglo

Arreglos: Declaración
Declaración sin inicialización:
int vector[6];
//6 elementos

Declaración con inicialización sin indicar longitud. El compilador cuenta los elementos y crea un arreglo de la longitud apropiada:
int vectorPWM[] = {3,5,6,9,10,11};

Declaración con inicialización indicando longitud:
int vectorPWM[6] = {3,5,6,9,10,11};
char mensaje[20] = {‘a’,’r’,’d’,’u’,’i’,’n’,'o’};

En el caso particular de los arrays de caracteres o strings, se puede hacer la declaración más sencilla:
char mensaje[20] = “arduino”;

Programación para Arduino - Clase 6
Arreglos (Arrays)
Acceso
El acceso a los elementos del array se hace por medio de índices, que son valores numéricos consecutivos con inicio en 0 . O sea que en un array de 10 elementos, el primer índice es 0 y el último es 9. Si referenciamos un índice fuera de rango, no se produce error de compilación, pero se leerán datos inválidos, o se sobrescribirán posiciones de memoria que podrían estar usándose en otras variables
int vectorPWM[6] = {3,5,6,9,10,11};

// en el código, referenciamos a un elemento determinado
//con el nombre del vector seguido por el índice entre
//corchetes

// vectorPWM[0] contiene 3
// vectorPWM[5] contiene 11


Arreglos
Leer y escribir valores
Para asignar valor a un elemento del array:

int vector[5] ;
// se define un vector de 5 posiciones

vector[0] = 10;
//se asigna el valor 10 a la primer posición
//del array


Para obtener el valor de un elemento del array:

int numero;
numero = vector[0];
//el vector estaba previamente cargado

Arreglos: recorrido
La estructura de un array permita que se pueda recorrer fácilmente con bucles.

void setup(){
Serial.begin(9600); }

int vectorPWM[6] = {3,5,6,9,10,11};
int valoresPWM[6] = {0,31,63,127,191,255};

void loop() {
int i;
for (i = 0; i < 5; i = i + 1){
analogWrite(vectorPWM[i],valoresPWM[i]);
}
for (i = 0; i < 5; i = i + 1){
Serial.println(vectorPWM[i]);
}
}

Arreglos multidimensionales
Según la dimensión, se los denomina de diferentes maneras

1 dimensión:
vectores
2 dimensiones:
matrices
3 dimensiones:
tensores
n dimensiones:
arreglo n- dimensional


Los arreglos bidimensionales o matrices, se pueden ver como vectores de vectores. Es decir, que cada elemento del vector, en vez de ser un dato simple, es otro vector.

Los arreglos de tres dimensiones pueden verse como un vector de matrices


Declaración :
int matriz[4,6];
// array de 4 filas y 6 columnas

El acceso se realiza utilizando dos índices, el primero para la fila y el segundo para la columna:
for (int i=0, i<4, i++) {
for (int j=0, j<6, j++) {
matriz[i,j]=0; }

}
Full transcript