Ir ao conteúdo

Montagem matriz de led pic proteus usbpic-Dúvida


TECHNOSAT

Posts recomendados

Postado

Saudações a todos...

Com a proximidade do natal, para quem gosta de eletrônica vai surgindo a vontade de fazer algo diferente das "simples luzinhas piscantes de natal".

Pois bem, vasculhando a web localizei uma matriz de led bastante interessante, cuja programação das mensagens pode ser feita via usb (proteus/usbpic). A foto e os arquivos proteus para download seguem abaixo:

http://4.bp.blogspot.com/-uOo2gf6pV8U/UiMKYcWik_I/AAAAAAAAAKY/vMeP_8iDBzA/s1600/Sans+titre3.jpg

http://isisproteus.blogspot.com.br/2012/09/isis-proteus.html#!/2012/09/isis-proteus.html (Obs: movimente a barra de rolagem até achar o tópico "usbpic" com as fotos e anexos)

No proteus o projeto roda perfeitamente bem após instalação da usb virtual (faz parte dos anexos). Há até um vídeo nos anexos mostrando o funcionamento.

Entretanto, pensando na montagem prática, surgem alguns questionamentos:

1) Primeiramente, se nota que não há nenhum resistor limitador de corrente para os CIs/Matrizes. Isso é fácil de complementar.

2) Em seguida, vemos que é utilizado o CI 74HCT164 com o 74LS138.

O 74HCT164 creio que deva ser similar ao 74HC164N com o qual estou habituado a lidar. O problema é que nunca vi nenhuma outra montagem real utilizando este CI com o 74LS138.

Tentei uma montagem prática utilizando estes dois CIS em uma matriz de led com pic no protoboard e não funcionou.

Supondo que funcione, a adição de resistores seria suficiente para limitar a corrente e não danificar os CIs? É outra dúvida.

Enfim, se alguém puder contribuir com algum esclarecimento, ficarei grato.

Technosat.

Postado

Technosat,

Os 74HCT164 podem fornecer um total de corrente de 50mA, ou seja, cerca de 7 mA para cada linha se todas estiverem "acesas".

Já o 74LS138 pode consumir um pico de 50 mA tranquilamente por pouco tempo.

Resta saber se o seu display vai ter um bom brilho com corrente máxima de 7ma em cada Led; lembando que com a multiplexação o brilho aparente ainda vai cair mais ...

Quanto a princípio de funcionamento, não vejo nenhum motivo para não funcionar.... , não ví qual a taxa de refresh, mas isso é software, não hardware.

Paulo

Postado

Obrigado pelos esclarecimentos Paulo.

A verdade é que estou habituado com esquemas que chaveiam a referência negativa através de transistores que ficam muito bons na prática, desta forma:

http://www.taringa.net/posts/ciencia-educacion/8653811/Matriz-de-led-8x8.html

e nunca tinha visto isso ser feito por outro CI (74LS138). Já tentei com os ULNs da vida mas nunca deu certo...rs.

Quanto à luminosidade, penso em fazer experiências primeiro na matriz de contato e além do mais trata-se apenas de montagem didática.

Grande abraço.

Technosat.

Postado

Usando um transistor vai ficar com um brilho um pouco maior, mas ainda temos o problema de pouca corrente fornecida pelo HCT164; o ideal seria se voce utilizasse um daqueles CI's source, tipo aqueles UDN ou ULN qqr coisa, ligado na saída do HCT164 para poder fornecer mais corrente, e com os transistores chaveando as colunas, ia ficar mesmo show de bola !

Eu consegui utilizar os dois, um como source e o outro como sink, o gozado é que no Proteus não funcionava, mas no protótipo ficou uma beleza....

Paulo

Postado

Caro amigo Paulo....Nâo consegui trabalhar com a dupla 74LS138/74LS164N com o código que acompanha o circuito.

Retornei aos meus próprios códigos (em basic) que funcionam bem, apenas um pouco mais trabalhoso para escrever as frases.

Estou experimentando o ULN2803 e consegui fazer funcionar na prática e no proteus desta forma:

http://imageshack.us/photo/my-images/842/kepz.png/

Grato pela sua costumeira contribuição.

Technosat

Postado
...o gozado é que no Proteus não funcionava, mas no protótipo ficou uma beleza.... Paulo

Amigo Paulo, apenas para demonstrar que funciona no Proteus segue o hardware:

http://imageshack.us/photo/my-images/845/rvn3.jpg/

O software não está 100% pois é só demonstrativo do conceito e é em basic PSI:

TRISA = 0

TRISB = 0

TRISD = 0

AllDigital

Symbol clock = PORTA.4 'nombramos a ra4 como clock

Symbol data = PORTA.3 'nombramos a ra3 como data

Dim c1 As Byte 'valor de la 1 columna

Dim c2 As Byte 'de la 2 columna

Dim c3 As Byte '....

Dim c4 As Byte '....

Dim c5 As Byte '....

Dim c6 As Byte '....

Dim c7 As Byte '....

Dim c8 As Byte 'y la 8 columna

Dim c9 As Byte 'valor de la 1 columna

Dim c10 As Byte 'de la 2 columna

Dim c11 As Byte '....

Dim c12 As Byte '....

Dim c13 As Byte '....

Dim c14 As Byte '....

Dim c15 As Byte '....

Dim c16 As Byte 'y la 8 columna

Dim var As Byte 'variable para guardar los valores obtenidos de lookup

Dim lista As Byte 'variable para el numero del valor a tomar

Dim a As Byte 'variable a auxiliar para conteos

Dim b As Byte 'variable b auxiliar para conteos

inicio: 'começa o programa

Gosub limpiar 'limpiamos todas la columnas, variables y las ports

For a = 1 To 16 Step 1 'letra D

var = LookUp(60, 66, 149, 161, 161, 149, 66, 60, 0, 0, 0), lista

'nuestra lista sol los valores de las columnas de la carita

'aumentando 8 ceros para que vuelva a repetirse con un espacio

'como lista esta en 0 por nuestra subrutina de limpiar toma el primer valor

c16 = var

Gosub mostrar 'mostramos el valor

lista = lista + 1 'sumamos 1 al valor de la lista para el siguiente dato en la segunda repeticion

Gosub desplazar

Next a

Goto inicio

End

limpiar:

c1 = 0

c2 = 0

c3 = 0

c4 = 0

c5 = 0

c6 = 0

c7 = 0

c8 = 0

c9 = 0

c10 = 0

c11 = 0

c12 = 0

c13 = 0

c14 = 0

c15 = 0

c16 = 0

a = 0

b = 0

var = 0

lista = 0

clock = 0

data = 0

PORTA = 0

PORTB = 0

PORTD = 0

Return

desplazar: 'con esta subrutina desplazamos los valores obtenidos

'para leer los mensajes se debe desplazar de derecha a izquierda por este motivo empezamos de la c8 en los ejemplos

'entoses los valores son desplazados a la izquierda

c1 = c2

c2 = c3

c3 = c4

c4 = c5

c5 = c6

c6 = c7

c7 = c8

c8 = c9

c9 = c10

c10 = c11

c11 = c12

c12 = c13

c13 = c14

c14 = c15

c15 = c16

c16 = c1

Return 'volvemso a continuar nuesto programa

mostrar:

For b = 1 To 16 Step 1 'repetimos lo que muestra para apreciar el desplazamiento

PORTB = c1

PORTD = c1

data = 1

clock = 1

clock = 0

data = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c2

PORTD = c2

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c3

PORTD = c3

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c4

PORTD = c4

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c5

PORTD = c5

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c6

PORTD = c6

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c7

PORTD = c7

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c8

PORTD = c8

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c9

PORTD = c9

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c10

PORTD = c10

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c11

PORTD = c11

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c12

PORTD = c12

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c13

PORTD = c13

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c14

PORTD = c14

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c15

PORTD = c15

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

PORTB = c16

PORTD = c16

clock = 1

clock = 0

WaitMs 1

PORTB = 0

PORTD = 0

Next b 'volver a repetir

Return

Postado

Opa legal !!!!

E ainda melhor é ver um código em Basic hehehhe !

O que eu fiz é muito parecido, a diferença é que eu adicionei um UDN2981 para aumentar a corrente de cada segmento na saída do microcontrolador, e limitei com um resistor para não queimar, e ficou muito claro.

Paulo

Postado

Legal...Vou ver o UDN em substituição aos transitores de chaveamento que comumente uso. Mas aqui no interior tudo é mais difícil de achar. Já foi complicado achar o ULN e a R$ 2,00 cada um.

Em paralelo em este estou montando outro projeto um pouco mais complicado de uma cortina (tela ou teia) de led que espero que tenha 16 leds em cada coluna e 32 leds em cada linha por isso vou precisar lançar mão dos uln/udn ou transitores. É, em resumo, um cubo de led em 2D onde se poderá passar letras e animações. Estou soldando os terminais de 500 leds que comprei na china (ufa).

Vou usar dois ports de um 16F877A como no exemplo. Sei lá, se der certo, no escuro, vai parecer que as letras e desnhos estão soltos no ar...É a teoria..rs

Abraços.

Technosat

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!