Digite a matriz, matriz LED que é! Criar o seu próprio light Up display LED com Arduino

um único LED pode ser útil no teste de Projetos Arduino. Mas quando você adiciona uma matriz de LED, você pode ser realmente criativo, soletrando letras, números e símbolos. Também é uma maneira útil de aprender como exibições mais complexas – como a que você está lendo no trabalho. Neste guia, mostraremos como configurar uma matriz básica de LED 8×8.

como as matrizes de LED funcionam

uma matriz de LED básica como a que usaremos apresenta uma grade de LEDs 8×8 que pode ser usada para desenhar caracteres, imagens básicas e muito mais. Nos guias anteriores, mostramos como o Arduino pode controlar um único LED. Este componente estende esse conceito em uma matriz de 64 LEDs que podem ser controlados com um único Arduino.

minúsculo Display LED de matriz de pontos por HP

matriz de LED

em uma matriz de LED, uma corrente é executada através de linhas de LEDs. Para completar o circuito e ativar uma luz individual, uma coluna é conectada ao aterramento. Onde as linhas de energia e terra se cruzam, os LEDs são ativados. Você pode pensar um pouco como o jogo de tabuleiro Battleship. Por exemplo, se a energia for executada para as linhas A, B E C, mas apenas a coluna 1 estiver conectada ao solo, As luzes em A1, B1 e C1 acenderão. O resto vai ficar escuro.

esta é uma maneira útil de ligar vários LEDs de uma só vez, mas cria um problema se você deseja que apenas certos LEDs em uma coluna sejam ligados. Digamos que, em vez disso, você queria que as luzes A1, B2 E C3 acendessem criando uma linha diagonal. Ativar todas as três linhas e Colunas ativaria toda a grade, o que não é o que queremos.

para resolver este problema, um Arduino pode executar através de um loop, ativando apenas uma única linha de LEDs de cada vez. Dessa forma, você pode ativar quantas colunas quiser sem afetar a próxima linha. Sem uma longa função delay (), as linhas serão ativadas em uma sucessão tão rápida que o olho humano não será capaz de dizer. Mas mostraremos como adicionar um atraso para que você possa ver como ele funciona de qualquer maneira.

o que você precisará

estamos usando um método mais complicado para controlar a matriz de LED para fins educacionais – outros componentes podem reduzir o número de pinos necessários – e, portanto, isso levará mais alguns pinos e fios do que a maioria de nossos outros guias. Por esse motivo, usaremos um Arduino Mega 2560, em vez do Arduino Uno usual, para controlar essa matriz. Você também precisará do seguinte:

Arduino Mega 2560 Arduino Mega 2560
8×8 LED Matrix 8x8 LED Matriz
8 x 220ohm resistor

a Maioria dos LEDs vai queimar se você conectá-las diretamente para a saída 5V do Arduino. Coloque um resistor do seu kit entre o pino de saída e o LED.

8 x 220ohm resistor
Um par de breadboards Um par de breadboards
Arduino IDE Arduino IDE

Você também vai precisar de um cabo USB, e muito poucos fios – pelo menos 32!

existem várias maneiras de organizar a fiação para este projeto, mas como ele pode ficar complexo, recomendamos o uso de um par de placas de ensaio travadas, uma para lidar com a matriz de LED e outra para fiação nos resistores. É possível realizar a mesma coisa usando fios com extremidades femininas correndo para a matriz de LED, embora ele esteja sentado para o lado em vez de estacionário, o que pode ser um pouco mais complicado.

o código

o código para este projeto fará uso de loops e matrizes para escrever cada LED individualmente. O resultado será uma matriz na parte superior do script que você pode modificar facilmente para alterar a imagem exibida pela matriz de LED. Primeiro, Cole o código completo no Arduino IDE e faça o upload para o seu Arduino Mega.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

int toDisplay = {
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,1,0},
{1,0,0,0,0,0,0,0},
{1,1,1,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0}
};
void setup() {
for (int i=2; i<=9; i++) {
pinMode(eu, SAÍDA);
pinMode(i+44, OUTPUT);
digitalWrite(i, LOW);
digitalWrite(i+44, de ALTA);
}
pinMode(A0, ENTRADA);
}
void loop() {
for (int i=0; i<8; i++) {
se (i==0) {
digitalWrite(9, BAIXO);
}
else {
digitalWrite(i+1, BAIXO);
}
for (int j=0; j<8; j++) {
se (toDisplay == 1) {
digitalWrite(j+46, BAIXO);
}
else {
digitalWrite(j+46, de ALTA);
}
}
digitalWrite(i+2, HIGH);
atraso(1);
}
}

de seguida, vejamos como cada uma dessas seções de trabalho.

1
2
3
4
5
6
7
8
9
10

int toDisplay = {
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,1,0},
{1,0,0,0,0,0,0,0},
{1,1,1,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0}
};

Antes de qualquer um dos loops principais no esboço, essa matriz multidimensional definirá quais LEDs devem ser iluminados e quais devem permanecer escuros. Existem oito linhas de oito valores cada, que correspondem às oito linhas de LEDs na matriz. Ao colocá-los em uma grade no esboço, torna mais fácil visualizar a forma que os LEDs irão compor.

1
2
3
4
5
6
7
8
9

void setup() {
for (int i=2; i<=9; i++) {
pinMode(i, OUTPUT);
pinMode(i+44, OUTPUT);
digitalWrite(i, LOW);
digitalWrite(i+44, de ALTA);
}
pinMode(A0, ENTRADA);
}

na seção setup (), inicializaremos os pinos de que precisamos para a matriz. Como existem dezesseis pinos diferentes, podemos fazer isso com mais eficiência do que um de cada vez. Os pinos que correm à terra serão obstruídos nos pinos 2 a 9. Os pinos que enviam energia para a matriz serão executados nos pinos 46 a 53. Esta seção usará um loop para inicializar os dois conjuntos de pinos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

void loop() {
for (int i=0; i<8; i++) {
se (i==0) {
digitalWrite(9, BAIXO);
}
else {
digitalWrite(i+1, BAIXO);
}
for (int j=0; j<8; j++) {
se (toDisplay == 1) {
digitalWrite(j+46, BAIXO);
}
else {
digitalWrite(j+46, de ALTA);
}
}
digitalWrite(i+2, HIGH);
atraso(1);
}
}

No loop principal() secção de desenho, há uma multi-passo do loop. A primeira instrução if redefinirá a última linha usada para baixa, o que impedirá que a energia flua para ela.

o próximo loop aninhado para verificará os dados na matriz. Se uma célula estiver listada como 1, ela definirá o fio terra para essa coluna para baixo, permitindo que a corrente flua para fora. Caso contrário, ele definirá o pino para alto, o que impedirá que um circuito seja concluído ao longo dessa coluna. Ele fará isso para todas as oito células em uma determinada linha.

finalmente, a última instrução digitalWrite() ativará toda a linha. Qualquer coluna definida como baixa acenderá. O resto vai ficar escuro. Quando o esboço loops novamente, ele começará imediatamente desligando essa linha.

o último comando é uma instrução delay() que define o atraso entre cada linha. Está definido como 1 milissegundo em nosso exemplo porque quando a instrução não está lá, os LEDs ficam um pouco escuros demais. No entanto, você pode aumentar o atraso para ver o que o esboço está fazendo mais lentamente. Você deve ver cada linha acender uma de cada vez, antes de desligar quando a próxima linha ligar.

a fiação

para este projeto, a fiação é relativamente simples, há apenas muito disso. Como existem muitos pinos, descreveremos o que você deseja fazer para cada circuito completo, em vez de listar cada fio individual como costumamos fazer.

os pinos 2 a 9 devem ser os pinos de alimentação e os pinos 46 a 53 devem ser os pinos de aterramento. Passe um fio do pino de alimentação para a matriz de LED (verifique mais detalhes sobre quais pinos abaixo – isso é importante), da matriz de LED para um resistor de 220 ohm e, em seguida, execute um fio de volta para um pino no Arduino. O pino 2 deve eventualmente levar ao pino 46, o pino 3 deve levar ao pino 47 e assim por diante.

a principal complicação aqui é com a própria matriz de LED. Contraintuitivamente, os pinos de cada lado da matriz não estão em uma ordem coerente. Por exemplo, queremos que o pino 2 Ligue o que chamaremos de linha A. No entanto, o pino para isso é o quarto pino da esquerda na parte superior da matriz de LED. A outra extremidade deste circuito – que deve levar à coluna 1-é o primeiro pino à direita na parte inferior da matriz.

como esse pedido é bastante complicado, explicaremos quais pinos na matriz cada pino Arduino deve ser conectado diretamente.

ao longo do topo da matriz (o lado com o número impresso nele) existem oito pinos. Da esquerda para a direita, estes devem ser ligados os seguintes pinos do Arduino:

  • Pino 7
  • Pino 4
  • Pin 49
  • Pin 2
  • Pin 51
  • Pin 52
  • Pin 3
  • Pin 5

Seguinte, a linha inferior de oito pinos da matriz (o lado sem números) devem ser conectados aos pinos seguintes (da esquerda para a direita, com os números ainda voltada para cima):

  • Pin 9
  • Pin 50
  • Pin 48
  • Pino 6
  • Pin 53
  • Pino 8
  • Pin 47
  • Pin 46

uma Vez que todos os fios estão conectados, você pode ativar o seu projeto e você verá a sua matriz de LED de luz. Tente alterar o arranjo de 1s na matriz inicial e reenviar o script para criar formas diferentes. Você também pode ajustar o comprimento do comando delay () para ver cada linha acender uma de cada vez.

Deixe uma resposta

O seu endereço de email não será publicado.