pantalla matriz led

Upload: wilson-gomez

Post on 10-Feb-2018

282 views

Category:

Documents


3 download

TRANSCRIPT

  • 7/22/2019 Pantalla Matriz Led

    1/39

    Una guia bastante completa y esta muy buena para hacerla.

    Introduccin

    La gran mayora de los aficionados a la electrnica, tarde o temprano, se propone la

    construccin de un cartel basado en una matriz de diodos LEDs. El propsito de este

    artculo es explicar, de forma clara y sencilla, la forma de hacerlo.

    A lo largo de estos parrafos veremos la forma de abordar el problema, y el principio de

    funcionamiento de una matriz de LEDs de un tamao cualquiera. No construiremos ni

    programaremos una, pero si veremos como se debe hacer. Si el lector necesita un

    proyecto de este tipo listo para usar, puede consultar los que se listan al final de este

    artculo.

    Utilidad de un cartel de LEDs

    Un cartel formado por varias filas y columnas de LEDs, convenientemente programado,

    puede servir para pasar mensajes publicitarios, decorar nuestra habitacin, ordenador o

  • 7/22/2019 Pantalla Matriz Led

    2/39

    lo que se nos ocurra. No solo se trata de un proyecto ms que interesante para llevarlo a

    cabo como hobbysta, sino que puede resultar interesante como un producto

    comercializable. Es que estas matrices, que en algunos pases se las conoce como

    cartel de LEDs o Publik, son un recurso muy frecuentemente utilizado con fines

    publicitarios o informativos.

    El Hardware

    Desde el punto de vista del hardware, bsicamente consiste en una matriz de pxeles

    similar a los de la pantalla de un ordenador, generalmente de un solo color (la mayora

    de las veces rojos), aunque con el descenso de los precios de los LEDs individuales o en

    paneles, es cada vez ms frecuentes ver carteles bicolores o incluso multicolores,

    aprovechando la ventaja del los LEDs RGB, que pueden mostrar cualquier color.

    Matriz de LEDs RGB de 8x8 puntos.

    Como es de suponer, el desarrollo, construccin y programacin de un cartel e este tipo

    es una tarea bastante compleja, pero perfectamente posible para cualquiera que tengaconocimientos bsicos de electrnica y programacin. Este artculo puede ser utilizado

  • 7/22/2019 Pantalla Matriz Led

    3/39

    como una gua paso a paso del proceso de creacin de un cartel de este tipo. Y aunque

    no construyas uno, leyndolo aprenders algn truco til que podrs emplear en otro

    proyecto.

    Para mantener el nivel de la explicacin dentro de lo razonable, y para no gastar una

    fortuna en nuestro cartel, lo disearemos monocromtico, utilizando LEDs de color rojo

    nicamente. Las dimensiones de la matriz utilizada para mostrar los textos la decidir

    cada uno de los lectores, pudiendo ser tan pequea (7 filas y 5 columnas) o tan grande

    como se desee. Un tamao razonable y muy empleado es el de 7 filas por 80 columnas,

    que permite escribir unas 14 o 16 letras de 7 pixeles de altura. A pesar de no ser

    demasiado grande, ya habrs sacado la cuenta de que se necesitan 560 LEDs

    individuales para armar el cartel.

    Encendiendo un LED

    En el nmero 2 de la Revista uControl, en el artculo llamado PICs y LEDs: una pareja

    perfecta vimos como encender un LED desde un microcontrolador. Y de hecho es algo

    muy simple: conectamos el nodo del LED al PIC, el ctodo a un resistor y el extremo

    de este a +V. Cuando el pin del microcontrolador est en 1, el LED enciende. Pero

    lamentablemente este esquema no sirve para la construccin de un cartel matricial como

    este, ya que al utilizar cientos de LEDs necesitaramos tener un microcontrolador que

    tenga como mnimo ese nmero de pines de salida (y por supuesto, no existe).

    Multiplexado

    El secreto, por supuesto, est en el multiplexado. Esta tcnica permite utilizar unos

    pocos pines de E/S del microcontrolador para manejar una serie de circuitos integrados

    que se encarguen de excitar los LEDs. Hay varias maneras, y muchos modelos

    diferentes de circuitos para hacer esto.

    Pueden usarse un tipo de integrado digital llamado LATCH, que bsicamente es una

    memoria en la que escribimos un valor, y lo mantiene en sus salidas hasta que nosotros

    lo indiquemos. De esta manera, usando varios latches podramos encender los LEDs por

    turnos, rpidamente para que no se note el parpadeo, y de esa manera formar una

    palabra en el cartel.

    Otra forma es utilizar un registro de desplazamiento como los analizados en el nmero 1

    de la Revista uControl. Y de hecho, es de esta forma cmo vamos a disear nuestro

    cartel. Como vimos en esa oportunidad, un registro de desplazamiento funciona de la

    misma manera en que funciona una cola de gente que espera para entrar en un cine. Por

    un extremo de la cola van ingresando las personas que llegan, y por el otro van saliendode la fila. En un registro de desplazamiento, en lugar de personas tenemos 0 y 1. Lo

  • 7/22/2019 Pantalla Matriz Led

    4/39

    bueno de esto es que para meter datos (0s y 1s) en el registro de desplazamiento

    solo hacen falta tres pines del microcontrolador, independientemente de lo largo que

    sea.

    Estos pines se encargan de tres tareas: Uno de ellos, al que denominaremos DATA es

    el encargado de decirle al registro de desplazamiento que lo que introduciremos es un

    0 o un 1. El segundo se encarga de avisar al registro que el dato ya est listo para

    ser ingresado, y lo llamaremos CLOCK. Y el ultimo, que no es indispensable, es el

    RESET, que se encarga de vaciar la fila escribiendo 0s en todas las salidas del

    registro.

    Para desarrollar nuestro ejemplo utilizaremos el circuito integrado 74HC164N, que es

    un registro de desplazamiento de 8 bits. Es decir, con el se puede armar una fila de 8

    personas. Para construir un cartel de 80 columnas, necesitaramos utilizar 10 de estos

    integrados, uno a continuacin del otro. Afortunadamente, este integrado cuesta solo

    centavos.

    En la figura 1 podemos ver la funcin de cada uno de los pines del 74HC164N y en la

    figura 2 de que forma podemos conectar uno a continuacin del otro para obtener un

    registro de desplazamiento de cualquier longitud.

  • 7/22/2019 Pantalla Matriz Led

    5/39

    Figura 1.

  • 7/22/2019 Pantalla Matriz Led

    6/39

    Figura 2.

    Filas y columnas

    Bien, con el esquema explicado podemos encender los LEDs que queramos de una fila

    de 80 bits de largo. Si en el registro de desplazamiento introducimos 11111111, los

    80 LEDs estarn encendidos. Si queremos encender uno por medio, escribiremos

    1010101. Por supuesto, cuando lleguemos a la parte de la programacin veremos

    cmo se ingresan uno a uno los 0 y 1 en el registro.

    En este punto puede ser necesario analizar el tema de las filas. Si tenemos, por ejemplo,

    un cartel con 7 filas, y lo explicado recin sirve para manejar solo una de ellas

    debemos utilizar un registro de desplazamiento para cada una de las filas restantes?

    Afortunadamente, la respuesta es no.

    Si bien podramos utilizar 7 registros de este tipo, la cantidad de circuitos integrados

    necesarios (56 de ellos), la complejidad del circuito impreso y el costo implicado lo

    hacen poco aconsejable. Nosotros aprovecharemos un defecto del ojo humano, que

    mantiene la imagen vista durante unos 20 o 30 milisegundos, para dibujar una fila a la

    vez, pero muy rpidamente, de forma que todo el cartel parezca estar encendido a la

    vez. Si, se trata de un sistema similar al empleado en el cine o en la televisin.

    Si seguimos pensando en un cartel de 7 filas y 80 columnas, sin utilizar registros de

    desplazamiento necesitaramos 560 pines de entrada/salida. Con el esquema propuesto

    solo necesitamos 7 de ellos para seleccionar la fila a escribir, y tres para manejar el

    registro de desplazamiento. Es decir, un PIC de 3 euros y 18 pines servira

    perfectamente para realizar el proyecto.

    Cmo funciona la matriz?

    Como dijimos antes, la pantalla est formada por una serie de filas y columnas. La

    interseccin entre ambas contiene un LED. Para que este encienda, tiene que recibir

    simultneamente un 0 en la fila, y un 1 en la columna. Cuando se dan estas

    condiciones, la electrnica de la placa se encarga del encendido del LED en cuestin. La

    forma de generar un mensaje sobre el display es relativamente sencilla, si nos atenemos

    al siguiente algoritmo:

    1) Apagar todas las filas.

    2) Escribir los valores correspondientes a la primer fila en el registro de desplazamiento,

  • 7/22/2019 Pantalla Matriz Led

    7/39

    teniendo en cuenta que el primer digito binario colocado corresponde al ltimo LED de

    la fila, y el ultimo en poner al de la primer columna.

    3) Encenderla primer fila, esperar un tiempo, y volver a apagarla.

    4) Repetir los pasos 2 y 3 para las filas restantes.

    El tiempo de la demora debe ser tal que permita una visualizacin correcta, sin molestos

    parpadeos y con los LEDS brillantes. Hay que tener en cuenta que si utilizamos tiempos

    mayores para el encendido de cada fila, el brillo de los LEDS ser mayor, pero tambin

    aumentar el parpadeo. La forma de transformar este algoritmo en un programa

    funcional depende de cada programador, y puede ser ms o menos complejo segn se

    permitan diferentes tipos de caracteres, animaciones, etc.

    El brillo de los LEDs

    Un punto a tener en cuenta es la intensidad del brillo que puede proporcionar el tipo de

    LED que utilicemos. Un LED, utilizado en aplicaciones normales, se alimenta con

    unos 3V y requiere unos 15mA (varia ligeramente de un modelo a otro) para brillar con

    una buena intensidad. En caso de un tpico cartel de 7 filas, a pesar de que las veremos

    encendidas al mismo tiempo, cada LED solo estar encendido la sptima parte del

    tiempo, por lo que su brillo ser siete veces inferior al normal, y nuestro cartel apenasser visible.

    Afortunadamente esto tambin tiene solucin: dado que los tiempos que permanecer

    encendido cada LED no superar los 20 o 30 milisegundos, podremos hacerles circular

    una corriente mayor a la nominal sin que lleguen a daarse, con lo que brillarn mucho

    ms intensamente, dando como resultado un cartel perfectamente visible.

    Respecto de los LEDs, podremos utilizar LEDs discretos (y soldar 1120 terminales) o

    comprar paneles de 7x5 LEDs que tienen unos 14 o 16 terminales (segn el modelo),

    estando ya interconectados en forma de matriz. Quizs sea esta la mejor alternativa.

    El circuito de ejemplo

    Dado que nuestro hipottico cartel tiene fines meramente educativos, y la intencin

    mantener su costo lo ms bajo posible para que cada lector pueda construirlo, por lo que

    intentaremos realizarlo en base a un microcontrolador pequeo, como el PIC16F628A.

    Si el lector necesita un cartel de mayor tamao o con capacidad para almacenar textos o

    imgenes ms extensos, deber utilizar algn micro con mayor capacidad y velocidad.

  • 7/22/2019 Pantalla Matriz Led

    8/39

    La utilizacin de una memoria EEPROM externa de un tamao bastante grande, como

    la 24C256, nos brinda la posibilidad de almacenar mucho texto en ella. Por supuesto,

    esto tambin puede ser ampliado con mucha facilidad.

    Dividiremos el esquema electrnico del cartel en dos partes: en primer lugar veremos

    toda la lgica de control, y en segundo, la pantalla con el registro de desplazamiento.

    A la hora de llevarlo a la prctica se puede incluso hacer dos circuitos impresos por

    separado. Esto le permitira al lector experimentar con otros controladores sin necesidad

    de volver a montar la placa de los displays, o viceversa.

    El circuito controlador

    Este es el cerebro de nuestro cartel. Ser el encargado de gestionar el encendido de cada

    LED mediante rdenes enviadas a las columnas mediante el registro de desplazamiento

    y a las filas.

    Como una fila tendr muchos LEDs (80, por ejemplo)y existe la posibilidad que en

    algn momento puedan estar todos encendidos, no podemos conectarlas directamente a

    pines de E/S del PIC, porque la corriente que demandaran hara que el puerto del

    microcontrolador pase a mejor vida. Para evitar esto, utilizaremos en medio un

    transistor capaz de manejar la corriente requerida.

  • 7/22/2019 Pantalla Matriz Led

    9/39

    Controlador del cartel.

    Analicemos el circuito de la figura anterior. El centro de todo es el microcontrolador

    PIC16F628A, que tiene su pin de RESET conectado a un pulsador y un resistor de 10K.

    Este pulsador permite reiniciar el cartel cuando lo necesitemos. Tambin se ha

    implementado un circuito de reloj externo, basado en un cristal de 4 MHz y dos

    condensadores de 22 nF. Esto le permite al PIC ejecutar un milln de instrucciones por

    segundo, ms que suficientes para este proyecto.

    Los pines 1 y 2, correspondientes a los terminales A2 y A3 del microcontrolador, se hanutilizado para acceder a una memoria EEPROM del tipo 24C256. Esta memoria es de

    acceso serial (por eso necesitamos solo dos pines del PIC para usarla) mediante el

    protocolo I2C, y tiene capacidad para almacenar 32.768 Bytes. Si nuestro programa

    hace uso de ella, podemos guardar all 32.768 caracteres (con el display en modo texto)

    o ms de 450 pantallas de 7x80 pxeles en modo grfico. Si resultara insuficiente, puede

    ponerse una memoria de mayor capacidad, siempre consultando la hoja de datos de la

    misma para asegurarnos su compatibilidad con la del ejemplo.

    Todo el puerto B del PIC est dedicado a controlar las filas del cartel. Como ya habrn

    notado, tenemos 8 salidas para filas, y nuestro cartel tiene solo 7 filas. Efectivamente, la

  • 7/22/2019 Pantalla Matriz Led

    10/39

    fila 8 no se utilizar si nuestra pantalla est construida con mdulos LED de 7x5, pero

    el circuito de control est preparado para el uso (en caso de que alguien los prefiera) de

    mdulos de 8x8 o bien para crear un cartel de 8 filas mediante el uso de LEDs sueltos.

    Quienes utilicen mdulos de 7x5 pueden ahorrarse el transistor de la fila 8.

    Por ltimo, los pines 17 y 18, correspondientes a los terminales A0 y A1 del

    microcontrolador se encargan de la gestin del registro de desplazamiento. El programa

    deber generar los pulsos de reloj necesarios por el pin 18, y meter los datos en el

    registro por el pin 17.

    No hemos incluido una fuente de alimentacin. Cualquier fuente comercial (o

    construida en casa) que sea capaz de entregar 5V y 2A ser suficiente. Esos 5V deben

    estar bien regulados, y por supuesto, el software deber estar escrito correctamente, es

    decir, no encender varias filas al mismo tiempo, ya que el consumo de todo el cartel

    encendido sera de unos 80 x 70 x 20mA = 11.2 A, lo que podra destruir la fuente en

    caso de que no cuente con protecciones adecuadas.

    El display

    Esta es la parte del proyecto que todo el mundo va a mirar, as que debemos ser prolijos

    al montarlo. Como puede verse en el esquema elctrico de la figura 4, hemos utilizado

    un total de 10 circuitos integrados 74HC164N para construir el registro de

    desplazamiento de 80 bits de largo, uno para cada columna. Como explicamos, sialguien quiere hacer un cartel ms largo o ms corto, deber poner ms o menos

    integrados.

  • 7/22/2019 Pantalla Matriz Led

    11/39

    De esta forma se conectan los LEDs

    en filas y columnas.

    Si miramos el esquema del display, veremos que en la parte superior se muestra como

    est conectado cada LED dentro de la matriz de 5x7. Esto es importante tenerlo en

    cuenta a la hora de comprar los mdulos, ya que hay una gran cantidad de modelos, y

    algunos de ellos tienen los LEDs conectados en el sentido inverso.

    Cada display tambin difiere en la funcin de cada terminal, por lo que se debe estar a

    atentos a la hoja de datos para disear el circuito impreso apropiado, y conectarlos como

    corresponda.

    En el dibujo del circuito no hemos representado los 16 mdulos ni los 10 circuitos

    integrados, por una cuestin de espacio, pero es fcil darse cuenta de qu forma se

    conectan las filas y columnas de los dems displays a cada 74HC164N.

    No utilizaremos el pin de RESET de los 74HC164N. En lugar de ser controlados desdeel microcontrolador, cada RESET est puesto a +5V, de forma que el integrado

    funcione continuamente. Si por algn motivo se desea borrar la pantalla, basta con

    enviar 80 0s al registro de desplazamiento y listo. El tiempo empleado para esa tarea

    es despreciable, ya que el microcontrolador estar ejecutando 1 milln de instrucciones

    por segundo. El utilizar una lnea de control menos nos permitir tener una placa de

    circuito impreso ligeramente ms sencilla.

    Cada salida de los 74HC164N, como dijimos, se conecta a una columna de la serie de

    displays. Esta conexin se efecta mediante un resistor de 1/8 de Watt, que en el

    esquema se ha dibujado con un valor de 330 ohm. Ese fue el valor adecuado para el tipo

    de mdulos que conseguimos para hacer el prototipo, pero su valor variar de un

  • 7/22/2019 Pantalla Matriz Led

    12/39

    modulo a otro. Se puede montar solo un display con resistores de 330 ohms, y ver como

    es el brillo de los LEDs. Si es escaso, se puede bajar el valor a 220 o 100 ohms. Con eso

    debera ser suficiente

    Video YouTube: http://www.youtube.com/watch?v=xz9BTzbF7JY

    El software

    Ahora nos toca abordar la programacin del hardware propuesto. El cartel del LEDs que

    estamos construyendo puede adoptar diferentes tamaos de acuerdo a las necesidades o

    componentes que cada uno consiga. Esto hace que sea imposible proporcionar un

    programa especfico que funcione en cualquier versin de cartel que se haya construido,

    pero sin embargo podemos hacer algo mucho mejor: ver de qu manera se escribe un

    programa de este tipo en BASIC (del PIC SIMULATOR IDE) para que cada uno lo

    adecue a su proyecto.

    Debemos pensar en un programa que nos permita mostrar pxeles individuales

    representados sobre la pantalla de nuestro cartel. Sigamos con el ejemplo del cartel de

    80 columnas y 7 filas de altura, recordando que todo lo que expliquemos puede ser

    adecuado para carteles de otro tamao.

    Lo primero que necesitamos saber es que el barrido del cartel debe hacerse por filas.

    Es decir, mostraremos el contenido de la primera fila, esperamos un tiempo determinado(unos pocos milisegundos), mostramos el de la segunda fila, esperamos nuevamente, y

    as hasta llegar a la ltima fila, tal como se expresa en el algoritmo visto mas arriba.

    El motivo de no emplear las columnas para realizar el barrido es que como son ms

    numerosas, el tiempo total que se necesita para escribir por filas es mucho menor que

    el necesario para escribir por columnas, y en la prctica eso significa que el brillo de

    nuestro cartel ser mucho mayor si lo hacemos por filas, ya que cada LED permanecer

    encendido 1/7 del tiempo. Si lo hicisemos por columnas, cada LED estara (en este

    ejemplo) encendido solo 1/80 del tiempo, por lo que su brillo seria unas 10 veces

    menor.

    Ahora bien, el primer problema a resolver es Cmo escribo los datos de una fila del

    cartel? Esto tiene una solucin ms que simple: solo debemos introducir en el registro

    de desplazamiento los 0 y 1 necesarios para que los LEDs que queremos estn

    encendidos en esa fila tengan +V en sus nodos. Por supuesto, mientras hacemos esto

    todos los pines del microcontrolador que controlan las filas debern estar apagadas, para

    que no se perciba una dbil luminosidad en todos los LEDs de la fila que estamos

    escribiendo a medida que pasan los datos a travs del registro.

    El primer valor que se debe meter en el registro de desplazamiento es el que

    http://www.youtube.com/watch?v=xz9BTzbF7JYhttp://www.youtube.com/watch?v=xz9BTzbF7JY
  • 7/22/2019 Pantalla Matriz Led

    13/39

    corresponder a la ltima columna. A medida que vamos ingresando los siguientes, se

    van desplazando hacia el final del cartel. Cuando hayamos introducido el valor nmero

    80 (que corresponder a la primera columna) el primer valor que metimos habr llegado

    a su posicin. En ese momento tenemos todo el registro escrito, y ya podemos activar la

    salida del PIC que corresponde a esa fila en particular.

    El tiempo que debe estar encendida la fila se puede determinar empricamente, pero por

    lo generan unos 10 milisegundos es suficiente. Si tenemos 7 filas, 10 milisegundos de

    demora permitiran escribir todo el cartel en unos 70 milisegundos, por lo que

    obtendramos un mximo de 1000/70 = 14 frames por segundo. Este es un muy buen

    valor para una pantalla de este tipo, ya que solo estamos mostrando un texto y no un

    video.

    En los clculos anteriores no tuvimos en cuenta el tiempo que se demora en escribir los

    80 valores en el registro de desplazamiento. Veamos porque: cada valor ingresado en el

    registro de desplazamiento demora unos 2 microsegundos. Es decir, demoramos 2 x 80

    = 160 millonsimas de segundo en escribir toda la fila. Si multiplicamos este valor por 7

    tendremos en tiempo que necesitamos para escribir las 7 filas del cartel, lo que nos da

    1136 millonsimas de segundo, es decir, poco ms de 1 milsima. Este es un tiempo

    despreciable frente a las 70 milsimas que nos tomamos para mostrar la imagen

    completa, y podemos despreciarla.

    Ahora vamos a ver, en BASIC, como hacer para escribir un valor en el registro de

    desplazamiento. Recordemos que el dato ingresa al registro en el momento que seproduce la transicin de 0 a 1 del pulso de CLOCK, por lo que se debern seguir los

    siguientes pasos para ingresar cada uno de los 80 valores correspondientes a cada fila:

    1) Fijar el valor del dato a escribir (si DATA es 1, hacer PORTA.0 = 1, si no PORTA.0

    = 0)

    2) Poner la lnea de CLOCK en estado bajo (PORTA.1 = 0).

    3) Esperar un 1 microsegundo (WaitUs 1)

    4) Poner la lnea de CLOCK en estado alto (PORTA.1 = 1). En este punto el dato entra

    efectivamente en el registro de desplazamiento.

    5) Esperar un 1 microsegundo (WaitUs 1)

    6) Fin

    En BASIC, si hemos declarado que

  • 7/22/2019 Pantalla Matriz Led

    14/39

    Symbol clock = PORTA.1

    Symbol data = PORTA.0

    Un 0 se escribira as:

    data = 0

    clock = 0

    WaitUs 1

    clock = 1

    WaitUs 1

    Y un 1 de la siguiente manera:

    data = 1

    clock = 0

    WaitUs 1

    clock = 1

    WaitUs 1

    Para escribir los 80 valores de la fila necesitamos hacer una subrutina que, tomando 10

    bytes de la memoria EEPROM (10 bytes x 8 bits = 80 bits, es decir, una fila completa)los vuelque al registro de desplazamiento.

    Si repetimos 7 veces este procedimiento, tendramos una pantalla de 7x80 completa.

    Eso significa que en la EEPROM cada pantalla va a necesitar de 70 bytes (10 bytes por

    fila, 7 filas) para almacenar el mapa de bits correspondiente.

    Veamos un ejemplo de cmo podra ser la subrutina encargada de escribir un byte

    tomado de la EEPROM en el registro de desplazamiento, a la que hemos llamado

    escriboByte:

    escriboByte:

    For columna = 1 To 8

    If dato.7 = 0 Then

    data = 0

    clock = 0

    WaitUs 1

    clock = 1

    WaitUs 1

    Elsedata = 1

  • 7/22/2019 Pantalla Matriz Led

    15/39

    clock = 0

    WaitUs 1

    clock = 1

    WaitUs 1

    Endif

    aux = ShiftLeft(dato, 1)

    Next columna

    Return

    Esta funcin debe ser llamada 10 veces para escribir la fila completa, con el valor a

    escribir guardado en la variable dato. El motivo por el cual el bucle FOR-NEXT toma

    los bits del byte desde el 7 hasta el 0 se debe a que justamente el ltimo bit es el que

    debe ingresar primero al registro de desplazamiento, tal como explicamos antes.

    Debemos partir de la base de que la informacin de la EEPROM la vamos a grabar

    desde un ordenador, y que seguramente crearemos un programa que permita, a partir de

    un texto determinado, generar los bits individuales que componen el bitmap de cada

    pantalla del cartel. Esto simplifica muchsimo la programacin del microcontrolador, ya

    que solo debe dedicarse a leer la EEPROM y volcar su contenido al registro de

    desplazamiento, sin tener que dibujar las letras a partir de una tabla ni nada por el

    estilo.

    Textos animados

    Para animar el texto mostrado en el display hay dos opciones. La primera de ella es que,

    una vez que el bitmap de la EEPROM ha sido mostrado en la pantalla, comencemos a

    redibujarlo continuamente (si no lo hacemos, el texto desaparecer de la pantalla) perocada un tiempo determinado (1 segundo por ejemplo) escribimos un bit 0 ms en cada

    fila. Es decir, escribimos 81 bits en el primer segundo, 82 en el segundo, etc. Esto har

    que el texto se desplace de izquierda a derecha, y es la animacin ms fcil de

    implementar. Sin embargo, lo normal es que los textos de desplacen en sentido

    contrario, por lo que nuestro programa debera hacer lo siguiente: comenzar escribiendo

    80 0s en el registro antes de enviar la informacin de la fila, luego escribir 79 0s, y

    as sucesivamente. De esa manera, el texto al principio no ser visible (estar

    dibujado a la derecha, fuera del registro de desplazamiento), y luego a medida que el

    numero de 0s escritos va disminuyendo, comenzara a ser visible, entrando desde la

    derecha.

    La segunda manera es que el software que escribe los datos en la EEPROM guarde cada

    cuadro de la animacin, uno a continuacin del otro, y que el PIC se limite a escribir

    cada cuadro ledo durante (por ejemplo) un segundo. Esto vuelve a facilitar mucho la

    programacin del PIC, a la vez que permite animaciones mucho ms complicadas. Por

    supuesto, el precio a pagar es el espacio de memoria EEPROM requerido para

    implementar esta tcnica.

  • 7/22/2019 Pantalla Matriz Led

    16/39

    Matriz de LEDS de 7 filas y 32 columnas.

    Discute, comenta o consulta este tema en el foro uControl!

    Introduccin

    Matriz de LEDS de 7x32

    En este proyecto veremos como disear y construir un displayde diodosleds, que nos

    servir de pantalla para exhibir textos o imgenes, fijas o animadas. Los usos son varios,

    desde un sofisticado modding en el gabienete de nuestro ordenador hasta su empleo

    como medio para exhibir mensajes o publicidad. Por supuesto, sus dimensiones pueden

    resultar insuficientes para algunos usos, pero es fcilmente expandible.

    La gran mayora de los aficionados a la electrnica, tarde o temprano, se propone la

    construccin de un cartel basado en una matriz de diodos LEDs. El propsito de este

    artculo es explicar, de forma clara y sencilla, la forma de hacerlo.

    Un cartel formado por varias filas y columnas de LEDs, convenientemente programado,

    puede servir para pasar mensajes publicitarios, decorar nuestra habitacin, ordenador o

    lo que se nos ocurra. No solo se trata de unproyectoms que interesante para llevarlo a

    cabo como hobbysta, sino que puede resultar interesante como un productocomercializable. Es que estas matrices, que en algunos pases se las conoce como

    http://www.ucontrol.com.ar/forosmf/index.php?topic=3.0http://www.ucontrol.com.ar/wiki/index.php?title=Display&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Display&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Diodoshttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Circuitecahttp://www.ucontrol.com.ar/wiki/index.php/Circuitecahttp://www.ucontrol.com.ar/wiki/index.php/Imagen:Foto7x32_1.jpghttp://www.ucontrol.com.ar/forosmf/index.php?topic=3.0http://www.ucontrol.com.ar/wiki/index.php?title=Display&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Diodoshttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Circuiteca
  • 7/22/2019 Pantalla Matriz Led

    17/39

    cartel de LEDs o Publik, son un recurso muy frecuentemente utilizado con fines

    publicitarios o informativos.

    Tabla de contenidos

    1Introduccin

    2Descripcin del proyecto

    2.1Houston, tenemos un problema

    2.2Multiplexado

    3El hardware

    3.1Tres Placas

    3.2El cable plano

    3.3Lista de componentes

    3.4PCBs

    4El Software

    4.1Programacin

    4.2El registro de desplazamiento

    4.3Cdigo fuente

    5Downloads

    6Algunas ideas

    6.1Conexin con la PC

    6.2Ms y ms ideas

    7Temas relacionados

    Descripcin del proyecto

    Houston, tenemos un problema

    Por ejemplo, un PIC16F876A de 28pines dispone de 22 dedicados a funciones de E/S,

    y su hermano mayor, el PIC16F877A que cuenta con un total de 40 pines dedica 33 a

    estos menesteres. Habitualmente, con un nmero as de pines de control es posible

    resolver correctamente casi cualquier situacin que se nos plantee, ya que normalmente

    en el diseo de un circuito de control basta con leer unos pocos pulsadores o sensores, y

    http://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#.E2.80.9CHouston.2C_tenemos_un_problema.E2.80.9Dhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#.E2.80.9CHouston.2C_tenemos_un_problema.E2.80.9Dhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#.E2.80.9CHouston.2C_tenemos_un_problema.E2.80.9Dhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Multiplexadohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Multiplexadohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Multiplexadohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_hardwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_hardwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_hardwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Tres_Placashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Tres_Placashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Tres_Placashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_cable_planohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_cable_planohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_cable_planohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#PCBshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#PCBshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#PCBshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_Softwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_Softwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_Softwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Programaci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Programaci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Programaci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#C.C3.B3digo_fuentehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#C.C3.B3digo_fuentehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#C.C3.B3digo_fuentehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Downloadshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Downloadshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Downloadshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Algunas_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Algunas_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Algunas_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Conexi.C3.B3n_con_la_PChttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Conexi.C3.B3n_con_la_PChttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Conexi.C3.B3n_con_la_PChttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#M.C3.A1s_y_m.C3.A1s_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#M.C3.A1s_y_m.C3.A1s_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#M.C3.A1s_y_m.C3.A1s_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Temas_relacionadoshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Temas_relacionadoshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Temas_relacionadoshttp://www.ucontrol.com.ar/wiki/index.php/PIC16F876Ahttp://www.ucontrol.com.ar/wiki/index.php?title=Pin&action=edithttp://www.ucontrol.com.ar/wiki/index.php/E/Shttp://www.ucontrol.com.ar/wiki/index.php/PIC16F877Ahttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#.E2.80.9CHouston.2C_tenemos_un_problema.E2.80.9Dhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Multiplexadohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_hardwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Tres_Placashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_cable_planohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#PCBshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_Softwarehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Programaci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#El_registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#C.C3.B3digo_fuentehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Downloadshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Algunas_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Conexi.C3.B3n_con_la_PChttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#M.C3.A1s_y_m.C3.A1s_ideashttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_7x32#Temas_relacionadoshttp://www.ucontrol.com.ar/wiki/index.php/PIC16F876Ahttp://www.ucontrol.com.ar/wiki/index.php?title=Pin&action=edithttp://www.ucontrol.com.ar/wiki/index.php/E/Shttp://www.ucontrol.com.ar/wiki/index.php/PIC16F877A
  • 7/22/2019 Pantalla Matriz Led

    18/39

    luego de realizar internamente algn proceso con esas seales, se actan (o no) unas

    pocas cargas conectadas a sus salidas, generalmente mediante reles o interfaces de algn

    tipo. Sin embargo, hay caso concretos en que ningn PIC (o microcontrolador de otras

    familias) puede aportar en numero suficientes de E/S que permitan controlar todas las

    cargas conectadas a el, y se deben recurrir a circuitos de apoyo comandados mediante

    seales de control y utilizando un bus de datos. Uno de esos casos es el que nos ocupa

    en este articulo.

    En lo que respecta a las entradas y salidas (E/S), cada microcontrolador, al igual que

    cualquier computadora, dispone de un numero finito de ellas, y en general, se trata de un

    numero no demasiado elevado. Esta claro que si queremos formar una imagen mediante

    pixeles compuestos por LEDs individuales, harn falta un numero de lneas de control

    mucho mayor que las disponibles en cualquiermicrocontrolador.

    Nuestra pantalla ser semejante a esos displays que seguramente habrn visto en algn

    comercio o local de servicios, en los que un texto realiza un scroll de derecha a

    izquierda, a una velocidad que permite la ilusin de un movimiento suave y continuo.

    Estas matrices de leds generalmente estn conformadas por un cierto nmero de filas y

    de columnas.

    Para permitir un texto legible, que represente claramente los caracteres correspondientes

    a las letras maysculas y minsculas hacen falta unas 7 filas de alto, y si queremos que

    el display muestre unos 10 o 12 caracteres simultneamente, necesitaremos unas 100

    columnas.

    Si multiplicamos el numero de filas por las columnas, tendremos el numero de LEDs

    que hay presente en un display de este tipo. Con los valores que mencionbamos recin,

    vemos que se necesitan 700 LEDs para un display no muy complejo, y de un solo color.

    Si nos limitramos a los medios tradicionales para encender o apagar cada LED del

    display, es decir, conectando cada uno de ellos a un pin de salida del PIC y encenderlos

    mediante 0 o 1 publicados en ese bit del puerto, nos haran falta un PIC con al menos

    700 pines, algo que debemos descartar de plano por que no existe.

    Una solucin posible seria utilizar varios PICs conectados entre si, de manera que cada

    uno maneje por ejemplo dos o tres columnas, y mediante algn protocolo se enven

    mensajes entre ellos para mostrar la parte del texto que le corresponde. Esta alternativa

    tiene ms posibilidades de xito, pero cuenta con la contra de una programacin

    compleja y un costo elevado, ya que se necesitan unos 3 PICs por carcter, lo que

    econmicamente no es viable.

    http://www.ucontrol.com.ar/wiki/index.php/PIChttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/PIChttp://www.ucontrol.com.ar/wiki/index.php/El_microcontrolador
  • 7/22/2019 Pantalla Matriz Led

    19/39

    La respuesta a este problema viene de la mano de la multiplexacion, el empleo de buses

    y circuitos de apoyo que transformen datos enviados en forma serial a una

    representacin en paralelo.

    Multiplexado

    El termino multiplexar hace referencia a una tcnica que permite aprovechar unas

    pocas lneas de datos para diferentes tareas, cambiando la funcin que cumplen a lo

    largo del tiempo. Un ejemplo podra ser un sistema de control de temperaturas de varios

    ambientes. Dado que la velocidad no es crucial, ya que en trminos de milisegundos (o

    microsegundos) la temperatura casi no vara debido a la inercia trmica, se puede

    utilizar un nico circuito que lea alternativamente cada sensor de temperatura. Esto

    evita la duplicacin de circuitos y permite resolver el problema con una fraccin de los

    recursos (pines I/O) disponibles.

    En el caso de este proyecto, la pantalla que construiremos est formada por una matriz

    de 224 diodos LEDs distribuidos una matriz de 32 columnas por 7 filas. Estos valores se

    eligieron por ser casi los mnimos para lograr un display til, ya que un carcter para ser

    legible necesita tener una altura de 5 o 7 pxeles, y un ancho como mnimo de 5. Con

    estas dimensiones, lograremos ubicar un texto de unos 5 o 6 caracteres, que

    opcionalmente puede irse desplazando por la matriz.

    El hardware

    Tres Placas

    Por razones de comodidad, el proyecto se distribuyo sobre tres placas de circuito

    impreso diferentes. La primera de ellas, encargada de la alimentacin, control lgico y

    la comunicacin con la PC es la que incluye el PIC, corazn del proyecto. Adems, en

    ella se encuentra la etapa de alimentacin, excepto el transformador, llave y fusible que

    debern alojarse en el gabinete que contenga esta placa.

    http://www.ucontrol.com.ar/wiki/index.php/Imagen:Foto7x32_2.jpg
  • 7/22/2019 Pantalla Matriz Led

    20/39

    La alimentacin esta basada en un regulador de voltaje LM7805, capaz de entregar

    500mA sin disipador, y hasta 1A si lo refrigeramos convenientemente. Si sacamos

    algunas cuentas, veremos que gracias al multiplexado nunca debera haber ms de una

    fila encendida al mismo tiempo, que en el caso ms desfavorable tendra 32 leds

    encendidos. Cada LED consume unos 15 miliamperes (5V / 330 ohms = 0.015A), por lo

    que el consumo de la pantalla es de 0.015 x 32 = 480mA, si esto sumamos el

    consumo del resto de la electrnica, el consumo total ronda los 600mA. El LM7805 de

    mi prototipo apenas se entibia sin utilizar disipador.

    El PIC se encarga de generar los pulsos de CLOCKy DATOs (pines 17 y 18) que son

    enviados a la placa de video que es la que tiene los 74HC164N que forman un

    registro de desplazamiento. Tambin tiene la posibilidad de conectarse a una PC vaRS-

    232 (ver mas adelante) y controla los drivers que proveen la corriente que alimenta cada

    fila del display. Como la corriente es muy elevada para ser entregada directamente por

    el PIC, se incluyeron 7 transistores BC327 para esta tarea.

    Se utilizo un cristal de 4MHz y dos capacitores de 22 nF para generar los pulsos de reloj

    del micro en lugar del reloj interno, para lograr una mejor estabilidad con la

    temperatura, ya que en caso se utilizar la conexin RS-232 la velocidad es un tema

    delicado.

    La segunda de las placas, que se conecta mediante un cable plano a la primera, es la

    encargada de controlar el display. Recoge los pulsos de CLOCK y los datos

    provenientes de la placa controladora va el cable plano, y energiza las columnas que

    http://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php?title=CLOCK&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php/Registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/RS-232http://www.ucontrol.com.ar/wiki/index.php/RS-232http://www.ucontrol.com.ar/wiki/index.php/RS-232http://www.ucontrol.com.ar/wiki/index.php?title=BC327&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Cristal&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Imagen:Foto7x32_4.jpghttp://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php?title=CLOCK&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php/Registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/RS-232http://www.ucontrol.com.ar/wiki/index.php/RS-232http://www.ucontrol.com.ar/wiki/index.php?title=BC327&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Cristal&action=edit
  • 7/22/2019 Pantalla Matriz Led

    21/39

    correspondan. Los 74HC164N se conectan a cada columna a travs de una resistencia

    de 330 o 390 ohms.

    Si se quiere aumenta el brillo de los LEDS, pueden reemplazarse por resistencias de 220

    ohms (o incluso menores), pero asegurndose que el tiempo de encendido de los leds no

    pase de unos milisegundos por vez para evitar su envejecimiento prematuro. Tambin

    hay que prestar atencin al consumo de corriente total, y posiblemente cambiar los

    transistores BC327 porBC640, capaces de manejar corrientes mas elevadas.

    Por ultimo, la placa mas sencilla, pero a la vez mas laboriosa desde el punto de vista

    constructivo es la pantalla propiamente dicha, ya que esta formada por 224 diodos

    LEDs. Esta placa recibe las seales de control provenientes de la placa de video

    mediante pines de bronce que le otorgan soporte mecnico y elctrico simultneamente,

    y mediante 7 pequeos cables que son los encargados de seleccionar la fila que vamos a

    iluminar.

    NOTA IMPORTANTE: En el esquema no figura la conexin del PIN 9 (RESET) del

    74HC164N a +V, aunque si est contemplado en el diseo del PCB. Ese pin DEBE

    estar a +V para que el circuito funcione.

    El cable plano

    Para enviar los datos desde la placa de control a la placa de video se utilizo un cableplano de 10 vas, con fichas en los extremos muy parecidas a las empleadas para

    conectar unidades de CD-ROM dentro de la PC, pero ms pequeas. Hay que tener

    cuidado que al armar el cable las fichas no queden invertidas, y las seales de un

    extremo terminen siendo un espejo de las aplicadas en el otro.

    Dado que los conductores de este cable son muy delgados, para evitar problemas se

    utilizaron dos cables de ms seccin para llevar los 5V de alimentacin hasta esta placa.

    Hay que tener en cuenta de conectarlos con la polaridad correcta para evitar destruir

    algn componente.

    http://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php?title=BC327&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=BC640&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php?title=Conductores&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Imagen:Circuito7x32.gifhttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php?title=BC327&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=BC640&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php?title=Conductores&action=edit
  • 7/22/2019 Pantalla Matriz Led

    22/39

    Lista de componentes

    1 porta fusible y fusible de 1 A.

    1 transformador de 220V a 6V, 1 A.

    1 puente de diodos de 1 A

    1 regulador LM7805

    2 capacitores cermicos de 100 nF

    2 capacitores cermicos de 22 pF

    1 capacitor electroltico de 220uF/16V

    1 dip-switch de 4 interruptores en formato DIL

    1 diodo 1N4148

    1 transistor BC547B

    7 transistores BC327

    1 cristal de 4 MHz.

    1 resistencia de 33K

    1 resistencia de 2K2

    4 resistencias de 10K

    7 resistencias de 1K5

    32 resistencias de 330 ohms

    224 leds rojos de 3mm

    1 microcontroladorPIC 16F628A

    http://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php/Imagen:Foto7x32_3.jpghttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628A
  • 7/22/2019 Pantalla Matriz Led

    23/39

    4 Registros de desplazamiento 74HC164N

    20 cm. de cable plano de 10 vas y dos fichas

    3 borneras de 2 contactos, para circuito impreso

    Varios: zcalos para los integrados, pines de bronce, circuito impreso virgen de una sola

    cara.

    PCBs

    Son necesarias tres placas de circuito impreso para este proyecto, cuyos diseos son los

    siguientes:

    Placa de control.(Descargar en PDF)

    Placa de "video".(Descargar en PDF)

    http://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/PDF/7x32_controladora.pdfhttp://www.ucontrol.com.ar/PDF/7x32_video.pdfhttp://www.ucontrol.com.ar/wiki/index.php/Imagen:Pcb7x32_2.gifhttp://www.ucontrol.com.ar/wiki/index.php/Imagen:Pcb7x32_1.gifhttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/PDF/7x32_controladora.pdfhttp://www.ucontrol.com.ar/PDF/7x32_video.pdf
  • 7/22/2019 Pantalla Matriz Led

    24/39

    Placa del display.(Descargar en PDF)

    Matriz de LEDS de 8 filas y 8 columnas.

    Introduccin

    Matriz de LEDS de 8x8

    En este proyecto veremos como disear y construir un displayde diodosleds en forma

    de matriz de 8 filas por 8 columnas. El circuito incluye una memoriaEEPROMexterna

    http://www.ucontrol.com.ar/PDF/7x32_display.pdfhttp://www.ucontrol.com.ar/wiki/index.php?title=Display&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Display&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Diodohttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php/Imagen:MATRIZ8x8-001.jpghttp://www.ucontrol.com.ar/wiki/index.php/Imagen:Pcb7x32_3.gifhttp://www.ucontrol.com.ar/PDF/7x32_display.pdfhttp://www.ucontrol.com.ar/wiki/index.php?title=Display&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Diodohttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/EEPROM
  • 7/22/2019 Pantalla Matriz Led

    25/39

    del tipo 24C256 en la que podremos almacenar bloques de pixeles que luego seran

    representados por la pantalla.

    Tabla de contenidos

    [esconder]

    1Introduccin

    2Descripcin del proyecto

    3El circuito

    3.1Lista de componentes

    3.2PCB

    3.3Montaje

    4Programacin en CCS

    4.1Ejemplo 1: TEST LED

    4.2Ejemplo 2: Recorriendo la matriz

    5Videos

    6Revista uControl

    Descripcin del proyecto

    El proyecto que desarrollaremos es una buena herramienta para el aprendizaje. El

    microcontroladorempleado es de los ms pequeos, un PIC16F628A con 2 KBytesde

    memoria FLASH. Sin embargo, se puede utilizar un PIC16F627A(que tiene la mitad de

    memoria) o bien un PIC16F648A (que tiene el doble).

    Este microcontrolador puede parecer pequeo, pero es ms que suficiente para poder

    manejar los componentes y funciones del proyecto.

    Una memoria EEPROM24C256 de 32 KBytes , a la que se accede va I2C puede

    utilizarse para almacenar el contenido de 4096 pantallas, que el microcontrolador podria

    representar una a cotinuacin de otra, a modo de video de baja resolucin.

    Las columnas de la matriz se seleccionan mediante un registro de desplazamiento de 8

    bits de longitud, implementado a partir de un 74HC164N.

    http://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://toggletoc%28%29/http://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#El_circuitohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#El_circuitohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#El_circuitohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#PCBhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#PCBhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#PCBhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Montajehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Montajehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Montajehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Programaci.C3.B3n_en_CCShttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Programaci.C3.B3n_en_CCShttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Programaci.C3.B3n_en_CCShttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_1:_TEST_LEDhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_1:_TEST_LEDhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_1:_TEST_LEDhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_2:_Recorriendo_la_matrizhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_2:_Recorriendo_la_matrizhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_2:_Recorriendo_la_matrizhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Videoshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Videoshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Videoshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Revista_uControlhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Revista_uControlhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Revista_uControlhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php/KBytehttp://www.ucontrol.com.ar/wiki/index.php/KBytehttp://www.ucontrol.com.ar/wiki/index.php/FLASHhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F627Ahttp://www.ucontrol.com.ar/wiki/index.php/PIC16F627Ahttp://www.ucontrol.com.ar/wiki/index.php/PIC16F648Ahttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://www.ucontrol.com.ar/wiki/index.php/KBytehttp://www.ucontrol.com.ar/wiki/index.php/I2Chttp://www.ucontrol.com.ar/wiki/index.php/Registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/Bithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://toggletoc%28%29/http://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Introducci.C3.B3nhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Descripci.C3.B3n_del_proyectohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#El_circuitohttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Lista_de_componenteshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#PCBhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Montajehttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Programaci.C3.B3n_en_CCShttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_1:_TEST_LEDhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Ejemplo_2:_Recorriendo_la_matrizhttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Videoshttp://www.ucontrol.com.ar/wiki/index.php/Matriz_de_LEDS_de_8x8#Revista_uControlhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php/KBytehttp://www.ucontrol.com.ar/wiki/index.php/FLASHhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F627Ahttp://www.ucontrol.com.ar/wiki/index.php/PIC16F648Ahttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://www.ucontrol.com.ar/wiki/index.php/KBytehttp://www.ucontrol.com.ar/wiki/index.php/I2Chttp://www.ucontrol.com.ar/wiki/index.php/Registro_de_desplazamientohttp://www.ucontrol.com.ar/wiki/index.php/Bithttp://www.ucontrol.com.ar/wiki/index.php/74HC164N
  • 7/22/2019 Pantalla Matriz Led

    26/39

    El circuito

    El circuito elctrico de este proyecto es muy sencillo. El corazn del mismo es el

    microcontroladorPIC16F628A.

    El osciladordel PIC esta basado en un cristal de 4 MHz y dos condensadores de 22

    picofaradios.

    La pantalla esta construida mediante una matriz basada en 8 filas por 8 columnas de

    diodosLEDs, con sus nodos controlados desde los pines del PORTB delmicrocontrolador, mediante un transistor2N3906 que se encarga de proporcionar la

    corriente suficiente para encender los 8 LEDs de la fila.

    La fila inferior corresponde alpin B0, la siguiente al B1 y asi, hasta la fila superior, que

    esta conectada al pin B7. Cuando querramos programarel microcontrolador, deberemos

    configurar todo elpuerto B como salidas.

    El puerto A tiene a su cargo el control del 74HC164N, que a su vez se encarga de

    seleccionar las columnas activas en cada momento. Entre cada salida del 74HC164N y

    los LEDs hemos colocado un resistorpara limitar la corriente que circula por ellos. Si elbrillo de los LEDs es muy bajo, puede probarse con valores mas pequeos para estos

    resistores. El pin DATA del 74HC164N es controlado desde A1 y los pulsos de

    CLOCK los proporciona el pin A0.

    La memoria EEPROM tambien depende del puerto A, con la lnea SCL conectada al pin

    A2 y la lnea SDA conectada al pin A3. Ambas lineas estan puestas a +V mediante

    resistores de 10K.

    La alimentacion se ha resuelto mediante un regulador de voltaje tipoLM7805 y sus

    componentes asociados. Un diodo se encarga de proteger el circuito por si

    involuntariamente conectamos la alimentacin con la polaridad invertida. La bornera es

    http://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php?title=Oscilador&action=edithttp://www.ucontrol.com.ar/wiki/index.php/PIChttp://www.ucontrol.com.ar/wiki/index.php?title=Cristal&action=edithttp://www.ucontrol.com.ar/wiki/index.php/MHzhttp://www.ucontrol.com.ar/wiki/index.php/Condensadorhttp://www.ucontrol.com.ar/wiki/index.php/Diodohttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Transistorhttp://www.ucontrol.com.ar/wiki/index.php?title=2N3906&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Pin&action=edithttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/Puertohttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Resistorhttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php/Diodohttp://www.ucontrol.com.ar/wiki/index.php/Imagen:MATRIZ8x8-002.jpghttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php?title=Oscilador&action=edithttp://www.ucontrol.com.ar/wiki/index.php/PIChttp://www.ucontrol.com.ar/wiki/index.php?title=Cristal&action=edithttp://www.ucontrol.com.ar/wiki/index.php/MHzhttp://www.ucontrol.com.ar/wiki/index.php/Condensadorhttp://www.ucontrol.com.ar/wiki/index.php/Diodohttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Transistorhttp://www.ucontrol.com.ar/wiki/index.php?title=2N3906&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Pin&action=edithttp://www.ucontrol.com.ar/wiki/index.php/El_microcontroladorhttp://www.ucontrol.com.ar/wiki/index.php/Puertohttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Resistorhttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php/Diodo
  • 7/22/2019 Pantalla Matriz Led

    27/39

    la encargada de vincular la fuente de corriente continua de entre 9V y 12V encargada de

    alimentar la placa.

    Un pulsador, junto a una resistencia de 10K forman un circuito dereset, que tiene la

    capacidad de volver el circuito a su estado inicial en cualquier momento.

    Hz clic en la imge para ampliarla.

    NOTA IMPORTANTE: En el esquema no figura la conexin del PIN 9 (RESET) del

    74HC164N a +V, aunque si est contemplado en el diseo del PCB. Ese pin DEBE

    estar a +V para que el circuito funcione.

    Lista de componentes

    La lista de componentes es ms bien pequea:

    1 microcontroladorPIC16F628A, con su zcalo.

    1 memoria EEPROM24C256, con su zcalo.

    1 circuito integrado 74HC164N, con su zcalo.

    1 regulador de voltaje LM7805

    4 condensadores cermicos de 0.1 uF.

    2 condensadores cermicos de 22 pF.

    1 xtal de 4 MHz.

    1 condensador electrolitico de 220uF/16V.

    1 diodo 1N4007.

    http://www.ucontrol.com.ar/wiki/index.php?title=Reset&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Reset&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Reset&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/MHzhttp://www.ucontrol.com.ar/wiki/index.php/Imagen:MATRIZ8x8-004.gifhttp://www.ucontrol.com.ar/wiki/index.php?title=Reset&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php/PIC16F628Ahttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/EEPROMhttp://www.ucontrol.com.ar/wiki/index.php?title=24C256&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/74HC164Nhttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/MHz
  • 7/22/2019 Pantalla Matriz Led

    28/39

    8 transistores 2N3906.

    8 resistores de 100 ohms.

    1 resistor de 10K.

    8 resistores de 1.5K.

    1 bornera de dos tornillos.

    64 diodos LED de 5mm, color rojo.

    PCB

    El circuito impreso necesario es de 80x95 milimetros, de una sola cara. Esto ha obligado

    a realizar una buena cantidad de puentes en el lado trasero de la placa, pero es mucho

    mas sencillo construir una PCB de simple cara en casa. Si no sabes como hacerlo,

    puedes aprender con con este tutorial.

    Este es el aspecto del PCB.

    Puedes descargar el PCB en formato PDF, listo para imprimir, desde este link. Solo

    debes imprimirlo a escala 1:1 con una impresora lser, y seguir los pasos del tutorial.

    Montaje

    http://www.ucontrol.com.ar/wiki/index.php?title=2N3906&action=edithttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Como_construir_tus_propios_PCBhttp://www.ucontrol.com.ar/wiki/index.php/Como_construir_tus_propios_PCBhttp://www.ucontrol.com.ar/wiki/PDF/8x8_001.pdfhttp://www.ucontrol.com.ar/wiki/PDF/8x8_001.pdfhttp://www.ucontrol.com.ar/wiki/index.php/Como_construir_tus_propios_PCBhttp://www.ucontrol.com.ar/wiki/index.php/Imagen:MATRIZ8x8-003.gifhttp://www.ucontrol.com.ar/wiki/index.php?title=2N3906&action=edithttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php/Como_construir_tus_propios_PCBhttp://www.ucontrol.com.ar/wiki/PDF/8x8_001.pdfhttp://www.ucontrol.com.ar/wiki/index.php/Como_construir_tus_propios_PCB
  • 7/22/2019 Pantalla Matriz Led

    29/39

    El montaje no requiere de ninguna tcnica en especial. Una vez que tengamos el PCB

    listo y agujereado, procedemos a soldar los componentes. Podemos comenzar por los

    resistores y los LEDs. Al hacerlo, hay que tener en cuenta que los LEDs deben tener la

    muesca que indica el ctodo hacia el lado de los circuitos integrados. Si no lo hacemos

    asi, el proyecto no funcionar.

    Ms tarde soldaremos los zcalos, elpulsadorde reset, los condensadores , el diodo

    1N4007 (cuidando su orientacin) y el LM7805. Por ultimo, soldaremos el cristal y

    pasaremos al otro lado del PCB.

    Aqui es donde este montaje puede diferir un poco de otros que hayas realizado. Sin

    embargo, tampoco es tan complicado lo que resta por hacer.

    Lo primero es soldar las los dos resistorespull-up que requiere el busI2C para

    funcionar. La imagen siguiente muestra donde van soldados:

    En rojo, los resistores mencionados.

    Una vez hecho esto, debemos realizar una serie de puentes para unir los nodos de cada

    fila de LEDs al colectordel transistorcorrespondiente. Deberia quedar como se ve en lafoto siguiente.

    http://www.ucontrol.com.ar/wiki/index.php/Resistorhttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Pulsadorhttp://www.ucontrol.com.ar/wiki/index.php/Condensadorhttp://www.ucontrol.com.ar/wiki/index.php/Diodohttp://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php?title=Cristal&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Pull-up&action=edithttp://www.ucontrol.com.ar/wiki/index.php/I2Chttp://www.ucontrol.com.ar/wiki/index.php/I2Chttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php?title=Colector&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Transistorhttp://www.ucontrol.com.ar/wiki/index.php/Imagen:MATRIZ8x8-005.gifhttp://www.ucontrol.com.ar/wiki/index.php/Resistorhttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php?title=Z%C3%B3calo&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Pulsadorhttp://www.ucontrol.com.ar/wiki/index.php/Condensadorhttp://www.ucontrol.com.ar/wiki/index.php/Diodohttp://www.ucontrol.com.ar/wiki/index.php/LM78xxhttp://www.ucontrol.com.ar/wiki/index.php?title=Cristal&action=edithttp://www.ucontrol.com.ar/wiki/index.php?title=Pull-up&action=edithttp://www.ucontrol.com.ar/wiki/index.php/I2Chttp://www.ucontrol.com.ar/wiki/index.php/LEDhttp://www.ucontrol.com.ar/wiki/index.php?title=Colector&action=edithttp://www.ucontrol.com.ar/wiki/index.php/Transistor
  • 7/22/2019 Pantalla Matriz Led

    30/39

    Estos son los puentes a realizar.

    Programacin en CCS

    Aprovecharemos este montaje para aprender ms sobre el compiladorCCS. A

    continuacin, algunos ejemplos de lo que puede hacerse con esta matriz de LEDs.

    MANEJO DE MATRIZ DE LED'S 5x7 CON PIC 16F84A

    Una matriz de led's esta constituido por led's dispuestos en filas y columnas, cada led se

    conecta a una fila y a una columna, el diagrama se muestra en la figura:

    http://www.ucontrol.com.ar/wiki/index.php/CCShttp://www.ucontrol.com.ar/wiki/index.php/CCShttp://www.ucontrol.com.ar/wiki/index.php/CCShttp://www.ucontrol.com.ar/wiki/index.php/Imagen:MATRIZ8x8-006.jpghttp://www.ucontrol.com.ar/wiki/index.php/CCS
  • 7/22/2019 Pantalla Matriz Led

    31/39

    Existen varios mtodos para el manejo de una matriz de led's 5x7, nuestro mtodo se

    basa en el decodificador/demultiplexor 74LS 138, adems utilizaremos el

    transistorBC557 (pnp); con la siguiente forma de conexin entre los dispositivos antes

    mencionados y el microcontrolador:

  • 7/22/2019 Pantalla Matriz Led

    32/39

    Como se muestra en la figura las filas de la matriz de led's estn conectadas a los

    colectores de los transistores BC557, mientras que las columnas de la matriz se

    conectan al puerto B del microcontrolador.

    Su funcionamiento se basa como se dijo anteriormente en el integrado 74LS138,que es

    un decodificador /demultiplexor con la siguiente tabla de verdad:

  • 7/22/2019 Pantalla Matriz Led

    33/39

    Para que un led's se encienda tiene que recibir simultneamente un 0 en una columna y

    un 1 en una fila, en caso de las filas se posee transistores que al entrar en un estado de

    saturacin permiten que en los nodos de los led's de una de las filas se encuentre un 1

    lgico, mientras que para las columnas el microcontrolador es el encargado de lograr un

    0 lgico.

    Su manejo es similar al de los display's, lo que se trata de hacer es habilitar una la

    primera fila y luego enviar el dato a visualizar en esta fila, luego habilitar la segunda fila

    y enviar el dato a visualizar en esta fila, y as sucesivamente en forma de un bucle. Para

    habilitar una fila se debe logra que el transistor correspondiente a la fila pase a un estado

    de saturacin, y esto se logra mediante el decodificador/demultiplexor que al recibir en

    sus entradas (C B A) un numero binario determinado activara una de sus salida a nivel

    bajo que conseguir que el transistor correspondiente pase a un estado de saturacin; es

    as por ejemplo si el microcontrolador enva el dato a las entradas CBA = 011, el

    decodificador activara su salida Y3, produciendo que el cuarto transistor(cuenta de

    arriba a abajo) se sature, habilitando la cuarta fila de led's de la matriz lista para recibir

    el dato a visualizar en esta fila.

    Uno de los ltimos detalles: el pin RA3 se encarga de no habilitar ninguna fila, debido a

    que si este se encuentra en un nivel lgico 1 el decodificador tendr a todas sus salidas

    en un nivel alto, por lo consiguiente ninguna fila se habilitara.

    Resumiendo el puerto A del pic se encarga de habilitar los transistores, mientras que por

    el puerto B es enva el dato a visualizar.

    En el siguiente programa se realizara una explicacin mas detallada.

    ; AUTOR: GOMEZ HURTADO LUIS

    ;RA3=HABILITAR AL DECODIFICADOR, RA2 RA1 RA0

    ; PROGRAMA PARA VISUALIZAR LA LETRA "C" list P=16F84A

    include

    cblock 0x0C

    endc

    bsf STATUS,RP0

    clrf PORTA ; todas las lneas como salida

    clrf PORTB; todas las lneas como salida

    bcf STATUS,RP0

    visualizar

    movlw b'00001000'

    movwf PORTA; deshabilitar todas las filas

    movlw b'11111000' ; primer dato a visualizar

    bsf PORTA,3 ; deshabilitar todas las filas

    movwf PORTB; enviar dato

    bcf PORTA,3 ;habilitar primer transistor debido a que CBA=000, Y0=1 ,

    Y1,Y2,.....Y7=1

    call RETARDOS_50MICROS ; un pequeo retardo

    movlw b'11110111' ; segundo dato a visualizarbsf PORTA,3 ; deshabilitar todas las filas

  • 7/22/2019 Pantalla Matriz Led

    34/39

    movwf PORTB ; enviar dato

    movlw b'00000001';

    movwf PORTA ;habilitar segundo transistor debido a que CBA=001, Y1=1 ,

    Y0,Y2,Y3.....Y7=1

    call RETARDOS_50MICROS

    movlw b'11101111' ; tercer dato a visualizarbsf PORTA,3 ; deshabilitar todas las filas

    movwf PORTB; enviar dato

    movlw b'00000010'

    movwf PORTA ;habilitar tercer transistor debido a que CBA=010, Y2=1 ,

    Y0,Y1,Y3.....Y7=1

    call RETARDOS_50MICROS

    movlw b'11101111'; cuarto dato a visualizar

    bsf PORTA,3 ; deshabilitar todas las filas

    movwf PORTB; enviar dato

    movlw b'00000011'

    movwf PORTA ; habilitar caurto transistor debido a que CBA=011, Y3=1 ,Y0,Y1,Y2.....Y7=1

    call RETARDOS_50MICROS

    ; y asi sucesivamente

    movlw b'11101111'

    bsf PORTA,3

    movwf PORTB

    movlw b'00000100'

    movwf PORTA

    call RETARDOS_50MICROS

    movlw b'11110111'

    bsf PORTA,3; des

    movwf PORTB

    movlw b'00000101'

    movwf PORTA

    call RETARDOS_50MICROS

    movlw b'11111000'

    bsf PORTA,3

    movwf PORTB

    movlw b'00000110'

    movwf PORTA

    call RETARDOS_50MICROSgoto visualizar

    include

    end

  • 7/22/2019 Pantalla Matriz Led

    35/39

  • 7/22/2019 Pantalla Matriz Led

    36/39

    proyecto: control de matriz de leds de 7 x 5

    Principio de funcionamiento: la tcnica de matriz de puntos (dot matrix) ha sido

    utilizada durante dcadas para la impresin y el despliegue de texto y grficas. Cada

    caracter est formado por una matriz de puntos, tpicamente de 8 x 8, 8 x 6 7 x 5

    puntos, al gusto del usuario. Los perifricos de salida son en general los LCD, matriz de

    leds y displays de 7 segmentos.

    El display de matriz de leds es un proyecto barato, dado el bajo costo de los leds de

    5mm, y fcil de llevar a cabo. En la figura de abajo se muestra un ejemplo de la forma

    de controlar un display de 8 x 8 (64 puntos) por medio de un controlador PIC 16F84,

    usando las 8 salidas del puerto B (las cuales alimentan los renglones), y 2 del puerto A,

    las cuales controlan a un contador de dcadas 4017 ( 14017), el cual a su vez activa a

    cada una de las columnas a travs de transistores. El diseo puede modificarse a

    matrices de 8 x 6 y 7 x 5 puntos.

  • 7/22/2019 Pantalla Matriz Led

    37/39

    Circuito electrnico para matriz de 7 x 5: En la figura de abajo se muestra el circuito

    que debe alambrarse para implementar el control de un solo mdulo de matriz de 7 x 5

    leds. Las salidas RB7...RB1 alimentan, a travs de resistencias limitadoras de 560 ohms,

    a los nodos de los 5 leds del rengln correspondiente. Los 5 transistores BC337 activan

    a cada una de las 5 columnas.

    El diagrama electrnico detallado se muestra aqu:DIAGRAMA ELECTRONICO

    MATRIZ DE 7 x 5.PDF

    http://www.puntoflotante.net/DIAGRAMA%20ELECTRONICO%20MODULO%20MATRIZ%20DE%207%20X%205.pdfhttp://www.puntoflotante.net/DIAGRAMA%20ELECTRONICO%20MODULO%20MATRIZ%20DE%207%20X%205.pdfhttp://www.puntoflotante.net/DIAGRAMA%20ELECTRONICO%20MODULO%20MATRIZ%20DE%207%20X%205.pdfhttp://www.puntoflotante.net/DIAGRAMA%20ELECTRONICO%20MODULO%20MATRIZ%20DE%207%20X%205.pdfhttp://www.puntoflotante.net/DIAGRAMA%20ELECTRONICO%20MODULO%20MATRIZ%20DE%207%20X%205.pdf
  • 7/22/2019 Pantalla Matriz Led

    38/39

    Persistencia luminosa:el funcionamiento del display se basa en la activacin cclica

    de cada columna, durante un perodo no mayor a los 10 milisegundos. La

    persistencia en la luminosidad de los leds durante algunos milisegundos despus de

    desactivarse y la incapacidad del ojo para percibir cambios a una frecuencia

    superior a los 25 hz, hacen que el humano perciba una imagen fija, a pesar de que

    cada columna se est activando en tiempos diferentes.

    Clculo de corrientes en los circuitos: cada salida del puerto B, manejar una corriente

    instantnea mxima de unos 10 miliamperes. A su vez, cada transistor BC337 manejar

    una corriente instantnea mxima en su columna, igual a la suma de todas las corrientes

    en las salidas RB7...RB1 activadas, es decir, un mximo de 70 miliamperes.

    Compatibilidad con EDUPIC 16F84:como se muestra en la figura de abajo, el

    mdulo de LEDS es compatible con el conector para LCD del sistema EDUPIC. El

    programa de prueba se realiz en lenguaje ensamblador y enciende la letra "A",

    pero puede fcilmente modificarse para escribir cualquier otro caracter.

    Asimismo, el programa puede modificarse para controlar una matriz de 8 x 6 de

    8 x 8 leds.

  • 7/22/2019 Pantalla Matriz Led

    39/39

    Posibilidad de expansin: pueden aadirse mdulos adicionales de 5 x 7, idnticos al

    propuesto, conservando la misma filosofa de funcionamiento del circuito. El carry del

    primer contador 4017 ingresa al pin CP0 del segundo mdulo y as sucesivamente. Las

    salidas RB7...RB1 alimentarn a los todos los leds en cada rengln. Con el objeto de

    conservar la misma brillantez del circuito de un solo mdulo, las resistencias

    limitadoras deben de bajar su valor en una forma proporcional al nmero de mdulos,

    razn por la cual el consumo de corriente ser mayor.

    Programa bsico de control: el programa de prueba escribe la letra "A" en el display y

    debe primeramente ensamblarse en MPLAB y cargar el resultante archivo objeto ".hex"

    con WINPIC hacia el sistema EDUPIC:

    DOTMATRIX.ASM,p16f84.inc

    Programa que muestra en el display la secuencia de caracteres del 0...9 y de la

    A...Z. El perodo de tiempo para la secuencia puede modificarse dentro del programa

    fuente. El programa usa la interrupcin del temporizador 0 para generar la base de

    tiempo, mientras en el programa principal se realiza la tarea del multiplexaje para el

    encendido de las 5 columnas de 7 leds cada una. La aplicacin puede usarse como base

    para desarrollar displays industriales, ya sea de uno solo o de mltiples caracteres. El

    programa incluye las tablas con el patrn de encendido por columna para la generacin

    de cada caracter. El usuario puede aadir nuevos smbolos o caracteres a la tabla. El

    programa es el siguiente:

    SECUENCIAMATRIX.asm

    NOTA IMPORTANTE: LOS 4 MICROSWITCHES DEBEN DE ESTAR EN LA

    POSICION "OFF" EN EL MODULO EDUPIC O EVOLUPIC (VER FOTO) PARA

    QUE LOS PROGRAMAS FUNCIONEN CORRECTAMENTE.

    http://www.puntoflotante.net/DOTMATRIX.asmhttp://www.puntoflotante.net/p16f84.inchttp://www.puntoflotante.net/matriz.asmhttp://www.puntoflotante.net/DOTMATRIX.asmhttp://www.puntoflotante.net/p16f84.inchttp://www.puntoflotante.net/matriz.asm