10 de agosto de 2014

Controlar una matriz de leds usando Arduino Nano

Hola a todos, en esta ocasión les traigo un tutorial sobre como graficar letras en una matriz led 7x5, usando un arduino nano y el monitor serial que nos proporciona Arduino:


Los materiales que necesitaran para este proyecto son:
    -Matrix Led 7x5.
    -Arduino.
    -Arduino Sowftware. (Clic para descargarlo)
    -Protoboard.

Representación hecha en fritzing

Una vez que tengamos los materiales, debemos conectar la matriz a los pines del arduino, pueden seguir cualquier orden para la conecxion, esto despues de puede configurar en el código.

Solo asegúrense de identificar cada pata de la matriz y de preferencia apuntarlo en un papel.

Una vez hecho esto pasamos al código, para esto abrimos nuestro software:


Lo primero que haremos sera crear un vector "col[]" del tipo entero, en el cual estarán los # pines del arduino al cual están conectadas las columnas de nuestra matriz y repetimos este proceso para el vector "fil[]" que sera para las filas de la matriz.



Luego declaramos algunas variables del tipo entero:
i: nos ayudara a recorrer los bucles para cada letra.
k: almacena el numero de veces que se va mostrando la letra.
t: numero de veces que se va a mostrar una letra.

Después creamos el "void Setup()", los pines del arduino que representan a las columnas y filas los inicializaremos como salidas, las columnas es "HIGH", y las filas en "LOW".

Como haremos uso del monitor serial del arduino, iniciamos la comunicación con lo siguiente:
Serial.begin(9600); //9600 es la velocidad de trasnmicion de datos, se da en baudios

Para graficar letras o símbolos en la matriz, hay muchas formas o algoritmos, en esta ocasión las idea que sugerimos es descompones las letras y verlas como un conjunto de segmentos ordenados con convenientemente:



Por ejemplo el código para graficar la letra "A" seria el siguiente:

Comenzamos con un bucle del tipo "do-while", el cual nos permite mostrar la letra un determinado tiempo antes de que se muestre otra.

Luego vemos un primer bucle "for", con el cual graficaremos los segmentos (3 y 4) que se mostraron antes, como vimos en una entrada anterior el proceso de multiplexación de una matriz consiste prender y apagar una secuencia leds a una velocidad alta con lo cual pareciera que todos los leds de ese segmento están prendidos a la vez.

En el segundo bucle "for", graficamos los segmentos (1 y 2) de la imagen anterior, por ultima aumentamos el valor de la variable k, para indicar que se ha mostrado una vez mas la letra.


El proceso para graficar el resto de letras y símbolos es el mismo, simplemente descomponerlos en segmentos e ir creando estos con bucles "for".

Por ultimo declaramos el "void loop()", luego de creamos la variable de tipo char "num", la cual almacenera el caracter obtenido por el monitor serial.

if(Serial.available()>0 ), aquí preguntamos si hay datos listo para leer en el bufer del puerto serial
num=Serial.read();, num, almacena el caracter optenido del puerto serial
Luego, simplemente llamamos a la función que esta relaciona con ese caracter, que luego sera mostrado en la matriz.


Codigo en Arduino:
VideoTurorial: