JLed
agosto 27, 2011 Dejar un comentario
Hola, mientras realizaba mis proyectillos, me he visto en la necesidad de crear una clase que se asemeje a un led. Este es el aspecto que tienen los led creados con esta clase.

Dejo el API así, como el paquete jar con el fuente y el .class
Una vez creada la clase y dando rienda suelta a la imaginación, se me ocurrieron un par de ejemplos cutres de lo que se puede hacer con los led.
Ejemplo 1)
Me he creado una clase que contenga 8 leds que representarán un Byte.
Esta clase va a tener uno o varios arrays de String , que contendrán cadenas en Hexadecimal, que representarań los estados de los led en cada momento.
Por ejemplo String[] secuencia={“0×00″,”0×81″,”0xC3″,”0xE7″,”0xFF”};
Este array en Hexadecimal, lo vamos a transformar a binario, como bien es sabido, hay una correspondencia directa entre el Hexadecimal y el binario, así pues el conjunto de bits que nos quedará como resultado de la transformación del array anterior es el siguiente:
0×00=00000000
0×81=10000001
0xC3=11000011
0xE7=11100111
0xFF=11111111
Una vez realizada la transformación, vamos a asignar a cada led un bit del Byte que obtenemos de la transformación. Esto lo tenemos que hacer con cada uno de los estados de la secuencia
Así pues el efecto de esta secuencia es el siguiente:
0×00=00000000
0×81=10000001
0xC3=11000011
0xE7=11100111
0xFF=11111111
De esta manera, nos resulta muy fácil crear nuevos efectos para nuestros led, yo he puesto aparte de la anterior las siguientes secuencias.
String[] secuencia2={“0×00″,”0xFF”};
String[] secuencia3={“0×80″,”0×40″,”0×20″,”0×10″,”0×08″,”0×04″,”0×02″,”0×01″,”0×02″,”0×04″,”0×08″,”0×10″,”0×20″,”0×40″};
String[] secuencia4={“0xAA”,”0×55″};
String[] secuencia5={“0×00″,”0×81″,”0xC3″,”0xE7″,”0xFF”,”0x7E”,”0x3C”,”0×18″};
String[] secuencia6={“0×00″,”0×81″,”0xC3″,”0xE7″,”0xFF”,”0xE7″,”0xC3″,”0×81″};
Dejo aqui disponible el jar de este ejemplo, que ejecutara todas las secuencias.
Ejemplo 2)
Tomando como referencia el ejemplo anterior, y haciendo uso de la facilidad de transformar de hexadecimal a binario, vamos a complicar la cosa, pero sólo un poco. Vamos a crear una flecha hacia la derecha.
Como lo estarán intuyendo, vamos a necesitar de una matriz de leds, yo la he creado de 7×8. Bien ahora que ya tenemos nuestra matríz, tenemos que crear los estados, en nuestro caso son los siguientes:
String[][] sec={{“0×08″},{“0x0C”},{“0xFE”},{“0xFF”},{“0xFE”},{“0x0C”},{“0×08″}};
0×08=00001000
0x0C=00001100
0xFE=11111110
0xFF=11111111
0xFE=11111110
0x0C=00001100
0×08=00001000
Bueno ya esta todo casi conseguido, tras hacer unos cuantos bucles, y como en el ejemplo anterior, asignar a cada led su valor correspondiente, este es el resultado.

Si a esto le ponemos una pausa, y en un bucle podemos crear el efecto de refresco.
Dejo aquí este segundo ejemplo, que a su vez crea el efecto de barrido.
PD.: En ambos ejemplos, sólo dejo el ejecutable, si alguien quiere el código, me lo puede pedir y encantado se lo enviaré.

