- A matriz de exibição de LED P10
- Componentes necessários para o placar do Arduino
- Diagrama de Circuito para Arduino Scoreboard
- Explicação do código do placar do Arduino
Um placar eletrônico é um dos dispositivos mais importantes que qualquer pessoa pode ter durante qualquer torneio esportivo. O placar manual antigo usando métodos convencionais consome muito tempo e está sujeito a erros, portanto, um placar computadorizado se torna necessário quando a unidade de exibição precisa ser trocada em tempo real. É por isso que, neste projeto, estaremos construindo um painel de avaliação sem fio controlado por Bluetooth no qual podemos alterar a pontuação no quadro apenas usando um aplicativo Android. O cérebro desse projeto é um Arduino Nano e, para a parte do display, usaremos uma matriz de LED P10 para mostrar a pontuação remotamente em tempo real.
A matriz de exibição de LED P10
Um Display de matriz LED P10 é a melhor forma disponível de fazer uma placa de LED para uso interno ou externo. Este painel possui um total de 512 LEDs de alto brilho montados em uma caixa de plástico projetada para melhores resultados de exibição. Ele também vem com uma classificação IP65 para impermeabilização, tornando-o perfeito para uso ao ar livre. Com isso, você pode fazer uma grande tabuleta de LED combinando qualquer número de tais painéis em qualquer estrutura de linha e coluna.
Nosso módulo tem um tamanho de 32 * 16, o que significa que existem 32 LEDs em cada linha e 16 LEDs em cada coluna. Portanto, há um total de 512 LEDs presentes em cada letreiro luminoso. Além disso, possui classificação IP65 para impermeabilização, pode ser alimentado por uma única fonte de alimentação de 5V, possui um ângulo de visão muito amplo e o brilho pode ir até 4500 nits. Então, você será capaz de ver claramente à luz do dia. Anteriormente, também usamos este monitor P10 com Arduino para construir uma placa de LED simples.
Descrição do pino da matriz de LED P10 :
Esta placa de exibição de LED usa um cabeçalho de correio de 10 pinos para conexão de entrada e saída, nesta seção, descrevemos todos os pinos necessários deste módulo. Além disso, você pode ver que há um conector externo de 5 V no meio do módulo que é usado para conectar a alimentação externa à placa.
- Habilitar: Este pino é usado para controlar o brilho do painel de LED, dando um pulso PWM a ele.
- A, B: são chamados de pinos de seleção multiplex. Eles usam entrada digital para selecionar quaisquer linhas multiplex.
- Shift clock (CLK), Store clock (SCLK) e Data: Estes são os pinos de controle de registro de deslocamento normais. Aqui, um registrador de deslocamento 74HC595 é usado.
Interface do Módulo de Display de LED P10 com o Arduino:
Conectar o módulo de display de matriz P10 ao Arduino é um processo muito simples, em nosso circuito, configuramos o pino 9 do Arduino como pino de ativação, pino 6 como pino A, pino 7 como pino B, pino 13 é o CLK, pino 8 é o SCLK, o pino 11 é o DATA e, finalmente, o pino GND é o pino GND do módulo e do Arduino, uma tabela completa abaixo explica a configuração do pino claramente.
Módulo P10 LED |
Arduino UNO |
HABILITAR |
9 |
UMA |
6 |
B |
7 |
CLK |
13 |
SCLK |
8 |
DADOS |
11 |
GND |
GND |
Nota: Conecte o terminal de alimentação do módulo P10 a uma fonte de alimentação externa de 5 V, porque 512 LEDs consomem muita energia. Recomenda-se conectar uma fonte de alimentação de 5 V, 3 Amp DC a uma única unidade do módulo de LED P10. Se você está planejando conectar mais módulos de números, aumente sua capacidade SMPS de acordo.
Componentes necessários para o placar do Arduino
Como este é um projeto muito simples, os requisitos dos componentes são muito genéricos, uma lista de componentes necessários é mostrada abaixo, você deve ser capaz de encontrar todo o material listado em sua loja local de hobbies.
- Arduino Nano
- Display de matriz LED P10
- Tábua de pão
- 5 V, 3 AMP SMPS
- Módulo Bluetooth HC-05
- Fios de conexão
Diagrama de Circuito para Arduino Scoreboard
O esquemático para o Arduino LED Scoreboard é mostrado abaixo, pois este projeto é muito simples, usei o popular software fritzing para desenvolver o esquemático.
O funcionamento do circuito é muito simples, temos um aplicativo Android e um módulo Bluetooth, para se comunicar com sucesso com o módulo Bluetooth, é necessário emparelhar o módulo HC-05 com o aplicativo android. Assim que estivermos conectados, podemos enviar a string que queremos exibir, uma vez que a string for enviada, o Arduino irá processar a string e convertê-la em um sinal que o resistor de deslocamento 74HC595 interno possa entender, após os dados serem enviados para o deslocamento resistor, está pronto para ser exibido.
Explicação do código do placar do Arduino
Após a conclusão bem-sucedida da configuração do hardware, agora é a hora de programar o Arduino Nano. A descrição passo a passo do código é fornecida abaixo. Além disso, você pode obter o código completo do Arduino Scoreboard na parte inferior deste Tutorial.
Em primeiro lugar, precisamos incluir todas as bibliotecas. Usamos a biblioteca DMD.h para controlar o display de led P10. Você pode fazer o download e incluí-lo no link do GitHub fornecido. Depois disso, você precisa incluir a Biblioteca TimerOne.h, que será usada para interromper a programação em nosso código.
Existem muitas frentes disponíveis nesta biblioteca, usamos “ Arial_black_16 ” para este projeto.
#incluir
Na próxima etapa, o número de linhas e colunas é definido para nossa placa de matriz de LED. Usamos apenas um módulo neste projeto, portanto, os valores ROW e COLUMN podem ser definidos como 1.
#define ROW 1 #define COLUNA 1 #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
Depois disso, todas as variáveis utilizadas no código são definidas. Uma variável de caractere é usada para receber dados seriais do aplicativo Android, dois valores inteiros são usados para armazenar pontuações e uma matriz é definida que armazena os dados finais a serem exibidos na Matriz.
entrada char; int a = 0, b = 0; sinalizador int = 0; char cstr1;
Uma função scan_module () é definida, que verifica continuamente por quaisquer dados de entrada do Arduino Nano por meio do SPI. Se sim, ele irá disparar uma interrupção para fazer certos eventos, conforme definido pelo usuário no programa.
void scan_module () { led_module.scanDisplayBySPI (); }
Dentro de setup (), o cronômetro é inicializado e a interrupção é anexada à função scan_module, que foi discutida anteriormente. Inicialmente, a tela foi limpa usando a função limpar tela (verdadeiro), o que significa que todos os pixels estão definidos como OFF.
Na configuração, a comunicação serial também foi habilitada usando a função Serial.begin (9600), onde 9600 é a taxa de transmissão para comunicação Bluetooth.
void setup () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (true); }
Aqui, a disponibilidade dos dados seriais é verificada, se há dados válidos vindos do Arduino ou não. Os dados recebidos do App são armazenados em uma variável.
if (Serial.available ()> 0) { flag = 0; input = Serial.read ();
Em seguida, o valor recebido foi comparado com a variável predefinida. Aqui, no aplicativo Android, dois botões são usados para selecionar as pontuações de ambas as equipes. Quando o botão 1 é pressionado, o caractere 'a' é transmitido para o Arduino e quando o botão 2 é pressionado, o caractere 'b' é transmitido para o Arduino. Portanto, nesta seção, esses dados são correspondidos e, se houver correspondência, os respectivos valores de pontuação são incrementados conforme mostrado no código.
if (input == 'a' && flag == 0) { flag = 1; a ++; } else if (input == 'b' && flag == 0) { flag = 1; b ++; } mais;
Em seguida, os dados recebidos são convertidos em um Array de caracteres, pois a função de matriz P10 só é capaz de exibir o tipo de dados de caracteres. É por isso que todas as variáveis são convertidas e concatenadas em uma matriz de caracteres.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). ToCharArray (cstr1, 50);
Em seguida, para exibir informações no módulo, a fonte é selecionada usando a função selection (). Em seguida, a função drawMarquee () é usada para exibir as informações desejadas na placa P10.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
Finalmente, como precisamos de uma exibição de mensagem de rolagem, escrevi um código para mudar toda a nossa mensagem da direita para a esquerda usando um determinado período.
início longo = milis (); tempo longo = início; boolean flag = false; while (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); temporização = milis (); } }
Isso marca o fim do nosso processo de codificação. E agora está pronto para upload.
Placar controlado por smartphone - teste
Depois de fazer o upload do código para o Arduino, é hora de testar o projeto. Antes disso, o aplicativo android precisa ser instalado em nosso smartphone. Você pode baixar o aplicativo P10 Score Board no link fornecido. Depois de instalado, abra o aplicativo e a tela inicial deve ser semelhante à imagem abaixo.
Clique no botão SCAN para adicionar o módulo Bluetooth com o aplicativo. Isso mostrará a lista de dispositivos Bluetooth emparelhados do telefone. Se você não emparelhou o módulo HC-05 Bluetooth antes, emparelhe o módulo usando a configuração de Bluetooth do seu telefone e execute esta etapa. A tela ficará assim:
Em seguida, na lista, clique em “HC-05”, pois este é o nome do nosso módulo Bluetooth usado aqui. Após clicar nele, aparecerá conectado na tela. Então podemos prosseguir com o placar.
Clique em qualquer botão entre “Casa” e “Ausente” conforme mostrado no aplicativo. Se o botão Home for selecionado, a pontuação da Home será incrementada no display P10. Da mesma forma, se o botão Ausente for selecionado, a pontuação Ausente será incrementada. A imagem abaixo mostra a aparência da tela final.
Espero que tenham gostado do projeto e aprendido algo novo, se você tiver alguma outra dúvida em relação ao projeto, fique à vontade para comentar abaixo ou pode fazer sua pergunta em nosso fórum.