Autor Tema: De matriz de leds, a letrero electronico  (Leído 295107 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado smarkol

  • PIC10
  • *
  • Mensajes: 20
Re: De matriz de leds, a letrero electronico
« Respuesta #330 en: 14 de Octubre de 2010, 12:39:35 »
Salvo los transistores, todo bien. Los transistores que sean un BD139 por ejemplo, u otro de más corriente, por lo menos 1 ó 2A, ya que como tienes 24 columnas, y tus leds digamos que cada uno a 25mA consumirás 600mA con toda una fila encendida, y un BC557 se queda corto, puede que caliente mucho, se queme, o que no tengas un brillo bueno.

No te olvides de los condensadores de desacoplo de unos 100nF en el micro y en cada integrado.

saludos.

en mi caso yo he  realizado una matriz de 7 filas x 60 columnas  lo que implicaria un consumo de 1,5 A por cada fila de acuerdo a lo mencionado y en vez de el BD139 yo he colocado una configuracion darlington a la salida de cada fila con el bc558 y tip42,y para las columnas el 74hc4094 y a la salida de este un bc547 en vez de los ULN los led que he utilizado son difusos,el resultado de esto es que he tenido poco brillo con respecto a lo que deberia tener el led difuso.
mis dudas que tengo repecto a esto:

- debo cambiar a los ULN?
tambien he diseñado una fuente, adjunto el esquematico para que lo vean
- que consideraciones debo tener para esta fuente?

Saludos..

Desconectado OSS

  • PIC10
  • *
  • Mensajes: 9
Re: De matriz de leds, a letrero electronico
« Respuesta #331 en: 08 de Noviembre de 2010, 20:15:12 »
Bueno queda decir que en el display 7x64 que arme el consumo es minimo ya que hice la medicion con el amperimetro y apenas pude medir no mas de 0.5 A hay que aclarar que uso una configuracion de barrido por filas esto quiere decir que cada fila estara prendida 1/7 parte por un periodo de 1-2 mS que es como si se estuvieran encendiendo atraves de una especie de "PWM" lo que me lleva a cambiar las resistencias de 100 ohm de cada fila por la de 47 ohm para obtener un brillo mejor aún, he utilizado unos TIP 32 los he sensado y no caientan absolutamente nada no esta mal utilizar los BD 139 van sobrados para esta configuración aqui adjunto algunos archivos y un video de muestra para lo que estoy utilizando esta matriz de leds saludos  ;-)




El video, disculpen la resolucion ...
 
.

Desconectado redk292

  • PIC10
  • *
  • Mensajes: 2
Re: De matriz de leds, a letrero electronico
« Respuesta #332 en: 17 de Diciembre de 2010, 18:59:00 »
Como lo prometido es deuda acá esta todo el material, lo prueban y me dicen que les pareció y si se lo puede realizar alguna adaptacion al caso

esta es la direccion donde esta alojado

http://www.4shared.com/file/87786192/71a833b9/faypert.html?dirPwdVerified=19d53165


Hola todos, si alguien me ayuda es que intente descargar este proyecto del link y no aparece.
Estoy tratando de realizar un letrero de 3 matrices de alto por 6 de largo para que cada letra sea de 12 pixeles de alta, ademas quiero aprender a manejar el bicolor, las matrices que compre son de 6 cm bicolor a $4.25US en Colombia.
Si conocen un buen libro que me enseñe a programar en C, tengo el C Compiler, ademas si conocen un buen tutorial paso a paso para matrices, les agradezco.  :oops:

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #333 en: 26 de Diciembre de 2010, 13:11:17 »
Hola, el link de descarga que pusiste está funcionando bien.

Lo que en este hilo se tiene te puede servir para poder ingresar al mundo de los carteles y servirte de base para lo que pretendes.

Te dejo este link para que ahí también veas que hay muchas cosas interesantes para los carteles.

Para aprender a programar en C, al menos en CCS según yo, no hay mejor que lo en el foro puedes encontrar date una vuelta por los temas del subforo de lenguaje C

Saludos :x)
.

Desconectado Strepto

  • PIC16
  • ***
  • Mensajes: 159
    • Pictronics
Re: De matriz de leds, a letrero electronico
« Respuesta #334 en: 25 de Febrero de 2011, 07:49:45 »
Despues de mucho tiempo sin haber tocado el tema por motivo de estudios y trabajo, lo que viene siendo falta de tiempo, me puesto manos a la obra con mi letrero haciendo un contador, para mas adelante empezar con el reloj y esto es lo que me ha quedado.

Como podeis ver, dispone de todo lo necesario para la matriz de leds y una memoria para almacenar datos. Aqui es donde guardo numeros y mas adelante desde frases hasta fechas. La informacion la envio por columnas y la activacion de los leds es mediante ceros.

El codigo es el siguiente.
Código: [Seleccionar]
         
            Device 16F877A
            
            All_Digital TRUE
            Xtal 20
            
            TRISA = %00000000
            TRISD = %00000000
            TRISB = %11111111

            OPTION_REG = %01000111
            INTCON = %00010000
    
            Declare SCL_Pin PORTC.3
            Declare SDA_Pin PORTC.4
            
            Dim dira As Word
            Dim dirb As Word
            Dim mostrar[32] As Byte
            Dim dig1[5] As Byte
            Dim dig2[5] As Byte
            Dim dig3[5] As Byte
            Dim dig4[5] As Byte
            Dim puntos[2] As Byte
            Dim digito1 As Byte
            Dim digito2 As Byte
            Dim digito3 As Byte
            Dim digito4 As Byte
            Dim cont As Byte  
            Dim i As Bit

            PORTA = %00001110   'configura los bits de desplazamiento
            PORTD = 0
            
            'Grabar numeros en la eeprom          
            BStart
            BusOut %10100000,[$00,$00,$83,$5D,$6D,$75,$83,$FF,$FF,$FF] 'numero 0
            DelayMS 50        
            BusOut %10100000,[$00,$08,$7F,$7B,$01,$7F,$7F,$FF,$FF,$FF] 'numero 1
            DelayMS 50
            BusOut %10100000,[$00,$10,$7B,$3D,$5D,$6D,$73,$FF,$FF,$FF] 'numero 2
            DelayMS 50
            BusOut %10100000,[$00,$18,$BB,$7D,$7D,$6D,$93,$FF,$FF,$FF] 'numero 3
            DelayMS 50
            BusOut %10100000,[$00,$20,$E1,$EF,$EF,$EF,$01,$FF,$FF,$FF] 'numero 4
            DelayMS 50
            BusOut %10100000,[$00,$28,$A1,$6D,$6D,$6D,$9D,$FF,$FF,$FF] 'numero 5
            DelayMS 50
            BusOut %10100000,[$00,$30,$87,$6B,$6D,$6D,$9F,$FF,$FF,$FF] 'numero 6
            DelayMS 50
            BusOut %10100000,[$00,$38,$FD,$1D,$ED,$F5,$F9,$FF,$FF,$FF] 'numero 7
            DelayMS 50
            BusOut %10100000,[$00,$40,$93,$6D,$6D,$6D,$93,$FF,$FF,$FF] 'numero 8
            DelayMS 50
            BusOut %10100000,[$00,$48,$F3,$6D,$6D,$AD,$C3,$FF,$FF,$FF] 'numero 9
            DelayMS 50
            BStop
            
            For cont = 0 To 31     'para que aparezcan todos los leds apagados
               mostrar[cont]= $FF  
            Next
            
            dira = 0        'Pone a cero las variables que vamos a usar
            dirb = 0
            digito1 = 0
            digito2 = 0
            digito3 = 0
            digito4 = 0
            
            dirb = 8*digito1 'Se multiplica por 8 por que en la memoria los numeros van de 8 en 8 bytes
            BStart
            BusOut %10100000
            BusOut dira
            BusOut dirb
            BReStart
            BusOut %10100001
            BusIn Str dig1
            BStop
            DelayMS 10
            For cont = 0 To 4
               mostrar[cont+3] = dig1[cont] 'digito 1
            Next
            
            dirb = 8*digito2            
            BStart            
            BusOut %10100000  
            BusOut dira      
            BusOut dirb      
            BReStart          
            BusOut %10100001  
            BusIn Str dig2    
            BStop              
            DelayMS 10
            For cont = 0 To 4
               mostrar[cont+9] = dig2[cont] 'digito 2
            Next

            dirb = 8*digito3        
            BStart            
            BusOut %10100000  
            BusOut dira      
            BusOut dirb      
            BReStart          
            BusOut %10100001  
            BusIn Str dig3    
            BStop              
            DelayMS 10
            For cont = 0 To 4
               mostrar[cont+18] = dig3[cont] 'digito 3
            Next

            dirb = 8*digito4        
            BStart            
            BusOut %10100000  
            BusOut dira      
            BusOut dirb      
            BReStart          
            BusOut %10100001  
            BusIn Str dig4    
            BStop              
            DelayMS 10
            For cont = 0 To 4
               mostrar[cont+24] = dig4[cont] 'digito 4
            Next
            
            On Interrupt GoTo Incrementa
            
            'inicio del programa
Inicio:
            For cont = 0 To 31      
                If cont = 0 Then
                    PORTA.0 = 1
                Else
                    PORTA.0 = 0
                EndIf
                PORTD = mostrar[cont]
                PulsOut PORTA.1,1,High
                DelayUS 500
                PORTD = $FF              
            Next
            GoTo Inicio
            
            'cuando ocurre una interrucion...
            Disable
Incrementa:            
            If digito4 = 9 Then
                If digito3 = 9 Then
                    If digito2 = 9 Then
                        If digito1 = 9 Then
                            digito1 = 0
                        Else
                            Inc digito1
                        EndIf
                        dirb = 8*digito1 'Se multiplica por 8 por que en la memoria los numeros van de 8 en 8 bytes
                        BStart
                        BusOut %10100000
                        BusOut dira
                        BusOut dirb
                        BReStart
                        BusOut %10100001
                        BusIn Str dig1
                        BStop
                        DelayMS 10
                        For cont = 0 To 4
                           mostrar[cont+3] = dig1[cont] 'digito 1
                        Next
                        digito2 = 0
                        DelayMS 10
                    Else
                        Inc digito2
                    EndIf
                    dirb = 8*digito2            
                    BStart            
                    BusOut %10100000  
                    BusOut dira      
                    BusOut dirb      
                    BReStart          
                    BusOut %10100001  
                    BusIn Str dig2    
                    BStop              
                    DelayMS 10
                    For cont = 0 To 4
                       mostrar[cont+9] = dig2[cont] 'digito 2
                    Next
                    digito3 = 0
                    DelayMS 10
                Else
                    Inc digito3
                EndIf
                dirb = 8*digito3        
                BStart            
                BusOut %10100000  
                BusOut dira      
                BusOut dirb      
                BReStart          
                BusOut %10100001  
                BusIn Str dig3    
                BStop              
                DelayMS 10
                For cont = 0 To 4
                   mostrar[cont+18] = dig3[cont] 'digito 3
                Next
                digito4 = 0
                DelayMS 10
            Else
                Inc digito4
            EndIf
            dirb = 8*digito4        
            BStart            
            BusOut %10100000  
            BusOut dira      
            BusOut dirb      
            BReStart          
            BusOut %10100001  
            BusIn Str dig4    
            BStop              
            DelayMS 10
            For cont = 0 To 4
               mostrar[cont+24] = dig4[cont] 'digito 4
            Next

            OPTION_REG = %01000111
            INTCON = %00010000
            Resume
            Enable
                
            End
            

Os adjunto la simulacion a ver que os parece y acepto sugerencias sobre posibles mejoras tanto de esquema como de codigo.

Un saludo!
« Última modificación: 25 de Febrero de 2011, 07:55:50 por Strepto »

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: De matriz de leds, a letrero electronico
« Respuesta #335 en: 08 de Abril de 2011, 00:32:45 »
Bueno queda decir que en el display 7x64 que arme el consumo es minimo ya que hice la medicion con el amperimetro y apenas pude medir no mas de 0.5 A hay que aclarar que uso una configuracion de barrido por filas esto quiere decir que cada fila estara prendida 1/7 parte por un periodo de 1-2 mS que es como si se estuvieran encendiendo atraves de una especie de "PWM" lo que me lleva a cambiar las resistencias de 100 ohm de cada fila por la de 47 ohm para obtener un brillo mejor aún, he utilizado unos TIP 32 los he sensado y no caientan absolutamente nada no esta mal utilizar los BD 139 van sobrados para esta configuración aqui adjunto algunos archivos y un video de muestra para lo que estoy utilizando esta matriz de leds saludos  ;-)

yo estoy haciendo una matriz ya la tengo casi pulida http://www.todopic.com.ar/foros/index.php?topic=33681.0

OSS dices que le colocas una resistencia de 47 ohm en las filas?, si veo un poco de teoria seria algo asi.

supongamos que en un momento un solo led se enciende en una fila, por ende

tenemos que, la corriente del led es igual a la tensión de alimentación menos la caída del led dividido el valor de resistencia.   IL = (Vf - Vl) / R     ===>   IL = (5v - 2.2v) / 47 dando por resultado  aprox. 60 mA, y en ese momento esa fila no va a encender mas que otras que estén con mas led encendidos?? no se si me explico bien, ya que en mi post me dijeron que debería colocar resistencias de mayor valor para no dañar al led y demas, pero mi duda sigue siendo eso de las filas que estén mas encendidas por tener menos led encendidos, o tengo mezclado un poco mis pocos conocimientos técnicos??...

Agradezco la respuesta de quien sea, hace poco empece a seguir el hilo y hay proupuestas y soluciones muy interesantes.

Saludos.-
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado OSS

  • PIC10
  • *
  • Mensajes: 9
Re: De matriz de leds, a letrero electronico
« Respuesta #336 en: 08 de Abril de 2011, 12:12:46 »
Saludos amigos Todopic, korpaztk para que puedas despejar tu duda sobre cual deben ser las resistencias por columna existe una formula para poder determinarla te voy a explicar en mi caso, como la matriz hace el barrido por filas tenemos que cada fila se enciende 2mS (T-on) y tenemos 7 filas = 14mS (T-tot) y la corriente nominal de cada led 8mA los que yo uso podemos decir que cada led va a estar encendido 1/7 parte de lo normal a una corriente de 8mA "teoricamente" pero en la practica ese led estara iluminado 7 veces menos a la nominal graficamente se puede ver de la siguiente manera:

         
Fila1:l"""l_____________________ T-on = 2mS

Fila2:___l"""l__________________

Fila3:______l"""l_______________

Fila4:_________l"""l____________

Fila5:____________l"""l_________

Fila6:_______________l"""l______

Fila7:__________________l"""l___     T-tot = nº filas * T-on = 14mS


la Formula para allar la corriente necesaria por led seria:  I-led = T-tot / T-on * corriente normal del led

Ejemplo:  I-led = 14mS / 7mS * 8mA = 56mA ~ 60mA

entonces: R=(Vf - Vl) / I-led tenemos R= (5v - 2.2v) / 60mA = 46.6 ohm ~ 47 ohm

espero haberte ayudado a aclararte lo de las resistencias Saludos. :)





Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: De matriz de leds, a letrero electronico
« Respuesta #337 en: 08 de Abril de 2011, 12:15:46 »
ah.. ahora entendi jejeje. pues mira te comento lo que acabo de hacer hace 10 minutos, reemplace las resistencias por unas de 20 ohms, y los led encienden barbaros, coloque mi amperimetro y leo entre 14 y 19 mA por filas, pero no se porque se me apaga despues de pasar las primeras letras, o por ahi cuando pasa una o dos veces el mensaje :S, no te ha pasado algo asi??

Saludos.-
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado OSS

  • PIC10
  • *
  • Mensajes: 9
Re: De matriz de leds, a letrero electronico
« Respuesta #338 en: 08 de Abril de 2011, 12:24:43 »
Hasta el momento no las he bajado de ese valor (47 ohm) obtuve un excelente brillo y no me ha sucedido lo que comentas, puede ser que estar superando la barrera maxima de corriente pico es decir la I-peak que soporta el led

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: De matriz de leds, a letrero electronico
« Respuesta #339 en: 08 de Abril de 2011, 12:26:44 »
voy a probar subir el valor de resistencia y ahora comento que me sucede.

Saludos.-
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: De matriz de leds, a letrero electronico
« Respuesta #340 en: 08 de Abril de 2011, 13:54:48 »
ahora probé con resistencias de 47 ohms como has hecho tu OSS y funciona bárbaro, ahora en próximo cartel haré lo mismo o algo parecido pero utilizare led de mas mcd porque los que tengo en este son de 4000 y ya estuve viendo unos pero de 25000 espero que halla algún resultado, pero bueno cuando me dedique a ese abriré un nuevo hilo.

Gracias por tu consejo.

Saludos.-
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado martin 2187

  • PIC10
  • *
  • Mensajes: 6
Re: De matriz de leds, a letrero electronico
« Respuesta #341 en: 30 de Mayo de 2011, 03:41:53 »
hola.. disculpen las molestias... soy algo nuevo en esto de la programación y ando con la idea de armarme unos de esos carteles para colocar en el negocio de mi vieja... les agradecería si pudieran subir algún cartel de matrices que se pueda escribir el texto sin necesidad de una pc, o indicarme donde puedo bajarlo porque desde hace una semana estoy dando vueltas por todas las paginas y no puedo encontrar nada que me convenza... lo que estoy buscando es alguno de 7x45 o similar....

Desde ya muchas gracias...

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: De matriz de leds, a letrero electronico
« Respuesta #342 en: 30 de Mayo de 2011, 09:28:14 »
hola.. disculpen las molestias... soy algo nuevo en esto de la programación y ando con la idea de armarme unos de esos carteles para colocar en el negocio de mi vieja... les agradecería si pudieran subir algún cartel de matrices que se pueda escribir el texto sin necesidad de una pc, o indicarme donde puedo bajarlo porque desde hace una semana estoy dando vueltas por todas las paginas y no puedo encontrar nada que me convenza... lo que estoy buscando es alguno de 7x45 o similar....

Desde ya muchas gracias...

bienvenido al foro martin 2187, con respecto a tu duda no recuerdo que alguien del foro lo halla hecho, o por lo menos, con esa tipo de especificación, pero si te das un poco de maña, se puede hacer.

Saludos.-
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 611
Re: De matriz de leds, a letrero electronico
« Respuesta #343 en: 30 de Mayo de 2011, 15:44:18 »
hola.. disculpen las molestias... soy algo nuevo en esto de la programación y ando con la idea de armarme unos de esos carteles para colocar en el negocio de mi vieja... les agradecería si pudieran subir algún cartel de matrices que se pueda escribir el texto sin necesidad de una pc, o indicarme donde puedo bajarlo porque desde hace una semana estoy dando vueltas por todas las paginas y no puedo encontrar nada que me convenza... lo que estoy buscando es alguno de 7x45 o similar....

Desde ya muchas gracias...

creo que la mejor manera sería con un teclado de pc, pero tienes que entrarle al código PS/2
saludos.
     

Desconectado martin 2187

  • PIC10
  • *
  • Mensajes: 6
Re: De matriz de leds, a letrero electronico
« Respuesta #344 en: 30 de Mayo de 2011, 15:55:06 »
gracias por contestar tan pronto... y si para algo soy bueno es para darme maña y armar lo que sea... jaja.. bueno, voy a probar con algunas cosas y después comento como fue y lo posteo así alguien mas si lo necesita lo puede bajar sin darse tantas vueltas por todos las paginas como yo.. ja.

muchas gracias...