Cómo multiplexar una matriz de leds

January 5, 2008 at 12:48 pm | In Multiplexación, Rutinas, Tutorial | 27 Comments

Ya empezó un nuevo año así que vamos a empezar con un nuevo tutorial, esta vez con un cómo sobre multiplexación, cómo multiplexar una matriz de leds.

Si se quisiera controlar una sola columna de una matriz de 5×7 leds se necesitaría un puerto completo de un pic, 7 pines para controlar las filas y 1 para controlar la columna, eso significa que para controlar todos los leds de la matriz se necesitarían 4 puertos de 8 bits, demasiado para un microcontrolador, sobre todo para un 16F628a.

Para reducir el número de pines requeridos las cinco columnas de la matriz son multiplexadas, esto significa que solamente se necesitarán siete pines, uno por cada fila de la matriz, y cinco para habilitar cada una de las columnas.

Usando un pic 16F628a se puede utilizar el puerto B para controlar las filas y el puerto A para las columnas. La técnica de multiplexación consiste en mostrar una columna a la vez, mientras eso se haga lo suficientemente rápido parecerá que todas las columnas estan encendidas a la vez y no se verá ningún parpadeo, por esa misma razón la base de tiempo para la multiplexación es muy importante por lo que se utiliza la interrupción del timer 2 para esa tarea.

La multiplexación es muy sencilla y se ejecuta dentro de la rutina de interrupción del timer 2, se realiza más o menos de la siguiente manera:

  • Espera interrupción
  • Se deshabilitan las columnas
  • Se escribe en el puerto B el valor de las filas
  • Se habilita la primer columna
  • Espera interrupción
  • Se deshabilitan las columnas
  • Se escribe en el puerto B el valor de las filas
  • Se habilita la siguiente columna
  • Espera interrupción

Así se repite hasta llegar a la quinta columna, entonces la ejecución de la multiplexación vuelve al principio y se vuelve a repetir.

El programa de ejemplo muestra en conteo descendente los números del 9 al 0. La multiplexación se lleva a cabo en la rutina de interrupción del timer 2. El programa principal lo que hace es leer un número almacenado en una variable (un registro de memoria) y decodificarlo para ser desplegado en la matriz, como la matriz es de 5 columnas para decodificar el número se necesitan 5 registros donde se guardaran los valores de las filas de cada columna.

El diagrama del circuito de ejemplo es el siguiente:
ledmultiplex.png

Pueden ver un video de este ejemplo en YouTubeled-multiplex.jpg

Descargar código: Multiplexar una matriz de 5×8 leds

Este tutorial está basado en el tutorial How to multiplex a matrix of LED’s.

27 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Hola, encontre tu video en youtube y ahi conoci este foro, esta muy bien explicado como manejar la matriz, yo estoy tratando de hacer un proyecto para manejar una marquesina de 7×32 leds pero empezare haciendo algo sencillo como este ejemplo, si tuviera problemas espero que me puedas ayudar.

  2. Habia olvidado actualizar el post para incluir el enlace al video de youtube, gracias por recordarmelo.
    Me da gusto que encuentres el tutorial bien explicado, espero que puedas realizar tu proyecto y si surge cualquier problema me gustaria que preguntaras que tal vez pueda ayudar en algo.

  3. [...] el tutorial sobre MPLAB, el tutorial mas visto y el que ha tenido mayor éxito, aunque el reciente sobre multiplexacion de leds se encamina a convertirse también en un clásico. En aquella ocasión prometí [...]

  4. Hola, primero que nada debo felicitarte tu blog esta excelente, estoy haciendo varios trabajos con PIC y me has ayudado muchisimo. Me encuentro tratando de controlar una matriz de Led’d de varias colunmas, aprox 80 con 7 Filas, utilizare unos latch para poder llevarla hacia ella, sin embargo no se aun como seleccionare o como mando esa informacion serial por filas.. Que podrias recomendarme?

  5. Hola Fernanda, gracias por tu comentario. Sobre lo que preguntas, para poder controlar una matriz con tantas columnas yo te recomendaria que el control de las columnas lo hagas con registros de corrimiento (como el 74LS194 por ejemplo), yo lo que he hecho es utilizar un puerto del pic para mandar los valores de las filas y al mismo tiempo recorrer un “0″ o un “1″ por las columnas mediante los registros 74ls194, al mismo tiempo que se envia la fila se puede enviar una señal de reloj para que los registros realicen el corrimiento del “0″ o el “1″ (dependiendo del tipo de matriz que utilices) por las columnas.
    Espero que mi comentario te sea de ayuda y espero que sigas visitando este sitio!

  6. muy bueno..estoy tratando de hacer que los numeros se desplacen en la matriz, utilizando lenguaje pbasic pero no lo he podido hacer, me podrias guiar en mi proposito.

    saludos

  7. oye esta padre to blog y muy interesante la informacion aqui descrita, oye no me podras mandar el circuito del programador para este pic porfas me interesa para programar o cualquier otro circuito para programar este y otros pics, suerte con tu blog espero poder mandarte algunas cosillas que pueda hacer con leds gracias mi orreo es tl081a@hotmail.com

  8. !!!!!!!!!!hoooooolaaa!!!!!!!!!! a todos mi duda es como introducir datos en la memoria eeprom no se como meter los datos como por ejeplo mi nombre se los agradesere un monton por fa

  9. Hola Hola Hola, soy nuevo en esto de pic eh echo varios proyectos pero en PCB wizard :D , deje de hacerlos porque ese programa, no tenia mucha libreria bueno, quisiera una ayuda, yo tengo Eagle Layouts 5.0.0 y ya descargue esa libreria para hacer este proyeto, pero en el Eagle no encuentro el circuito :D , ok, entonse para los codigos ya instale el MPLAB pero no se poner los codigos bueno ya se por el tutorial, pero no se como hacer para que me funcione con el circuito que are en Eagle y cosas asi, me ayudan mi email es CCCDigital_argenis@hotmail.com porfabor :D

  10. Hola:

    Muy buena el trabajo, con ejemplos y todo en youtube.

    Un cordial saludos.

  11. hola amigo muy buen aporte me preguantaba si tu me podrias ayudar con el funcionamiento de un cartel completo de dicha matriz el funcionamiento con un registro de desplazamiento para hacer el multiplexado es lo que no entiendo.
    gracias por la informacion!!

  12. hola que tal tengo un problema quiero conectar una entrada de 8 bits que me controle una salida del mismo tamaño pero conectados con un solo cable, como lo puedo lograr porfavor ayudenme

  13. ola a todos muy bueno el articul estoy en visperas de hacer este proyecto solo q soy nuevo en esto de los microcontroladores y lo q no tengo claro es en que programa puedo hacer el codigo no se si me pueden recomendar alguno estoy aprendiendo a utilizar el PROVIEW32, tambien teng una duda el codigo es el que se va a grabar en el microcontrolador tengo esas dudas espero y alguien me pueda ayudar a resolverlas porfavor desde ya muchas gracias mi correo es aldothefenix@hotmail.com

  14. por falta de tiempo tengo un proyecto guardado con Hardware y una Multiplexacion que si no comienzo con algo simple como la de 5×7 que esta muy buena los consumos por led, en un panel de 6 metros x 1,50 aloja…

    Tengo un proyecto ya esta terminado y se guardo porque sus costos son caros… con sus placas tenemos mandos a distancia con spartan3 para cambiar el texto via sms (mensaje Texto Celular), el PCB, EL PIC funcionando el software para el espartan esta funcionando si se conecta al Nokia se puede cambiar el texto en la empresa hicieron las pruebas salieron perfecto, y quiero entender la logica de la Multiplexacion asi puedo armar los paneles, el tema es que la tricromia la hace cada pixel es RGB de leds 96×48 pixeles

    Ledhttps://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD&Nav1=Products&Nav2=Programmab

    BUENO, la pregunta es si este modulo ya esta trabajando o tenes alguna experiencia con este tipo de proyecto, espero tu respuesta Atte Marcelo.-

  15. epa gente bueno he estado invirtiendo en un proyecto HACER UNA MATRIZ DE LEDS de 24x 7 y controlarla solo por un ordenador “SIN NECESIDAD DE USAR PICS” he diseñado y desarroyado el hardware para realizarlo solo necesito ayuda con el software PUEDEN ENCONTRAR AQUI TODO LO RELACIONADO MAS UN VIDEO QUE DEMUESTRA EL FUNCIONAMIENTO DEL HARDWARE porfavor si tenes idea de como hacer un software que pueda controlar el dispositivo estoy a su total disposicion gracias

  16. huy casi lo olvido aqui esta el link donde describo paso a paso el funcionamiento del hardwareo circuiteria http://www.lemys.marmas.org/node/17

  17. Esta muy padre tu proyecto, pero crees que se pueda aplicar dentro del sistema minimo con un procesador 8088 de intel???? me ayudaria de mucho, suerte amigos y bye!!!

  18. oye micropic quisieras que ma ayudaras a realizar este montaje ya que soy un novato en pic´s y me gustaria mucho empezar por aqui ya tengo el programa pero quisiera ver si me puede colaborar con el diagrama del circuito, le agradezco mucho en lo que me pueda colaborar

    alejandro

  19. Primero que nada gracias por los articulos, los encontré muy utiles. Y segundo, dado que soy un novato total, queria saber como seria la programación para este tutorial pero en Basic de PIC Simulator IDE. Tengo un proyecto realizado para controlar 8 leds y lo programé con ese lenguaje, y ahora quiero intentar el multiplexado. Desde ya muchas gracias.

  20. En mi caso necesito 2 modulos de 5*8 la cosa es que tengo en mente un diseño economico y sencillo, 1 teclado ps2, 3 matrix de led 7*5, o 8*5 y algo un pic supongo… la idea parecida pero no quiero un letrero que tenga desplazamiento…si no retenimiento me explico cada letra(o tecla) corresponda a un led si la aprieto una ves se enciende si la vuelvo apretar se apaga y un seguro digamos si aprieto una tecla+enter se mantedra encendida hasta que le de nuevamente la tecla +enter …se entiende si tienes alguna sugerencia respondeme algo, especialmente como trasformar los datos del teclado a una lectura digamos lineal de 0 a 80, 90 o 100 gracias.. Salu2

  21. hola a tòdo souy estud’iandte de ingenieria electronica y aficionado a la proyectòs que sean cheveres , tengpo el prgramadpr de microchip y los programas para ello si alguien tiene un tutorial de como hacer un codigoe n este programa lo agradeceria que me lo envien a mi correo werneybarajas@hotmail.com

  22. Hola lo felicito soy nuevo y veo que usted ayuda quiero pasar archivos ya copilados a .hex volver a asm par modificarlos gracias

  23. Muito bom, acabei de encontrar esta página na web e gostei muito da explicação, sou aqui do Brasil e já a alguns dias estou tentando programar uma matriz 5X7 no entando não estou conseguindo, no entando não tinha encontrado uma explicação tão boa quanto esta, muito obrigado, eu não sei programar em assembler no entando vou tentar entender o seu código para quem sabe conseguir fazer o meu em linguagem “C”, caso você tenha tambem experiência em Linguagem C e puder me ajudar fico Grato, abraços!!!

  24. e-mail..

  25. Soy un rofano con mucho interes en la electronica, pero no entiendo porque si alimentas las 7 filas y la columna, por ejemplo, numero 1 ¿por que no se enciende toda la columna?

  26. Buenos dias, como puedo hacer para adaptar este proyecto en el pic 84, tengo muy poca experiencia en esto, no es muy complicado?? gracias.

  27. hola encontre esta pagina donde se construye una matriz de leds alguin me puede decir si funciona de verdad soy nuevo y quisiera construir esa matriz

    la pagina es
    http://mksdgo.homelinux.com/dat/matrix.php


Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.