|
Matriz de LED 8X8 (Parte II) | |||
En la entrega anterior vimos todo el hardware necesario para crear una pequeña matriz de LEDs que pudiera ofrecer caracteres o símbolos fijos y, en un avance más de diseño, mostrar un mensaje en desplazamiento, dándote la oportunidad de utilizarlo para múltiples aplicaciones. La inclusión de un conector ICSP será fundamental para grabar rápidamente el microcontrolador y disponer al instante de mensajes diferentes con sólo organizar algunas líneas del software necesario para su funcionamiento. Desde vender un vehículo, pasando por los clásicos carteles utilizados en los aeropuertos con el apellido de una persona a la que se espera y terminando en un divertido gadget paraanunciar las ofertas de fin de temporada, los carteles pasa-mensajes están en el ABC constructivo de todo electrónico experimentador. |
||||
¿Todavía no hiciste el tuyo?Como mencionamos anteriormente, la construcción del hardware quedará sometida a tu elección, gusto y posibilidad económica. Como pudiste apreciar en las imágenes, nosotros optamos por LEDs individuales y montamos nuestro desarrollo en dos placas bien definidas: una exclusiva para los LEDs y otra para el resto de los componentes necesarios para el circuito. La construcción nos quedó cual si fuese un libro que se puede abrir al medio y dejar al descubierto todas las conexiones. Este método nos permite acceder rápidamente a cualquier sector del hardware para realizar correcciones de último momento y reformas que con el tiempo se nos ocurra realizar sobre la construcción inicial. Además, la fabricación realizada sobre placas universales pre-agujereadas facilita aún más la tarea de modificación, ampliación y corrección del diseño. |
||||
|
||||
|
||||
Microcontroladores - PIC |
En la imagen puedes ver claramente las partes fundamentales que componen el hardware que hemos decidido montar, con sus componentes más 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 construcción ya que no estás fabricando un instrumento de electromedicina ni el módulo principal de un satélite de aplicaciones militares. No. Estamos aprendiendo, practicando, ensayando, transitando el camino de la experimentación y el desarrollo amateur. Será fantástico y muy bienvenido que puedas construir tus propios circuitos impresos de doble faz en FR4, con máscara antisoldante y agujeros metalizados, pero debes considerar también que hay personas que recién están aprendiendo a soldar y se entusiasman con estos proyectos o están aquellos casos en que los recursos económicos y los conocimientos son escasos para llevar a buen término una placa doble faz como debiera emplear este desarrollo. |
|||
|
Los grupos de cables están muy bien definidos. Observa la imagen con detenimiento y notarás la simpleza del montaje |
|||
Los grupos de cables están muy bien definidos e indicados en la imagen superior, donde se pueden identificar los correspondientes a las columnas, las filas, la conexión desde el puerto C del PIC hacia el ULN2803A, los cables de alimentación y los que llevan la información de las filas desde el puerto B hacia los transistores. De forma menos visible, por detrás de las conexiones de las filas, se encuentra la línea de conexión de la alimentación con el 7805, los capacitores de filtrado (electrolíticos) y desacoplo (cerámicos), la llave interruptora de alimentación y los diodos de protección contra la inversión de polaridad. Esto es tanto para la alimentación desde la batería como para la entrada de energía desde alguna alimentación general (12 Volts del coche) o desde una fuente conectada a la red domiciliaria. |
||||
|
La matriz armada, vista desde atrás |
|||
Como dato final, antes de
dedicarnos de lleno a experimentar con el software, te recomendamos
instalar el microcontrolador sobre un zócalo de modo tal que puedas
extraerlo fácilmente para su programación, 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 líneas de comandos y hacemos muchos
ensayos sin movilizar el PIC de su zócalo. Recuerda que si no realizas
la tarea de extracción y colocación de manera cuidadosa, puedes romper
fácilmente el zócalo o arrancar un pin del PIC, hecho que lamentarás
mucho. Finalmente, un precinto plástico para sujetar la batería a la
placa y ¡listo! ¡A programar se ha dicho! |
||||
|
Un símbolo al azar (la letra "R") y su formación en la matriz |
|||
|
Utilizando la misma imagen de ejemplo del artículo 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 posición Nº3 (RC2) nos entregue el valor decimal “127”, que saldrá desde el puerto B e ingresará a través de las filas. Luego, el contador del puerto C avanzará a la siguiente posición y desde el puerto B llegará el siguiente dato: el valor decimal 72. De esta forma, el contador del puerto C avanzará una posición 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 análisis nos muestra que lo hace columna a columna a medida que el contador (del puerto C) avanza una posición. |
|||
Formando un caracter, paso a paso (clic para ampliar) |
||||
En el siguiente video podemos ver cómo 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 (según el ejemplo mostrado hasta aquí), dentro de la rutina preparada especialmente para crear el video, se han colocado datos en la posición 128 del puerto B, es decir, en el LED superior correspondiente a cada columna “no utilizada” (0,1 y 7). El propósito 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 variación de velocidad mostrada será fundamental para descubrir lo que aún no habías comprendido acerca del funcionamiento de esta matriz. |
||||
|
||||
El programa |
||||
tener siempre a mano un sistema de iluminación de emergencia. |
Con sólo este pequeño listado, aparecerá la letra "R" fija en la matriz |
|||
sencilla matriz de LEDs de al menos 8 LEDs por otros 8 LEDs (ancho por alto). Midiendo diodos y transistores Otra maravilla de la tecnología y el avance en capacidad de almacenamiento de información y calidad de imagen. |
Lo primero es iniciar el
lazo FOR - NEXT para saber qué dato deberemos ir a buscar a la
instrucción DATA en cada vuelta del ciclo. Observa que la mencionada
instrucción posee los ocho valores que utilizaremos para formar el
carácter 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 instrucción 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 ejecutarán de la misma forma. |
|||
Monitor Cardíaco |
Un corazón es un factor sorpresa que nunca falla al igual que una flor. Creer o reventar |
|||
ON-OFF de un toque | ||||
Montajes | ||||
Capacímetro Digital | ||||
Construye tus propios LCD I2C |
La realización de todo lo que quieras mostrar se basa fundamentalmente en la construcción de los mapas de bits que se aplicarán en la instrucción DATA. Luego, haremos una secuencia FOR – NEXT para mostrar el símbolo y otra más para no mostrar nada en la salida del puerto B. También puede ser una buena idea diagramar un corazón más pequeño para simular una variación de tamaños entre ciclo y ciclo. Tú elijes, ellas se rinden a tus pies. |
|||
Dip - Meter | ||||
|
||||
Servomotores |
De manera muy sencilla, hemos agregado al programa otra secuencia de datos en la instrucción DATA y además ahora aparece un contador de tiempo de encendido del símbolo y otro segmento de programa donde se apagan los puertos y se coloca un retardo de tiempo equivalente al que dura el símbolo visible pero, en este caso, apagado. Volvemos a destacar la importancia de la imaginación a la hora de diseñar los símbolos y caracteres a utilizar en este tipo de carteles. Una aplicación inteligente es garantía de éxito asegurado y por qué no una posible fuente de ingresos extras cuando alguien se acerque a consultarte cuánto le cobras por construirle uno. |
|||
Robot Siguelíneas | ||||
Listado de programa para visualizar un corazón intermitente |
||||
Moviendo el texto |
||||
|
||||
Montajes |
Observa que la instrucción READ siempre se debe colocar en la parte más “inicial” del programa. Podemos entonces colocar una sola instrucción o varias que correspondan a cada caracter para mantener ordenado el programa. Además, 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: |
|||
Monitor de tensión de línea | ||||
Listado de programa para generar texto en movimiento. Tu primer "Scroll Text" |
||||
Conclusión
|
||||
Indice de montajes 2 | ||||