sábado, 10 de novembro de 2012

Review 8x8 RGB Dot Matrix

Introdução:

Um tempo atrás, eu projetei um circuito que seria poder um 8 × 8 LED RGB Matrix (192 LEDs no total) utilizando apenas 3 pinos de um Arduino e PWM. Neste post vou tentar responder a todas as perguntas que você possa construir o seu próprio.



Eu usei um display RGB de 8 × 8 ânodo comum (apenas US $ 10 no DX). A matriz tem 32 pinos: 8 anodos, catodos de 8 para vermelho, 8 para o verde e 8 para azul. E usei um Arduino UNO, na realidade você pode usar qualquer microcontrolador, mas a estrutura de timer e o PWM pode variar bastante com seu hardware.

Com um pouco de pesquisa uma coisa chamada mudança registo poderia me ajudar a ligar todos os 32 pinos usando apenas 3 pinos do Arduino. Registradores de deslocamento são baratos e fáceis de achar. Eu usei o IC 74HC595, na realidade 4 deles.



O site Arduino tem um tutorial sobre registos de deslocamento que pode ser encontrado aqui: http://www.arduino.cc/en/Tutorial/ShiftOut. Isso explica o que são, como funcionam, os pinos, bem como a forma de encadeá-los.



Por dentro do circuito:

Depois de algumas noites de teste eu sabia que poderia conduzir 8 pinos usando o 74HC595. Se eu interligasse todos eu poderia ligar todos os pinos 32.

E esse foi o desenho do circuito final:





Como Funciona:

O Arduino suporta uma interrupção que é essencialmente uma rotina que roda em segundo plano, quase como um segmento separado, a partir do seu código. Esta interrupção é o que atualiza os pinos Matrix e isso acontece muito, muito rápido. Ainda melhor é que ele libera o loop principal de seu esboço do Arduino para fazer as coisas interessantes como atualizar os dados da matriz reais.



O que é PWM:

Pulse Width Modulation ou PWM é essencialmente uma forma de simular uma saída analógica de uma fonte binária. Hein? Wha?

Se eu ligar um LED vermelho fico vermelho, se eu ligar um LED azul fico azul. Se eu transformá-los em ambos ao mesmo tempo eu fico roxo. E se eu quiser obter alguma cor no meio? com este tipo de sistema que você não pode fazer nada, mas sete cores (R, G, B, RG, RB, SP, RGB). A única maneira é ligar os LEDs parcialmente. Mas um LED só pode ser totalmente ou totalmente em off, como você pode obter um "parcial" de LED? A resposta é PWM.



O pulso varia o tempo para o qual um LED está ativo. Ainda é ou totalmente em off ou totalmente on durante esse tempo, mas se você pensar que o tempo como uma onda, a "largura" do "pulso", durante o qual o LED está ativo varia. 
Aqui está um bom visual:


Código Arduino:

Como é muito grande, baixe!


Nenhum comentário:

Postar um comentário