La matriz era positivo comun. Se usaron 8 resistencias y seis cables, protoboard
usando la tabla que nos dejo el mister en la practica uno de la matriz reaalizamos las conexiones con el codigo usado, realizamos la primera forma que era la basica de lineas en filas. Su conexion fue sencila. No fue dificil saber que pin de arduino se conecta a pin de la matriz de 8x8.
PROGRAMACION
void setup() {
for (int j=2; j<19; j++)
pinMode(j, OUTPUT);
}
void loop() {
for (int j=2; j<10; j++) {
digitalWrite(j, 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(j, LOW); //Bajamos la columna
}
}
CUADRADO
Modificammos el codigo usanod la funcion Loop y lo hicimos para que se forma un cuadrado prendiendo basicamente las filas y las columnas primeras y ultimas. El loop nos ayudo para que se repita y continue. En pocas palabras consistia en prender los bordes, led por led formando un cuadrado. Se tenia que poner positivo= High y negativo= low para que de esta manera se encienda y colocar Negativo=high y positivo=low para que se logre apagar.
PROGRAMACION
void setup() {
for (int j=2; j<19; j++)
pinMode(j, OUTPUT);
}
void loop() {
for (int j=2; j<3; j++) {
digitalWrite(j, HIGH); //Levantamos la columna
for (int k= 10 ; k<18 ; k++) {
digitalWrite(k, LOW); //Encendemos el punto
delay(100);
digitalWrite(k, HIGH); //Apagamos el punto
}
digitalWrite(j, LOW); //Bajamos la columna
}
for (int j=3; j<10; j++) {
digitalWrite(j, HIGH); //Levantamos la columna
for (int k= 17 ; k<18 ; k++) {
digitalWrite(k, LOW); //Encendemos el punto
delay(100);
digitalWrite(k, HIGH); //Apagamos el punto
}
digitalWrite(j, LOW); //Bajamos la columna
}
for (int j=9; j<10; j++) {
digitalWrite(j, HIGH); //Levantamos la columna
for (int k= 16 ; k>9 ; k--) {
digitalWrite(k, LOW); //Encendemos el punto
delay(100);
digitalWrite(k, HIGH); //Apagamos el punto
}
digitalWrite(j, LOW); //Bajamos la columna
}
for (int j=8; j>2; j--) {
digitalWrite(j, HIGH); //Levantamos la columna
for (int k= 10 ; k<11 ; k++) {
digitalWrite(k, LOW); //Encendemos el punto
delay(100);
digitalWrite(k, HIGH); //Apagamos el punto
}
digitalWrite(j, LOW); //Bajamos la columna
}
}
CRUZADA
Este el mismo pero en vez son la laterales
Ya no teniamos que prender el de arriba sino que lo modificamos para que se prenda de cada fila el Led de forma diagonal prendiendo de cada fila y columna un foco de manera especifica para que salga la X. Lo mas dificil fue la programacion al identificar las filas y columnas y modificar su velocidad
Se comienza een un borde que pasa por en medio, asi mismo se repite por la otra esquina dando forma de un reloj de arena. En este proceso vimos una relacion de inversa ya que los negativas eran mas postivos mas 8.
PROGRAMACION
void setup() {
for (int j = 2; j < 18; 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 = 17 ; k > 9 ; k--) {
digitalWrite(k, LOW);
delay(250);
digitalWrite(k, HIGH);
}
digitalWrite(2, LOW);
for (int k = 10 ; k < 18 ; k++) {
digitalWrite(k, LOW);
digitalWrite(k - 8, HIGH);
delay(250);
digitalWrite(k - 8, LOW);
digitalWrite(k, HIGH);
}
digitalWrite(9, HIGH);
for (int k = 17 ; k > 9 ; k--) {
digitalWrite(k, LOW);
delay(250);
digitalWrite(k, HIGH);
}
digitalWrite(9, LOW);
int a = 1;
for (int k = 9 ; k >=2 ; k--) {
digitalWrite(k, HIGH);
digitalWrite(k + a, LOW);
delay(250);
digitalWrite(k, LOW);
digitalWrite(k + a, HIGH);
a = a + 2;
}
}