Cómo multiplexar una matriz de leds
January 5, 2008 at 12:48 pm | Posted in Multiplexación, Rutinas, Tutorial | 47 CommentsYa 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
Leave a comment
Create a free website or blog at WordPress.com.
Entries and comments feeds.
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.
Comment by Fer— January 8, 2008 #
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.
Comment by micropic— January 9, 2008 #
[…] 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í […]
Pingback by Cumplimos un año « MicroPIC— January 10, 2008 #
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?
Comment by Fernanda— January 19, 2008 #
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!
Comment by micropic— January 19, 2008 #
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
Comment by DIDIER— March 20, 2008 #
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
Comment by marco— March 20, 2008 #
!!!!!!!!!!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
Comment by luis carlos— June 18, 2008 #
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 😀
Comment by cccdigital— June 27, 2008 #
Hola:
Muy buena el trabajo, con ejemplos y todo en youtube.
Un cordial saludos.
Comment by Meta— July 31, 2008 #
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!!
Comment by §carll— August 21, 2008 #
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
Comment by anime— September 14, 2008 #
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
Comment by aldo— October 12, 2008 #
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..
Comment by Victor— November 23, 2008 #
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++
Comment by Guillermo— May 29, 2012 #
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.-
Comment by Marcelo— November 24, 2008 #
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
Comment by lemys— December 9, 2008 #
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
Comment by lemys— December 9, 2008 #
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!!!
Comment by HackNeo— January 3, 2009 #
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
Comment by alejandro— March 7, 2009 #
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.
Comment by el endemoniau— April 23, 2009 #
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
Comment by Mike9— May 4, 2009 #
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
Comment by werney— May 7, 2009 #
Hola lo felicito soy nuevo y veo que usted ayuda quiero pasar archivos ya copilados a .hex volver a asm par modificarlos gracias
Comment by jesy o— May 22, 2009 #
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!!!
Comment by Edu— May 25, 2009 #
e-mail..
Comment by Edu— May 25, 2009 #
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?
Comment by Chemi— July 17, 2009 #
Buenos dias, como puedo hacer para adaptar este proyecto en el pic 84, tengo muy poca experiencia en esto, no es muy complicado?? gracias.
Comment by Miguel Angel— August 11, 2009 #
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
Comment by rodrigo— September 11, 2009 #
Hola en el circuito que muestras no deberias de poner algun transistor que amplifique la corriente para los leds?
Comment by edgar— January 1, 2010 #
¿Qué software utilizas para el diseño de circuitos?
Comment by drount— April 1, 2010 #
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
Comment by daniel— October 13, 2010 #
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
Comment by Leo-junin— January 21, 2011 #
me podrian enviar el programa del contador que esta primero en mplab? estoy tratando de hacer un proyecto.. les agradesco mucho igual.. gracias
Comment by juanjo— February 24, 2011 #
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.
Comment by cristian camilo suaza— March 3, 2011 #
hola. kisiera saber como multiplexar 512 leds.
gracias
Comment by noemi— April 9, 2011 #
hola Leo. kisiera saber como multiplexar 512 leds.
Comment by noemi— April 9, 2011 #
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
Comment by Anto— June 14, 2011 #
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…..
Comment by emerson— June 27, 2011 #
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
Comment by fey116— December 26, 2011 #
Quisiera saber si me puedes enviar informacion para programar un pic16f84a para gravar un nombre en un DISPLAY LED 5X7 gracias te lo agradeceria
Comment by Giovanni— July 8, 2012 #
como es el display que vas a usar es de 5×7 leds?
Comment by Jesus Orta— July 9, 2012 #
como puedo multiplexar 5 matrices de leds de 5×7
Comment by wilmer— July 26, 2012 #
como haGO un cronometro en tiempo real con matrices de leds con el atmega 324 en C
Comment by wilmer— July 26, 2012 #
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.
Comment by her— May 25, 2013 #
Hola necesito hacer una matriz de leds de cero, necesito informacion.
Comment by Gumercindo— May 29, 2013 #
강남오피후기
C
Trackback by 강남키스방— November 15, 2017 #