Fork me on GitHub

08/03/13

Arduino: Matriz de LEDs

Arduino: Matriz de LEDs



Um projeto simples, mas pode tornar-se complicado.

A conexão com a Matriz pode ser direta nas portas digitais ou usando o chip MAX 7219/7221, que já até existe uma biblioteca para a IDE do Arduino.

Eu utilizei uma matriz de LEDs 5x7. Como você vai ver nos exemplos em uma matriz de 5x7 existem pinos duplicados e a sequência dos pinos é muito chata de entender. Na parte inferior da esquerda para a direita estão os pinos 1 a 7 e na parte superior da direita para a esquerda estão os pinos 8 a 14.

Em cada pino de cada linha, observe que liguei um resistor, pode ser de 200 Ohms.

Note que existe duas ligações diferentes. No primeiro liga-se o positivo nas linhas e o terra nas colunas. No segundo é invertido, liga-se o positivo nas colunas e o terra nas linhas.

Criei uma biblioteca especialmente para utilizar essa matriz 5x7.

Funções da biblioteca:
LEDMatrix matrix(type); - cria o objeto matriz. type corresponde ao tipo de ligação: L - positivo nas linhas ou C - positivo nas colunas.

matrix.begin(pin13, pin3, pin11, pin10, pin6, pin2, pin7, pin1, pin5, pin8, pin14, pin9) - pinos da matriz corresponde ao pino no arduino;

matrix.setDot(coluna, linha, onOff) - acende/apaga um led. 

matrix.printChar(caracter, duração, inverter, deslocamento) - escreve um caracter. Você pode definir o tempo de exibição, inverter o estado dos LEDs, e também deslocar no máximo 5 colunas para a direita.

matrix.printCustomChar(Array, duração, inverter, deslocamento) - escreve um caracter qualquer definido pelo usuário criando um array de 7 elementos.

Exemplo 01: Acender um led na matriz na posição coluna 1(da esquerda pra direita) e linha 4(de baixo pra cima)







Exemplo 02: Escrever o caracter 'A'







Exemplo 03: Desenhar um coração






E isso aí pessoal! Vou deixar para download a biblioteca, fique a vontade para editá-la.

17 comentários:

  1. Gostaria de ver um projeto de uma matriz de leds com pic e codigo comentado no mikroC pro. Estou a muitos dias tentando fazer um texto rolante e não consigo. O blog ta cheio de coisas interessantes, estarei acompanhando com certeza. Parabéns pelos posts, espero ver a matriz de leds com pic...

    ResponderExcluir
    Respostas
    1. Obrigado!!!
      Boa! Concerteza eu faço esse projeto e posto aqui no blog!!

      Excluir
  2. Ola Tiago, compartilho da mesma dificuldade do nosso amigo anonimo...os posts que você colocou me esclareceram varias duvidas, parabéns pela iniciativa.
    Vou acompanhar e aguardar com muita espectativa o post da matriz de leds.

    ResponderExcluir
  3. Amigo, estou precisando fazer a leitura de 3 frequências simultaneamente, como eu poderia fazer isso?
    Por exemplo monitorar as 3 fases da rede elétrica...

    Eu tentei, mas no momento que adiciono mais uma porta ao seu programa, começa a dar erro na leitura de ambas, me parece ser algum problema na matemática.

    ResponderExcluir
  4. cara.. tem como disponibilizar essa lib LEDMatriz?

    ResponderExcluir
  5. Ola Tiago, sou novo neste mundo do arduino e conheci através de uma colega na faculdade. Estou pensando em realizar um projeto de criar um com 6 display de 8x8 ficando em 8x48, ai entra minha duvida ! Uma placa arduino Mega é suficiente para para gerenciar esta matriz de led como um letreiro ? Desde já agradeço por sua atenção. Obrigado por dividir seus conhecimentos com os novatos. um forte abraço.

    ResponderExcluir
  6. Amigo, sou bem iniciante, portanto, não consegui entender, por ex: no Exemplo 01, para acender um led na matriz vc escreveu "mymatriz.setDot (1, 4, true);" e no Exemplo 02, para escrever o caractere 'A' vc escreveu "mymatriz.printChar ('A', 10, false, 0);" e ainda no Exemplo 03, para desenhar um Coração vc escreveu "mymatriz.printCustomChar(Coracao, 10, false, 0);", vc poderia me explicar? meu email: meuviolino@hotmail.com Obrigado

    ResponderExcluir
  7. Ola omigo meu nome e roberto, tambem sou niciante tentei conpilar esse programa do primeiro exemplo mas não estou conseguindo, ja tentei conpilar varios progamas parecido mas não consigo fazer funcionar.
    Eu sinplismente copiei e colei não mudei nada.
    Aparece um erro (´LEDMatrix`does not name a type).
    Acabei de comprar um arduino uno mais não consigo conpilar progamas, sempre aprarece um erro nessa parte.
    Se aguem poder me ajudar ficaria muito grato, pos ja estou ficando chatiado por não conseguir.
    Obrigado.

    ResponderExcluir
  8. obba estou gostando muito do teu blloooggg. se der, posta um vídeo do funcionamento do led matrix. letras a andar, relógio, calendário etc.

    ResponderExcluir
  9. Boa noite amigo, obrigado pelo post!
    Teria como vc comentar esses códigos, por ex: "mymatriz.begin(7,6,5,4,3,8,9,10,11,12,13,2);"
    e esse: "mymatriz.printCustomChar(Coracao, 10, false, 0);"
    Para um iniciante como eu, não é tão simples!
    Obrigado

    ResponderExcluir
  10. boa tarde,

    nao encontrei o link para baixar a biblioteca ledmatriz. alguem pode disponibilizar?
    obrigado

    ResponderExcluir
  11. Boa tarde Tiago! Sou novato no ARDUINO e experiente no PIC programação ASSEMBLY, porém qual programa você utilizou para gravar no ARDUINO? favor entre em contato comigo. brenocastaldeli2@hotmail.com ou brenocastaldeli@hotmail.com

    atenciosamente,
    Breno Castaldeli
    Comandos e Controles na empresa ISACTEEP.

    ResponderExcluir
  12. E a lista para eu comprar os componentes e a propria matriz de LED? favor me encaminhar.

    ResponderExcluir
  13. Olá Tiago, estou tendo problemas com a biblioteca, pois sempre que tento acionar um led, a matriz acende dois de uma vez sendo que o segundo e de uma coluna que ja tem outro led aceso

    ResponderExcluir
  14. Boa tarde,

    estou utilizando uma matriz de led que eu mesmo soldei em vez de comprar pronta, o tamanho é o mesmo da usada no site entretanto a oscilaçao dos leds fica muito aparente. Onde posso modificar pra alterar isso??

    ResponderExcluir

Postagens Relacionadas!!