Cómo multiplexar una matriz de leds

January 5, 2008 at 12:48 pm | Posted in Multiplexación, Rutinas, Tutorial | 47 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.

Lea el artículo completo en el blog Circuitos electronicos.

47 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 😀

  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. Hola a todos, pues era para saludarlos nuevamente y con respecto a las matrices de led’s, junto a otros compañeros realizamos un tablero de estos, conformado por 6 matrices 8×5 para un colegio; y en este momento estamos realizando otra, pero de 10 matrices, para el Sena Dosquebradas, en 20 dias esta terminada y pongo el video en Youtube para compartirlo…Asi que si alguien tiene una pregunta sobre Cómo realizar un tablero de estos me pueden escribir a victorinoz890@hotmail.com
    Este es el Link del video del tablero que hicimos..

    • Victoe en que lenguaje de programacion hicistes la matriz, porque tengo un problema soy novato en la programacion y el profesor nos pidio hacer una matriz de 7*32 pero el codigo debe de ser hecho en c++

  15. 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.-

  16. 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

  17. 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

  18. 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!!!

  19. 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

  20. 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.

  21. 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

  22. 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

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

  24. 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!!!

  25. e-mail..

  26. 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?

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

  28. 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

  29. Hola en el circuito que muestras no deberias de poner algun transistor que amplifique la corriente para los leds?

  30. ¿Qué software utilizas para el diseño de circuitos?

  31. para programar tu eeprom, hazlo con un programa que se llama kiseeprom..
    Tienes en un display kuales son los leds que van a encender y haces tu codigo, por ejemplo si kieres la A tu codigo va a ser 77, la E va ser 79, y asi sucesivamente, solo metes tu codigo en el programa, metes tu eeprom, ya sea 2732, o la q vallas a usar y lo programas

  32. Hola a todos, quiero agregar un comentario a tener en cuenta porque no lo lei en ninguna parte… LAs filas son 7, pero cuando las columnas son muchas es probable que el micro no las alimente, es decir, que el tiempo que tarda en volver a pasar por la primera es mucho y puede ser que se vean con poco brillo, asi que para evitar esto hay que entreegar una corriente sobre los leds que es la corriente del led multiplicado por la cantidad de columnas en el barrido para que el led brille en todo su explendor. digamos asi: Si tenes 10 columnas y cada led consume 10mA tenes que hacer que circule una corriente de 100mA, esto no quema los leds porque solo funcionan 1/10 del tiempo de barrido y en el promedio resulta 10mA, ya que le entrego 100mA durante 1/10t y luego 0mA en 9/10t. Me explico? si tenes 100 leds deberias entregar 1A por fila sino el cartel no se leeria. Todo esto que digo te lleva a colocar drivers en las filas y en las columnas. Asi que, si tenemos caracteres de 5×7 y un cartel de 10 letras tenemos 7 filas y 50 columnas; tenemos entonces una corriente por fila de 500mA y por columna de 2.5A (porque son los 500mA de cada led por 5 filas) en cada 1/50 de tiempo. Esto hay que tenerlo en cuenta tambien. Como driver comun de columnas puede funmcionar un mosfet o un integrado para ese uso como el uln2064, aunque en 50 columnas se va a calentar un poco; y para la fila 500mA lo logras con un uln2003 que tira 500mA y no neceitas nada mas ya que tiene conexion directa a TTL.

    Espero me hayan entendido, cualquier cosa preguntenme.

    Leo

  33. me podrian enviar el programa del contador que esta primero en mplab? estoy tratando de hacer un proyecto.. les agradesco mucho igual.. gracias

  34. hola a todos sera que lguien es tan amable de decirme como se manejan los pines de una matrix de leds de 5×8 bicolor (rojo y verde ) es que no se como es que se manejan los pines creo unos manejan los colores y otros las columnas y filas si alguien sabe porfavor me colavoran.

  35. hola. kisiera saber como multiplexar 512 leds.
    gracias

  36. hola Leo. kisiera saber como multiplexar 512 leds.

  37. Hola compañeros.

    Si no es mucha molestia me gustaría hacerles una pregunta. Ante todo soy un novato de cuidao. Estoy intentando terminar un artilugio y para eso necesitaría un panel de LEDs de 6 filas y 18 columnas.

    Importante es que los LEDs son bicolor (3 pines). Los leds necesito que se enciendan segun les diga un ordenador es decir, que el programa de ordenador a traves de Serial, USB o Paralelo (como sea mas conveninete), dice “GATO” en la matriz salga esa palabra y si dice otra cosa pues otra. (Estaria constantemente enchufada al ordenador).

    Mi intencion es ponerme en contacto con alguien que me pueda diseñar el circuito. Cuanto menos espacio ocupe el circuito mejor.

    Basicamente lo que necesito es poder decirle a una parrilla de que es lo que tiene que encenderse en cada momento, a traves de un ordenador.

    Si pueden orientarme para saber que tengo que buscar o pedirle a una persona que sepa diseñarlo, les estaria eternamente agradecido.

    Muchas gacias y Animo con el blog

  38. hol a todos bueno en primer lugar quisiera saber en que e sta programndo en lenguaje PBP O ENSAMBLADOR bueno si es en ensambldor me podrian ayudar a programar una matriz de led que s e dezplace las lettras sin necesidad de registros o 74ls…..

  39. Matriz de leds 7X32.
    Pic 16f628a + 74lc164

    Mi contribucion al foro por toda la ayuda brindada y espero que les sirva.
    Cualquier duda al correo wilfredo_lc_sistemas@hotmail.com.
    Proyecto completo codigo fuente + simulacion + proteus.

    Descarga link http://www.forosdeelectronica.com/at…9&d=1324675703

    video corriendo:http://www.youtube.com/v/108jzdzfBNw&hl

    codigo fuente:
    DEFINE OSC 4

    LINEA var byte[32]
    CHAR VAR BYTE[7]
    CHAR_ACT VAR BYTE ‘ puntero de caracter
    CHAR_LENGTH_ACT VAR BYTE ‘puntero de la longitud del caracter
    CHAR_LENGTH var byte ‘ longitud de la longitud
    Caracter var byte
    Counter1 var byte
    Counter2 var byte
    Counter3 var byte
    Counter4 var byte

    ‘declaracion de alias

    DATOS var PORTA.0
    CLOCK var PORTA.1

    ‘Inicializacion de los datos

    TRISB = 0
    TRISA = 0

    linea[1]=$FF
    linea[2]=$FF
    linea[3]=$FF
    linea[4]=$FF
    linea[5]=$FF
    linea[6]=$FF
    linea[7]=$FF
    linea[8]=$FF
    linea[9]=$FF
    linea[10]=$FF
    linea[11]=$FF
    linea[12]=$FF
    linea[13]=$FF
    linea[14]=$FF
    linea[15]=$FF
    linea[16]=$FF
    linea[17]=$FF
    linea[18]=$FF
    linea[19]=$FF
    linea[20]=$FF
    linea[21]=$FF
    linea[22]=$FF
    linea[23]=$FF
    linea[24]=$FF
    linea[25]=$FF
    linea[26]=$FF
    linea[27]=$FF
    linea[28]=$FF
    linea[29]=$FF
    linea[30]=$FF
    linea[31]=$FF
    linea[32]=$FF

    char_act=0
    counter3=0
    counter4=0
    counter2=1
    char_length_act = 1
    low clock
    low datos

    DATA @0,”CRISTO VIENE PRONTO PREPARATE FELIZ NAVIDAD 2011 FOROS UCONTROL ” ‘aca guardamos nuetro programa, es modificable al gusto
    read char_act,caracter
    gosub tabla_char

    ‘inicio del programa
    Inicio:

    MENSAJE:
    linea[1]=char[char_length_act]
    IF CHAR_LENGTh_act = char_length then
    char_act = char_act + 1
    Mens_Salto1:
    read char_act,caracter
    if caracter=$FF then
    char_act=0
    goto mens_salto1
    endif
    gosub tabla_char
    char_length_act=0
    endif
    Img:
    counter1=0

    LineH:
    PORTB = $FF
    counter1 = counter1 + 1 ‘envia LA ACTIVACION del registro
    if counter1 = counter2 then ‘serial paralelo
    gosub send_data0 ‘para activar la linea vertical
    else
    gosub send_data1
    endif
    if counter1 = 32 then goto LineV
    goto lineh
    LineV:
    PORTB = LINEA[COUNTER2] ‘determina la posicion activa horizontal
    pauseus 500 ‘y genera la activacion de los leds verticales
    if counter2 = 32 then
    counter2 = 1
    gosub send_data0
    ELSE
    counter2 = counter2 + 1
    gosub send_data1
    endif

    Shift_Left:
    if counter3 = 35 then
    counter3 = 0
    COUNTER4 = COUNTER4 + 1
    if counter4 = 2 then ‘ 250 del counter3 *4 del

    linea[32]=linea[31]’
    linea[31]=linea[30]’
    linea[30]=linea[29]’counter4 es aprox 0.5seg
    linea[29]=linea[28]’si hay mas lineas
    linea[28]=linea[27]’hay q agrandar losvectores
    linea[27]=linea[26]’y cambiar por un for
    linea[26]=linea[25]
    linea[25]=linea[24]
    linea[24]=linea[23]
    linea[23]=linea[22]’counter4 es aprox 0.5seg
    linea[22]=linea[21]’si hay mas lineas
    linea[21]=linea[20]
    linea[20]=linea[19]’y cambiar por un for
    linea[19]=linea[18]
    linea[18]=linea[17]
    linea[17]=linea[16]
    linea[16]=linea[15]’
    linea[15]=linea[14]’counter4 es aprox 0.5seg
    linea[14]=linea[13]’si hay mas lineas
    linea[13]=linea[12]’hay q agrandar losvectores
    linea[12]=linea[11]’y cambiar por un for
    linea[11]=linea[10]
    linea[10]=linea[9]
    linea[9]=linea[8]
    linea[8]=linea[7]’counter4 es aprox 0.5seg
    linea[7]=linea[6]’si hay mas lineas
    linea[6]=linea[5]’hay q agrandar los vectores
    linea[5]=linea[4]’y cambiar por un for
    linea[4]=linea[3]
    linea[3]=linea[2]
    linea[2]=linea[1]
    counter4 = 0
    char_length_act = char_length_act+1
    GOTO INICIO
    endif
    ELSE
    counter3 = counter3 + 1
    endif
    goto IMG

    SEND_DATA0:
    low datos
    pauseus 2
    low clock
    pauseus 2
    high clock
    RETURN

    SEND_DATA1:
    HIGH DATOS
    pauseus 2
    low clock
    pauseus 2
    high clock
    RETURN

    ‘tabla de seleccion de caracter

    TABLA_CHAR:
    select case caracter
    case ” ”
    char_LENGTH=5
    char[5]=$FF
    char[4]=$FF
    char[3]=$FF
    char[2]=$FF
    char[1]=$FF

    case “C”
    char_LENGTH=5
    char[5]=$FF
    char[4]=%1011101
    char[3]=%0111110
    char[2]=%0111110
    char[1]=%1000001

    case “R”
    char_LENGTH=5
    char[5]=$FF
    char[4]=%1001000
    char[3]=%0110111
    char[2]=%0110111
    char[1]=%0000000

    case “I”
    char_LENGTH=4
    char[4]=$FF
    char[3]=%0111110
    char[2]=%0000000
    char[1]=%0111110

    case “T”
    char_LENGTH=5
    char[5]=$FF
    char[4]=%0111111
    char[3]=%0000000
    char[2]=%0000000
    char[1]=%0111111

    case “O”
    char_LENGTH=6
    char[6]=$FF
    char[5]=%1000001
    char[4]=%0111110
    char[3]=%0111110
    char[2]=%0111110
    char[1]=%1000001

    ………..caracteres del A a la Z + numeros

    case else
    char_LENGTH=5
    CHAR[1]=$FF
    CHAR[2]=$FF
    CHAR[3]=$FF
    CHAR[4]=$FF
    CHAR[5]=$FF

    end select
    return

    END
    led

  40. Quisiera saber si me puedes enviar informacion para programar un pic16f84a para gravar un nombre en un DISPLAY LED 5X7 gracias te lo agradeceria

    • como es el display que vas a usar es de 5×7 leds?

  41. como puedo multiplexar 5 matrices de leds de 5×7

  42. como haGO un cronometro en tiempo real con matrices de leds con el atmega 324 en C

  43. saludos necesito ayuda mi matriz de 7×20 funciona bien pero sin driver en la filas por que al colocarle el uln2003 no funciona ¿alguna idea de que pueda ser?
    tenia pensado colocarle transitores.

  44. Hola necesito hacer una matriz de leds de cero, necesito informacion.

  45. 강남오피후기

    C


Leave a comment

Create a free website or blog at WordPress.com.
Entries and comments feeds.