Disco de LEDs

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar

Este projeto visa fixar vários LEDs RGBs em uma caixa transparente de chocolate ("disco voador") e montar um circuito para controlá-los com um Arduino. O objeto resultante servirá tanto para exercitar programação com o Arduino como para decoração da sede do Garoa.

Vídeos com o software de teste: [1] e [2]

Responsáveis em ordem alfabética

Circuito

O circuito é simplificado pelo uso do CI MAX7219, que é um driver para LEDs. Basicamente ele possui internamente uma memória para guardar o estado de até 64 LEDs (organizados como 8 dígitos, cada um com 8 segmentos), realizando automaticamente a varredura. A corrente máxima em cada LED é limitada por um único resistor.

Os LEDs RGB utilizados são do tipo catodo comum.

  • Os catodos dos oito LEDs são ligados aos pinos DIG do MAX7219.
  • Os terminais R são interligados entre si e ao pino SEG G do MAX7219
  • Os terminais G são interligados entre si e ao pino SEG F do MAX7219
  • Os terminais B são interligados entre si e ao pino SEG E do MAX7219

O resitor de limitação de corrento do MAX7219 é de 82K. Dois capacitores, um eletrolítico de 10uF e um cerâmico de 100nF estão ligados na alimentação para filtrar o ruído gerado no chaveamento dos LEDs.

Foi utilizado um Arduino Pro Mini. Na operação normal ele é alimentado por três pilhas pequenas (AA). Para programá-lo com a IDE do Arduino é necessário usar um conversor serial TTL USB.

A ligação do Arduino ao MAX7219 utiliza três pinos:

  • Saída digital 2 do Arduino é conectada ao sinal CLK do MAX7219
  • Saída digital 3 do Arduino é conectada ao sinal LOAD do MAX7219
  • Saída digital 4 do Arduino é conectada ao sinal DIN do MAX7219

Programação

O programa de teste e exemplo está em ??? (link pendente)

Este programa contém o código para iniciar o MAX7219 e a rotina write7219 para escrever em um registrador. Cada LED é controlado por um registrador DIGx, o bit 0 corresponde a R (vermelho), o bit 1 a G (verde) e o bit 2 a B (azul). Por exemplo, write7219 (MAX7219_DIG0, 1) acende o primeiro LED na cor vermelha.