Sunteți pe pagina 1din 23

Taller 2 Arduino

Taller Introduccin a la Ingeniera Elctrica

20 de marzo de 2014

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

1 / 22

Esquema de la presentacin

Introduccin

Matrices

Ejercicios para entregar la semana prxima

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

2 / 22

Esquema de la presentacin

Introduccin

Matrices

Ejercicios para entregar la semana prxima

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

3 / 22

Como manejar una matriz en Arduino?

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

4 / 22

Arduino Uno

Este taller tiene como objetivo:


Analizar cmo manejar en arduino una matriz en hardware y software.
Analizar cmo se pueden mostrar valores del programa en el PC
durante su ejecucin en el arduino.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

5 / 22

Esquema de la presentacin

Introduccin

Matrices

Ejercicios para entregar la semana prxima

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

6 / 22

Matriz

En software es una estructura de datos que permite tener un conjunto


de variables asociadas que se pueden referenciar por su la y columna.
En hardware, puede ser utilizada de muchas maneras pero hoy
veremos una representacin a travs de una matriz de leds.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

7 / 22

Matriz

En software es una estructura de datos que permite tener un conjunto


de variables asociadas que se pueden referenciar por su la y columna.
En hardware, puede ser utilizada de muchas maneras pero hoy
veremos una representacin a travs de una matriz de leds.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

7 / 22

El hardware a utilizar

Imagen tomada de: http://opensourcehardwarejunkies.com/tutorial-20-multi-dimensional-arrays-aka-matrix

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

8 / 22

El hardware a utilizar

Nosotros haremos una representacin de una matriz 2x2 y no 3x3 para


simplicar el cableado. Mas adelante trabajaremos con matrices 8x8 nos
alcanzan las salidas del arduino?

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

9 / 22

La instruccin for

Sintaxis:
for ( initialization ; condition ; increment ) {
// statement ( s ) ;
}

Ejemplo:
int PWMpin = 10; // LED en el
void setup ()
{
// nada
}

pin 10

void loop ()
{
for ( int i =0; i <= 255; i ++) {
analogWrite ( PWMpin , i ) ;
delay (10) ;
}
}
(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

10 / 22

La instruccin while

Sintaxis:
while ( expression ) {
// statement ( s )
}
expression - una condicion con resultado verdadero o falso

Ejemplo:
int PWMpin = 10; // LED en el
void setup ()
{
// nada
}
void loop ()
{
int i =0;
while (i <=255) {
analogWrite ( PWMpin , i ) ;
delay (10) ;
i ++;
}
(TallerIne)

pin 10

Taller 2 Arduino

20 de marzo de 2014

11 / 22

Declaracin e Inicializacin de matrices

int pinMatrix [2][2] = {


{2 , 3} ,
{4 , 5}
};
// fin de la declaracion de la matriz
void setup () {
// usaremos dos bucles anidados para recorrer la matriz e
indicar que los valores de la matriz corresponden a los
pines del arduino e indicar que son salidas
for ( int i = 0; i < 2; i ++) {
for ( int j = 0; j < 2; j ++) {
pinMode ( pinMatrix [ i ][ j ] , OUTPUT ) ;
} // close for i
} // close for j
} // close setup ()

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

12 / 22

Primer ejemplo, prender y apagar toda la matriz


secuencialmente

void loop () {
// en este doble bucle prenderemos y apagaremos cada led
recorriendo por filas la matriz
for ( int i = 0; i < 2; i ++) {
for ( int j = 0; j < 2; j ++) {
digitalWrite ( pinMatrix [ i ][ j ] , HIGH ) ;
delay (1000) ;
digitalWrite ( pinMatrix [ i ][ j ] , LOW ) ;
} // close for i
} // close for j
} // close loop ()

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

13 / 22

Imprimir un valor en la pantalla del PC

Serial.print(..) enva lo que se le pase como parmetro al monitor del IDE


de Arduino.
int i = 2;
void setup () {
Serial . begin (9600) ; // la biblioteca Serial la veremos con
detalle en el proximo taller .
// permite enviar datos al PC a traves del puerto USB y
mostralas en un monitor
}
void loop () {
Serial . println ( i ) ; // envia el valor de k al PC .
i = i +1;
delay (5000) ;
}

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

14 / 22

Mostrar una matriz en el PC

El siguiente programa muestra en el PC los valores de una matriz 2X2.


int matriz [2][2] = {{2 ,3} ,{4 ,5}};
void setup () {
Serial . begin (9600) ;
}
void loop () {
int i , j ;
for ( i =0; i <2; i ++) {
Serial . print ( " \ t " ) ;
for ( j =0; j <2; j ++) {
Serial . print ( matriz [ i ][ j ]) ;
Serial . print ( " \ t " ) ;
// introduce un tabulador
entre las columnas
}
Serial . println () ; // cambia de linea al cambiar de fila
}
Serial . println () ;
delay (1000) ;
}
(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

15 / 22

Ejercicio 1

a) Probar el programa que enciende secuencialmente una matriz de leds


2x2 a) Modicar el programa que enciende secuencialmente una matriz de
leds para que el segundo bucle en lugar de utilizar un for se use la
instruccin while
b)Modicar el programa a) para que en lugar de recorrer la matriz por las
lo haga por columnas.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

16 / 22

Ejercicio 2

Escribir un programa en el arduino que en la funcin loop dena dos


matrices 3x3. Luego sume las dos matrices (elemento a elemento) e
imprima la matriz resultante.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

17 / 22

Ejercicios para el taller

1. Implementar en el arduino los ejercicios 1 y 2.


2. Hacer un programa que recorra la diagonal de una matriz 5x5 de
elementos positivos y encuentre el menor valor de la diagonal. Hacerlo de
dos maneras diferentes: una utilizando for y otra while . Se debe imprimir al
PC el valor encontrado.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

18 / 22

Esquema de la presentacin

Introduccin

Matrices

Ejercicios para entregar la semana prxima

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

19 / 22

Ejercicio para entregar

a)Si no naliz los ejercicios del taller hacerlos. b) Se deber


individualmente responder a las preguntas que se realizarn en el EVA.
c) Se deber realizar el siguiente ejercicio y probar que funciona en el
arduino.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

20 / 22

Ejercicio para entregar

Dada una matriz 8x8 y un valor de la y columna de la matriz, escribir un


programa que cambie todos los valores del entorno del lugar indicado por la
la y la columna por el valor que tiene dicho lugar. Una vez realizada esta
modicacin de mostrar en el PC como era la matriz inicial y la matriz
luego de este cambio. Para esto deben modicar el cdigo para mostrar en
el PC una matriz para que muestre una matriz 8x8.
Observar: En general debe recorrer desde la-1 a la +1 y desde columna
-1 a columna +1. Sin embargo, hay que tener cuidado con las condiciones
de borde, es decir por ejemplo si el lugar es una esquina tiene 3 lugares en
su entorno, si est en un lado tiene 5 valores en su entorno. Si no est en
un borde tiene 8.

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

21 / 22

Ejercicio para entregar

d) Por ltimo debern leer en internet o en libros que consigan informacin


sobre aritmtica binaria e informacin sobre el sistema hexadecimal.
Tambin leer en la pgina de arduino la especicacin de los siguientes
tipos:
http://arduino.cc/en/Reference/UnsignedInt
http://arduino.cc/en/Reference/Int
http://arduino.cc/en/Reference/Long
http://arduino.cc/en/Reference/Byte

(TallerIne)

Taller 2 Arduino

20 de marzo de 2014

22 / 22

S-ar putea să vă placă și