martes, 27 de junio de 2017

Bitácora de la Práctica #2

En esta práctica, usamos los materiales, incluyendo la matriz 8x8, con el fin de aprender a realizar programaciones avanzadas con el mismo. Para esto realizamos dos tipos de secuencias en la matriz, la cual nosotros mismos conectamos y programamos acorde a la secuencia que queríamos realizar.

La primera parte de la práctica fue con el siguiente objetivo:
  • Usando estructura de repetición, hacer que un led se prenda y se mueva por los bordes de la matriz 8x8, tal como se puede ver en la imagen.

Para realizar esto, utilizamos el circuito que teníamos previamente conectado, con el fin de solo cambiar la programación para que este realice la nueva secuencia.
Configuración patas de la matriz con los pines del arduino 
Se alimentan con 5v
Matriz Led Filas9148121725
Arduino uno o mega23456789





Configuración patas de la matriz con los pines del arduino
Se alimentan con 0v
Matriz Leds Columnas1334106111516
Arduino Mega10  11 12 13 1415  16 17
Arduino uno10111213A0A1A2A3

Luego procedimos a realizar la programación correspondiente para que la secuencia que queríamos, aparezca. 

Siendo el código:
void setup() { for (int j=2; j<19; j++) pinMode(j, OUTPUT);
for (int j=2; j<10; j++) digitalWrite(j,LOW); for (int j=10; j<18; j++) digitalWrite(j, HIGH); } void loop() { digitalWrite(2, HIGH); //Levantamos la columna for (int k= 10 ; k<18 ; k++) { digitalWrite(k, LOW); //Encendemos el punto delay(250); digitalWrite(k, HIGH); //Apagamos el punto } digitalWrite(2, LOW); digitalWrite(17, LOW); for (int b=2 ; b<10; b++) { digitalWrite(b, HIGH); delay(250); digitalWrite(b,LOW); } digitalWrite(17, HIGH); digitalWrite(9, HIGH); //Levantamos la columna for (int k= 17 ; k>=10 ; k--) { digitalWrite(k, LOW); //Encendemos el punto delay(250); digitalWrite(k, HIGH); //Apagamos el punto } digitalWrite(9, LOW); digitalWrite(10, LOW); for (int b=9 ; b>=2; b--) { digitalWrite(b, HIGH); delay(250); digitalWrite(b,LOW); } digitalWrite(10, HIGH); }


Una vez hecha la programación, conectamos y comprobamos. Como resultado tuvimos esto:

Una vez terminado la primera parte, procedimos a realizar la segunda. Esta tendría como objetivo:
  • Usando estructuras de repetición, hacer que un led se prenda y se mueva por el borde izquierdo - diagonal izquierda a derecha - borde derecho - diagonal derecha a izquierda de la matriz 8x8, tal como se ve en la imagen.
Para esto, de la misma manera usamos los materiales ya conectados del ejercicio anterior. Lo único que vino a cambiar acá fue la programación. Para esta nueva secuencia usamos la siguiente programación: 


Por lo que el código quedaría:

int s=1; void setup() { for (int j=2; j<19; j++) pinMode(j, OUTPUT); for (int j=2; j<10; j++) digitalWrite(j,LOW); for (int j=10; j<18; j++) digitalWrite(j, HIGH); } void loop() { digitalWrite(2, HIGH); for (int k= 18 ; k>=10 ; k--) { digitalWrite(k, LOW); delay(250); digitalWrite(k, HIGH); } digitalWrite(2, LOW); for (int e=2; e<10; e++) { digitalWrite(e, HIGH); digitalWrite (e+8, LOW); delay(250); digitalWrite(e,LOW); digitalWrite(e+8,HIGH); } digitalWrite(9, HIGH); for (int k= 17 ; k>=10 ; k--) { digitalWrite(k, LOW); delay(250); digitalWrite(k, HIGH); } digitalWrite(9, LOW); s=1; for (int p=9; p>=2; p--){ digitalWrite(p, HIGH); digitalWrite (p+s, LOW); delay(250); digitalWrite(p,LOW); digitalWrite(p+s,HIGH); s=s+2; } }

Dada esta programación, procedimos a conectar a la matriz y comprobar si la secuencia era la establecida.

En conclusión, dada terminada la práctica, podemos decir que el realizar la programación para que se realicen las secuencias que se requieren tiene cierto grado de dificultad. Es importante revisar constantemente cada punto durante la programación. 


Integrantes:
  • Eduardo Caicedo
  • José Minuche

domingo, 10 de julio de 2016

Programación.- Cambio de secuencias

Quizá este es hasta ahora el trabajo más complicado que hemos tenido. Pues, en pareja, teníamos que conectar dos filas de 6 leds, es decir, 12 en total, y hacer que se prendieran de una manera con el pulsador, y de otra sin presionar. Además de que se pueda regular con el potenciometro.
Primero coloque los 12 leds al protoboard. Primero declaramos la variable estado , ponemos todos los leds como salida y el pulsador como entrada. En LOW, los leds se encenderían, y con el delay, se apagarían y se prenderían los demás. 
Mediante larga programación, al final se obtiene una secuencia de los leds cuando se presiona el pulsador y cuando no. Además se conecta el potenciometro y, con la debida programación, se regula la velocidad.
Para mi en lo personal fue el trabajo más difícil. Fue larga programación y hubieron varios errores, pero se supo arreglar y a la final funcionó. 

Programación.- Leds con el potenciometro

En esta clase hicimos lo que hace dos clases con el pulsador, combinaríamos las programaciones para regular los leds, pero esta vez con el potenciometro. 
Lo único que hice fue conectar los leds y el potenciometro al arduino de la misma manera que ya lo había hecho antes. Luego uní ambas programaciones, pero ahora en la programación de los leds declare la variable velocidad y el puse el pin de del potenciometro. Luego configure loop de los leds y el potenciometro. Algo que debía poner era que en Delay tenia que estar la variable velocidad
El trabajo no fue tan complicado porque ya tenia la experiencia anterior uniendo ambas programaciones. 

Programación.- Potenciometro

En esta clase nos dieron una nueva instrucción. Pues ahora usaríamos el potenciometro. Lo que haríamos es cambiar la velocidad con la que parpadea el led 13 del arduino según como nosotros configuremos el potenciometro. El objetivo sería:
Usar el potenciometro para regular la velocidad con la que parpadea el led 13.
Para esto, había que conectar el potenciometro al protoboard, pero había que seguir un orden especifico. 


La primera pata del potenciometro debe estar conectada al pin 5v del arduino. La de en medio a uno de los pines analógicos. La ultima debe estar conectada a GND.










Luego en la programación habia que declarar la variable velocidad para el potenciometro. Había que poner el pin 3 como salida y el que conectaba al potenciometro como entrada. El pin 13 debería estar en Low y el delay con la variable velocidad.
En este ejercicio, se me complico demasiado, porque no podía hacer bien toda la programación. Todo estaba perfectamente conectado, pero la programación no me salía. A la final, después de tantos intentos, logre hacerlo. 

Programación.- Leds con el pulsador

En esta clase, tendríamos una tarea combinada por así decirlo. El objetivo:
Hacer que con el pulsador se prendieran los leds del protoboard.
Parea lograr esto, teníamos que combinar el ultimo proyecto de los leds, con el del pulsador, obviamente haciendo ciertos cambios en la programación.
Primero, en el protoboard había que tener el mismo orden de los leds, de tal manera que podíamos usar la programación del mismo proyecto en este nuevo. Así mismo debíamos tener conectado de la misma manera el pulsador al protoboard para también usar su programación.
Una vez que esta todo conectado en el protoboard, unimos ambas programaciones del arduino para que este nuevo funcione. La nueva programación básicamente seria la combinación de las dos anteriores. Solo había que cambiar que en if, habia que poner lo de los leds del protoboard, y en else ponemos todo en LOW.
Al final no me funciono, hasta que pregunte y me ayudaron porque tenía un error en la conexión de los leds, y por eso es que no me salia. Yo pensaba que mi programación estaba mal, pero el problema era en el protoboard. 

Programación.- Pulsador en el arduino

En esta clase aprendimos a conectar un pulsador al protoboard y que con este al pulsarlo, se encendiera el led del pin 13 del arduino..
El objetivo seria ese: Hacer que el pulsador prendiera el led del arduino.
Para lograr esto, primeramente tenía que conectar el pulsador al protoboard. Luego, conecte una resistencia, que tuviera conexión a gnd, y conecte al arduino. 
Una vez hecho esto, solo faltaría programar. Para hacer eso, primero tuve que crear una variable, llamada estado. Luego, el pin que esta conectado al pulsador se lo pone como entrada y el pin del foco, como salida. El pin 13 es el del foco, por lo que ese es fijo. Finalmente programamos el loop. En este fijamos que la variable estado es igual a DigitalRead del pulsador, y cuando este está en High, el otro también lo estaría.
De esta manera ya estaría listo todo y al momento de pulsar el pulsador, el foco del arduino se prendería. No fue tan complicado esta tarea ya que poco a poco voy teniendo mas practica al momento de programar.


Programación.- Focos leds en direcciones opuestas

En esta clase hicimos algo similar de lo que hicimos en la clase anterior. Pues en esta también programaríamos  los leds con arduino para que se prendan. Lo único que en esta vez cambiaría es que ahora el orden es diferente.
En esta ocasión el orden seria empezar desde en medio hasta afuera. 
Las conexiones de los leds con el arduino no habían que cambiarlas, lo único que había que modificar era la  programación en arduino. Pues, como el orden en esta ocasión era diferente, los datos que estaban en arduino tenían que cambiar para que este funcionase como se requiere.
Al final logre programarlos de manera correcta, pero en si aprendí a programar el arduino de una manera diferente. Pues ahora dos leds tenían que estar prendidos al mismo tiempo por lo que había que configurar el loop entre High y Low de los pines. 
Se me complico, es verdad. Pues no estoy para nada acostumbrado a programar y, como no sabia hacerlo, tenía que programar de uno en uno y, como no tengo mucha paciencia, me desespere un poco. En conclusión si funciono y eso es lo importante.