Hola, buenas tardes. Estoy haciendo un programa el cual se trata de mostrar una flecha en una matriz de 7x10, el cual, con el botón Izquierdo la flecha se quede inmóvil, y que con el botón Derecho, la flecha se comience a a mover hacía el lado izquierdo. Intente hacerlo tratando de hacer una función de un FF tipo JK, pero no pude hacerlo funcionar.
Por la parte de la ilustración de las figuras ya esta esa parte, pero no lo logro asignar que los botones hagan su función como es debido.
Gracias por su ayuda.
Aquí les dejo el código.
int columna[10] = {42, 43, 44, 45, 46, 47, 48, 49, 50, 51};
int fila[7] = {28, 27, 26, 25, 24, 23, 22};
int a = 0;
float delayPunto = 1;
int botonIzq = digitalRead(31);
int botonDer = digitalRead(33);
int Q = 0;
int flecha[7][10] = {
/* Columna
0 1 2 3 4 5 6 7 8 9 */
{0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, // Fila 0.
{0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, // Fila 1.
{0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, // Fila 2.
{1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, // Fila 3.
{0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, // Fila 4.
{0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, // Fila 5.
{0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, // Fila 6.
};
void setup() {
// Declaración de Entadas/Salidas.
for (int i = 0; i <= 9; i++) {
pinMode( columna , OUTPUT );
- }*
- for (int i = 0; i <= 6; i++) {*
_ pinMode( fila , OUTPUT );_
* }*
}
void loop(){
* if( (botonIzq == LOW) && (botonDer == LOW)){*
* Q = Q;*
* if(Q == 0){*
* flechaIzquierda(a);*
* }*
* else{*
* flechaIzquierdaRecorrimiento();*
* }*
* }*
* if( (botonIzq == LOW) && (botonDer == HIGH)){*
* Q = 0;*
* if(Q == 0){*
* flechaIzquierda(a);*
* }*
* }*
* if( (botonIzq == HIGH) && (botonDer == LOW)){*
* Q = 1;*
* if(Q == 1){*
* flechaIzquierdaRecorrimiento();*
* }*
* } *
}
void flechaIzquierda(int a){
* for (int c = 0; c <= 9; c++) {*
* int cola = c + a; *
* digitalWrite( columna[cola] , HIGH ); *
* for (int f = 0; f <= 6; f++) { *
* digitalWrite( fila[f] , flecha[f]*
```c
* );
delay( delayPunto );
digitalWrite( fila[f] , LOW );
}
digitalWrite( columna[cola] , LOW );
}
}
void flechaIzquierdaRecorrimiento(){
for (int a = 9; a >= -9; a--) {
flechaIzquierda(a);
}
}
_```*_