En esta entrada explico como mi compañero de clase y yo hemos hecho un simulador de marcador de baloncesto con la tarjeta LKM1638 y un Arduino.
Descripción
del funcionamiento:
A continuación vamos a explicar paso a
paso como nosotros hemos pensado y hecho esta práctica, seguramente se podría
haber hecho de otra forma y también estaría bien.
En primer lugar, como en todos los
proyectos que se quieran hacer con el módulo
LKM1638 hay que agregar la librería con las funciones, poniendo #include <TM1638.h>, le hemos indicado que patillas del
arduino funcionarán como I/O de datos, Strobe y CLK con; TM1638module(8,9,7);, además tenemos que declarar cierta variables; int suma; int
centenas; int decenas; int unidades; int suma2; int centenas2; int
decenas2; int unidades2;, estas variables digamos que nos definen las
unidades, decenas y centenas que van a ir adquiriendo diferentes valores cuando
se “sumen puntos”.
Terminado esto, llegamos al
void
setup(){ , en el que configuramos los displays para que
se apagen, pasen dos segundos y los marcadores con sus distintas posiciones se
pongan a cero (Con los puntos apagados)
module.clearDisplay(); delay(2000);
module.setDisplayDigit(0, 1, false);
module.setDisplayDigit(0, 2, false);
module.setDisplayDigit(0, 3, false);
module.setDisplayDigit(0, 5, false);
module.setDisplayDigit(0, 6, false);
module.setDisplayDigit(0, 7, false);
Dentro del mismo setup hay que
inicializar las variables que hemos declarado antes a cero; suma=0; centenas=0; decenas=0;
unidades=0; //suma2=0; centenas2=0; decenas2=0;
unidades2=0;.
Ahora entramos en el void loop(){, digamos que ya es el programa en sí. Queremos que al accionar un pulsador, se sumen puntos, es decir; alguno de los equipos enceste, para eso introducimos
la instrucción de que al accionar un pulsador if (module.getButtons()==0b00000001)
se encienda el led correspondiente del color que queramos, en este caso verde module.setLED(2,0);
y se acumule en este caso un punto suma=suma+1; decenas= suma/10; unidades=
suma-decenas*10; y para que tenga en cuenta las centenas
if (decenas>=10) { centenas =1; decenas = decenas - 10;
la instrucción de que al accionar un pulsador if (module.getButtons()==0b00000001)
se encienda el led correspondiente del color que queramos, en este caso verde module.setLED(2,0);
y se acumule en este caso un punto suma=suma+1; decenas= suma/10; unidades=
suma-decenas*10; y para que tenga en cuenta las centenas
if (decenas>=10) { centenas =1; decenas = decenas - 10;
module.setDisplayDigit(decenas,
2, false); module.setDisplayDigit(unidades, 3, false); module.setDisplayDigit(centenas,
1,false); Esto último es para que aparezcan los valores de las unidades,
decenas y centenas que tienen que aparecer según se hayan incrementado.
2, false); module.setDisplayDigit(unidades, 3, false); module.setDisplayDigit(centenas,
1,false); Esto último es para que aparezcan los valores de las unidades,
decenas y centenas que tienen que aparecer según se hayan incrementado.
También hay que hacer que los leds
correspondientes que se han encendido antes correspondientes al pulsador se
apaguen delay(1000); module.setLEDs(0b0000000000000000);
correspondientes que se han encendido antes correspondientes al pulsador se
apaguen delay(1000); module.setLEDs(0b0000000000000000);
Esto era para hacer la suma de las
canastas de un punto, con las de dos y las de tres se hace lo mismo, lo único
que cambia es el lugar del pulsador que hay que accionar y la suma que hacen; 2
y 3 puntos más cada uno.
canastas de un punto, con las de dos y las de tres se hace lo mismo, lo único
que cambia es el lugar del pulsador que hay que accionar y la suma que hacen; 2
y 3 puntos más cada uno.