Uma matriz de LED são LEDs dispostos em forma de matriz e controlados de forma análoga a uma matriz.
Pode
parecer uma explicação um pouco vaga e simplista e é. O importante é
conhecer e entender o conceito de matrizes que traz algumas vantagens e
possibilidades de construir coisas interessantes.
Viajando
um pouco, já pensou como são construídos aqueles outdoors de LEDs que
funcionam como se fossem TVs gigantes (jumbo)? Então, tirando toda a
eletrônica e tecnologia na formação e recepção de imagens aquilo é uma
grande matriz de LED. Logicamente construída com LED RGB ou com três
LEDs para cada pixel.
A proposta aqui é montar uma matriz simples, usando apenas uma cor e tipo de LED. Claro, tudo controlado por um Arduino.
Você
precisará de LED, tanto quantos forem necessários para a matriz que
desejar construir. Por exemplo, para uma matriz 2x2, você terá que usar 4
LEDs, para uma matriz 3x3 serão necessários 9 LEDs, para uma 4x4 serão
16.
Mas
em contraste com a quantidade de LEDs necessários é a quantidade de
pinos necessários para exercer controle sobre eles, veja: para uma
matriz 2x2 são necessários 4 pinos (1 para cada LED), em uma matriz 3x3
são necessários 6 pinos apenas (ao todo são 9 LEDs), já para uma matriz
4x4 com 16 LEDs são necessários 8 pinos (metade!). E assim por diante. A
conclusão é que quanto maior a matriz mais vantajoso será a "economia"
de pinos do Arduino.
Você precisará de resistores de 330 ohms, um para cada linha (ou coluna) da sua matriz, por exemplo, para uma matriz 2x2, você precisará de 2 resistores, para matrizes 3x3 você precisará de 3, e assim por diante.
Você precisará de resistores de 330 ohms, um para cada linha (ou coluna) da sua matriz, por exemplo, para uma matriz 2x2, você precisará de 2 resistores, para matrizes 3x3 você precisará de 3, e assim por diante.
Fora isso ferro de solda, estanho, placa de contatos (prot-o-board) e fios para as ligações.
Vamos começar com uma matriz de 2x2, ou seja, 4 LEDs.
Primeiro identifique os terminais do LED:
O terminal mais longo é o positivo (+) e o mais curto o negativo (-). Guarde bem isso, será importante na hora da soldagem.
Para
dispor os LEDs em forma de matriz teremos que manipular os terminais do
LED e depois soldá-los, positivo com os positivos e negativo com os
negativos. Marque os terminais dos seus LEDs para não confundir.
Solde os terminais de mesma polaridade, primeiro em um par de LEDs:
Depois no outro par:
Agora una os pares através do outro terminal:
Teremos assim nossos LEDs dispostos em formato de matriz:
Agora precisamos soldar os resistores aos terminais dos LEDs, normalmente os positivos:
Verifique
todas as soldas e certifique-se de que os terminais não estão em curto,
ou seja, os terminais positivos e negativos estão encostando um no
outro.
Ligue a matriz de LED na placa de contatos (prot-o-board):
Agora
ligue os terminais negativos do LED os pinos digitais 02 e 03 do
Arduino e os terminais positivos aos pinos 04 e 05. Essa ligação que nos
dará a noção de linhas e colunas da matriz. Veja e imagem abaixo, os
pinos 02 e 03 são as colunas e os pinos 04 e 05 as linhas da minha
matriz:
Com o código abaixo teremos todos os LEDs acessos:
Note
que o conjunto dos pinos 2/4, 2/5 controlam uma coluna da matriz e o
conjunto dos pinos 3/4 e 3/5 controlam a outra coluna. Dessa forma
podemos combinar esses conjuntos e acender qualquer um dos 4 LEDs da
matriz.
O código abaixo acende um LED por vez e foi escrito para mostrar isso de forma bem simples:
Funcionando:
Seguindo o mesmo princípio fica fácil aumentar a matriz para, por exemplo, 3x3:
Ligada a placa de contatos (prot-o-board):
Conectada ao Arduino:
O código:
void setup() { pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); } void loop() { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,HIGH); delay(1000); digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); digitalWrite(7,LOW); delay(1000); digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); digitalWrite(7,LOW); delay(1000); }
Funcionando:
0 comentários:
Postar um comentário