You are on page 1of 10

MATRIS DE LED 4x4 Como mencionamos anteriormente, la construccin del hardware quedar sometida a tu eleccin, gusto y posibilidad econmica.

Como pudiste apreciar en las imgenes, nosotros optamos por LEDs individuales y montamos nuestro desarrollo en dos placas bien definidas: una exclusiva para elos LEDs y otra para el resto de los componentes necesarios para el circuito. La construccin nos qued cual si fuese un libro que se puede abrir al medio y dejar al descubierto todas las conexiones. Este mtodo nos permite acceder rpidamente a cualquier sector del hardware para realizar correcciones de ltimo momento y reformas que con el tiempo se nos ocurra realizar sobre la construccin inicial. Adems, la fabricacin realizada sobre placas universales pre-agujereadas facilita an ms la tarea de modificacin, ampliacin y correccin del diseo.

El Hardware utilizado en detalle En la imagen puedes ver claramente las partes fundamentales que componen el hardware que hemos decidido montar, con sus componentes ms destacados. Por supuesto que las conexiones del lado soldadura se presentan en todos estos casos con visibles signos de una aparente falta de prolijidad. Eso no debe ser un condicionante a la hora de la construccin ya que no ests fabricando un instrumento de electromedicina ni el mdulo principal de un satlite de aplicaciones militares. No. Estamos aprendiendo, practicando, ensayando, transitando el camino de la experimentacin y el desarrollo amateur. Ser fantstico y muy bienvenido que puedas construir tus propios circuitos impresos de doble faz en FR4, con mscara antisoldante y agujeros metalizados, pero debes considerar tambin que hay personas que recin estn aprendiendo a soldar y se entusiasman con estos proyectos o estn aquellos casos en que los recursos econmicos y los conocimientos son escasos para llevar a buen trmino una placa doble faz como debiera emplear este desarrollo.

Los grupos de cables estn muy bien definidos. Observa la imagen con detenimiento y notars la simpleza del montaje Los grupos de cables estn muy bien definidos e indicados en la imagen superior, donde se pueden identificar los correspondientes a las columnas, las filas, la conexin desde el puerto C del PIC hacia el ULN2803A, los cables de alimentacin y los que llevan la informacin de las filas desde el puerto B hacia los transistores. De forma menos visible, por detrs de las conexiones de las filas, se encuentra la lnea de conexin de la alimentacin con el 7805, los capacitores de filtrado (electrolticos) y desacoplo (cermicos), la llave interruptora de alimentacin y los diodos de proteccin contra la inversin de polaridad. Esto es tanto para la alimentacin desde la batera como para la entrada de energa desde alguna alimentacin general (12 Volts del coche) o desde una fuente conectada a la red domiciliaria.

La matriz armada, vista desde atrs Como dato final, antes de dedicarnos de lleno a experimentar con el software, te recomendamos instalar el microcontrolador sobre un zcalo de modo tal que puedas extraerlo fcilmente para su programacin, en caso de no disponer de un sistema grabador de PICs que trabaje con el modo ICSP (In - Circuit Serial Programming). En nuestro caso, con el grabador GTP-USB, lo utilizamos en modo ICSP, cambiamos lneas de comandos y hacemos muchos ensayos sin movilizar el PIC de su zcalo. Recuerda que si no realizas la tarea de extraccin y colocacin de manera cuidadosa, puedes romper fcilmente el zcalo o arrancar un pin del PIC, hecho que lamentars mucho. Finalmente, un precinto plstico para sujetar la batera a la placa y listo! A programar se ha dicho! Planteando el software

Un buen planteo previo del programa (es decir, analizar y llevar a un papel las ideas) es una tarea obligada cuando vamos a desarrollar un software, por ms sencillo que este parezca. Por otro lado, debemos analizar y contabilizar de antemano el hardware que disponemos y lo que pretendemos de l. En el ejemplo que nos convoca, podemos deducir de manera muy clara que el puerto B del PIC se encargar de entregarnos los datos que veremos en cada columna y, por su parte, el puerto C se encargar de mover y desplazar estos datos a lo ancho de la pantalla hasta el lugar correcto donde deban ser presentados.

Un smbolo al azar (la letra "R") y su formacin en la matriz Utilizando la misma imagen de ejemplo del artculo anterior, nos encontramos que para representar la letra R debemos activar un contador que vaya desde el borde izquierdo de la matriz hacia el borde derecho y que en la posicin N3 (RC2) nos entregue el valor decimal 127, que saldr desde el puerto B e ingresar a travs de las filas. Luego, el contador del puerto C avanzar a la siguiente posicin y desde el puerto B llegar el siguiente dato: el valor decimal 72. De esta forma, el contador del puerto C avanzar una posicin a la derecha y el puerto B entregar otro dato, uno a uno hasta completar las ocho posiciones. Este mecanismo, ejecutado muchas veces en un segundo, nos permitir percibir que la letra R est quieta all y que se forma toda junta y de una sola vez. Sin embargo, el anlisis nos muestra que lo hace columna a columna a medida que el contador (del puerto C) avanza una posicin.

Formando un caracter, paso a paso (clic para ampliar) En el siguiente video podemos ver cmo se forma la letra o caracter, paso a paso, con cada incremento de la salida del puerto C. En el caso de las posiciones en que no existen LEDs encendidos (segn el ejemplo mostrado hasta aqu), dentro de la rutina preparada especialmente para crear el video, se han colocado datos en la posicin 128 del puerto B, es decir, en el LED superior correspondiente a cada columna no utilizada (0,1 y 7). El propsito es saber en todo momento la actividad del puerto C. Conocer qu valores toma a cada paso y las columnas que atraviesa mientras no presenta datos tiles en la matriz. Cuando el puerto B entrega datos, estos se muestran en la columna correspondiente. La variacin de velocidad mostrada ser fundamental para descubrir lo que an no habas comprendido acerca del funcionamiento de esta matriz. El programa Lo elemental, entonces, es dividir el trabajo en tres bloques que deben estar perfectamente sincronizados: crear un contador para que el puerto C avance desde el inicio (a la izquierda de la matriz) hasta el final (a la derecha de la matriz), a cada paso del contador del puerto C; entregar por el puerto B los datos correspondientes a cada columna; y por ltimo, ajustar los tiempos del programa para obtener un funcionamiento correcto sin parpadeos molestos y simulando tener una imagen esttica y fija. Al contador de columnas lo resolveremos mediante un lazo FOR NEXT de 8 ciclos, mientras que a la obtencin de los datos a entregar por el puerto B ser mediante el conjunto de instrucciones DATA, RESTORE y READ. Naturalmente, al inicio definiremos el PIC a utilizar con la frecuencia del oscilador. Si deseas utilizar otros modelos como el 16F877A o el 16F873A, debes corregir esta primera lnea, al igual que si optas por otra frecuencia de cristal. Yo utilic estos componentes porque los tena a mano; t puedes utilizar y experimentar con otros mientras se respete el circuito y el principio de funcionamiento. Luego declaramos las variables, como siempre en todo programa, y llegamos al lazo principal en la etiqueta Inicio, que es donde comienza la parte interesante del sistema.

Con slo este pequeo listado, aparecer la letra "R" fija en la matriz Lo primero es iniciar el lazo FOR - NEXT para saber qu dato deberemos ir a buscar a la instruccin DATA en cada vuelta del ciclo. Observa que la mencionada instruccin posee los ocho valores que utilizaremos para formar el carcter seleccionado (la letra R). Entonces, para un valor inicial de cero en la variable CONTADOR, el puntero RESTORE nos indicar que debemos tomar el primer valor encontrado en DATA. Este valor se cargar en la variable LETRA mediante la instruccin READ. Una vez obtenido el dato, ya sabemos que la variable A tiene un valor inicial igual a 1 y eso se cargar a la salida del puerto C. Como cada transistor darlington del ULN2803A se activa con un estado alto, se activar directamente la salida PORTC.0 en estado alto. Recordemos que en BASIC escribir 1 y %00000001 en el puerto es exactamente lo mismo; una forma es decimal y la otra binaria pero ambas se ejecutarn de la misma forma. Para el caso del puerto B, encontramos el caracter ~ antes de la variable LETRA. Este caracter especial nos indica que cargaremos sobre FILA (la salida del puerto B) el complemento de los datos que contenga la variable LETRA. Por qu hacemos esto? Porque a la salida del puerto B tenemos transistores PNP y estos se consideran activos en estado bajo.

Por lo tanto, el dato decimal 127, que sera %011111111, saldr por el puerto B como %100000000 para de esta forma activar los 7 transistores PNP correspondientes a RB0 - RB6. Luego de esto, incrementamos la variable A multiplicndola por 2 y controlando el momento en que llegue al final de la matriz (borde derecho) con el condicionante IF THEN. Aplicamos un retardo que nos permita una visin sin parpadeos y listo! Ya tenemos nuestra matriz funcionando y mostrando un caracter (la letra R). Comienza el juego Lo primero ser hacer intermitente en el tiempo el carcter exhibido. Es decir, podemos crear un dibujo con el smbolo de STOP o PARE que funcione de forma intermitente para utilizarlo como baliza en el coche, o tambin puedes crear un grfico con forma de corazn y hacer que funcione en forma intermitente bajo una camisa semi-traslcida para demostrarle a tu chica que el corazn te late por ella. Es decir, para entretenerse hay miles de ideas posibles, veamos cmo lograrlo.

Un corazn es un factor sorpresa que nunca falla al igual que una flor. Creer o reventar La realizacin de todo lo que quieras mostrar se basa fundamentalmente en la construccin de los mapas de bits que se aplicarn en la instruccin DATA. Luego, haremos una secuencia FOR NEXT para mostrar el smbolo y otra ms para no mostrar nada en la salida del puerto B. Tambin puede ser una buena idea diagramar un corazn ms pequeo para simular una variacin de tamaos entre ciclo y ciclo. T elijes, ellas se rinden a tus pies. De manera muy sencilla, hemos agregado al programa otra secuencia de datos en la instruccin DATA y adems ahora aparece un contador de tiempo de encendido del smbolo y otro segmento de programa donde se apagan los puertos y se coloca un retardo de tiempo equivalente al que dura el smbolo visible pero, en este caso, apagado. Volvemos a destacar la importancia de la imaginacin a la hora de disear los smbolos y caracteres a utilizar en este tipo de carteles. Una aplicacin inteligente es garanta de xito asegurado y por qu no una posible fuente de ingresos extras cuando alguien se acerque a consultarte cunto le cobras por construirle uno.

TEXTO CON MOVIMIENTO

Listado de programa para visualizar un corazn intermitente Moviendo el texto Aqu comienza lo que estabas esperando, aqu comienza la accin de verdad. Para desplazar un texto dentro de una matriz debemos aplicar todo lo visto hasta aqu y slo moverlo. Cmo se realiza esto? Muy sencillo. Primero cargas en la seccin de la instruccin DATA todos los datos correspondientes a las filas que mostrars. Luego generas un incremento de la variable CONTADOR a cada ciclo y, de este modo, forzars al puntero RESTORE a que lea un nuevo dato para enviar al puerto B. De este sencillo modo, habrs creado el movimiento en tu matriz. Observa que la instruccin READ siempre se debe colocar en la parte ms inicial del programa. Podemos entonces colocar una sola instruccin o varias que correspondan a cada caracter para mantener ordenado el programa. Adems, cada caracter terminar en un dato igual a cero que ser el equivalente a dejar un espacio entre letra y letra. Agregaremos ceros para

generar espacios entre el fin y el inicio de una palabra y el resultado ser el siguiente listado de programa que corresponde al video anterior:

Listado de programa para generar texto en movimiento. Tu primer "Scroll Text" Conclusin Al texto que hemos generado le puedes agregar todo lo que la memoria del PIC alcance. Te puedo asegurar que te vas a cansar de escribir texto y smbolos y nunca lo llenars. Al menos

al 16F876A. Puedes utilizarlo como pasa-mensajes para publicidad, para vender productos, para saludar amigos en estas fiestas, en fin; para lo que quieras transmitir, all tendrs un nuevo medio para hacerlo. Recuerda lo sencillo que es: moviendo el puerto C, cargas en forma sincronizada los datos por el puerto B. Eso es todo. Intuyo que no creas que fuera tan sencillo. Divirtete, juega, experimenta, aprende y, como siempre, esperamos ver tus logros en video. Te dejamos los programas de los ejemplos vistos en el artculo y un .TXT con un listado de letras y smbolos prearmados para que no pierdas tiempo y comiences cargar tu matriz hoy mismo.Felicidades! Enlaces Descarga: Descarga: Descarga: Descarga:

Letra "R" formndose Corazn ganador Scroll-Text NeoTeo Archivo TXT con un alfabeto y caracteres prearmados