Lo que necesitamos para realizar
la práctica fue un joystick, con él se produjeron conexiones con la matriz y el
Arduino. Primero se coordinó que los leds se mueva en las direcciones que daba
el joystick, es decir que se mueva un espacio cada vez que se movía el joystick
y el led de la matriz iba en la dirección que este lo indicara. Con la Matriz 8x8 conectado al Arduino Mega y el uso
del Joystick, se modificó el código base para que el movimiento del Led sea
automática de tal manera que parta de un led específico y se mueva a la derecha
solo y cuando mueva el control arriba, abajo, derecha o izquierda cambie de
dirección. Cabe mencionar que si va a la derecha y el control lo posiciono a la
derecha no deberá pasar nada y continuar.
Para eso se necesitó
la siguiente programación:
int ladoy = A0;
int ladox = A1;
int valor1;
int valor2;
int posX = 5;
int posY = 13;
void setup() {
Serial.begin(9600);
//PINES DEL 2 AL 19 COMO SALIDA
for (int j = 2; j <= 17; j++)
pinMode(j, OUTPUT);
//APAGO LOS PINES LOS POSITIVOS LES
MANDO LOW Y LOS NEGATIVOS LES MANDO HIGH
for (int j = 2; j <= 9; j++)
digitalWrite(j, LOW);
for (int j = 10; j <= 17;
j++)
digitalWrite(j, HIGH);
digitalWrite(posX, HIGH);
digitalWrite(posY, LOW);
}
void loop() {
valor1 = analogRead(ladox);
valor2 = analogRead(ladoy);
Serial.print("X: ");
Serial.print(valor1);
Serial.print(" - ");
Serial.print("Y: ");
Serial.println(valor2);
digitalWrite(posX, LOW);
digitalWrite(posY, HIGH);
if (valor1 > 700) {
if (posX == 9)
posX = 2;
else
posX++;//posX = posX + 1;
} else {
if (valor1 < 400) {
if (posX == 2)
posX = 9;
else
posX--;//posX = posX - 1;
}
}
if (valor2 > 700) {
if (posY == 17)
posY = 10;
else
posY++;
} else {
if (valor2 < 400) {
if (posY == 10)
posY = 17;
else
posY--;
}
}
digitalWrite(posX, HIGH);
digitalWrite(posY, LOW);
delay(250);
}


















