Imprimir
Categoria: Arduino
Acessos: 302

Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

 

 

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.

 

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:

 

{code}

void setup() {

  pinMode(2,OUTPUT);

  pinMode(3,OUTPUT);

  pinMode(4,OUTPUT);

  pinMode(5,OUTPUT);

}

 

void loop() {

  digitalWrite(2,LOW);

  digitalWrite(3,LOW);

  digitalWrite(4,HIGH);

  digitalWrite(5,HIGH);

}

{/code}

 

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:

 

{code}

void setup() {

  pinMode(2,OUTPUT);

  pinMode(3,OUTPUT);

  pinMode(4,OUTPUT);

  pinMode(5,OUTPUT);

}

 

void loop() {

  digitalWrite(2,HIGH);

  digitalWrite(3,LOW);

  digitalWrite(4,HIGH);

  digitalWrite(5,LOW);

  delay(1000);

  digitalWrite(2,LOW);

  digitalWrite(3,HIGH);

  digitalWrite(4,HIGH);

  digitalWrite(5,LOW);

  delay(1000);

  digitalWrite(2,LOW);

  digitalWrite(3,HIGH);

  digitalWrite(4,LOW);

  digitalWrite(5,HIGH);

  delay(1000);

  digitalWrite(2,HIGH);

  digitalWrite(3,LOW);

  digitalWrite(4,LOW);

  digitalWrite(5,HIGH);

  delay(1000);

}

{/code}

 

Funcionando:

 

{youtube}zMq0awbSulQ{/youtube}

 

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:

 

{code}

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);

}

{/code}

 

Funcionando:

 

 

{youtube}iBj5CucO-8s{/youtube}