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.
| Matriz Led Filas | 9 | 14 | 8 | 12 | 1 | 7 | 2 | 5 |
|---|---|---|---|---|---|---|---|---|
| Arduino uno o mega | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Matriz Leds Columnas | 13 | 3 | 4 | 10 | 6 | 11 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|
| Arduino Mega | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| Arduino uno | 10 | 11 | 12 | 13 | A0 | A1 | A2 | A3 |
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








No hay comentarios:
Publicar un comentario