- Escudo NeoPixel Adafruit 5X8 para Arduino
- Compreendendo o processo de comunicação entre o aplicativo Blynk e o Arduino
- Componentes necessários
- Escudo LED Adafruit RGB e Arduino - Conexão de Hardware
- Configurando o aplicativo Blynk
- Arduino Code Controlling Adafruit WS2812B RGB LED Shield
- Carregando o código para a placa Arduino
Ao longo de alguns anos, os LEDs RGB estão se tornando populares dia após dia devido à sua bela cor, brilho e efeitos de iluminação atraentes. É por isso que é utilizado em muitos locais como artigo decorativo, por exemplo, a casa ou um espaço de escritório. Além disso, podemos usar as luzes RGB na cozinha e também em um console de jogos. Eles também são ótimos em uma sala de jogos ou quartos infantis em termos de iluminação ambiente. Anteriormente, usamos os LEDs WS2812B NeoPixel e o microcontrolador ARM para construir um Music Spectrum Visualizer, então verifique se isso é interessante para você.
É por isso que neste projeto vamos usar um escudo de matriz de LED RGB baseado em Neopixel, Arduino e aplicativo Blynk para produzir muitos efeitos de animação e cores fascinantes que poderemos controlar com o aplicativo Blynk. Então vamos começar!!!
Escudo NeoPixel Adafruit 5X8 para Arduino
O NeoPixel Shield compatível com Arduino contém quarenta LEDs RGB individualmente endereçáveis, cada um com o driver WS2812b integrado, que é organizado em uma matriz 5 × 8 para formar este NeoPixel Shield. Múltiplos escudos NeoPixel também podem ser conectados para formar um escudo maior, se for necessário. Para controlar os LEDs RGB, é necessário um único pino do Arduino, portanto, neste tutorial, decidimos usar o pino 6 do Arduino para fazer isso.
Em nosso caso, os LEDs são alimentados pelo pino 5V embutido do Arduino, o que é suficiente para alimentar cerca de “um terço dos LEDs” com brilho total. Se você precisar alimentar mais LEDs, poderá cortar o traço embutido e usar uma fonte externa de 5 V para alimentar a blindagem usando o terminal externo de 5 V.
Compreendendo o processo de comunicação entre o aplicativo Blynk e o Arduino
A matriz de LEDs 8 * 5 RGB que é usada aqui tem quarenta LEDs RGB individualmente endereçáveis com base no driver WS2812B. Possui controle de cores de 24 bits e 16,8 milhões de cores por pixel. Pode ser controlado com a metodologia “One wire control”. Isso significa que podemos controlar todo o pixel LED usando um único pino de controle. Enquanto trabalhava com os LEDs, examinei a folha de dados desses LEDs, onde descobri que a faixa de tensão de operação da blindagem é de 4 V a 6 V e o consumo de corrente é 50 mA por LED a 5 V com vermelho, verde, e azul com brilho total. Ele está tendo proteção contra tensão reversa nos pinos de alimentação externos e um botão Reset no Shield para reiniciar o Arduino. Ele também tem um pino de entrada de energia externa para LEDs se uma quantidade suficiente de energia não estiver disponível através dos circuitos internos.
Conforme mostrado no diagrama esquemático acima, precisamos baixar e instalar o aplicativo Blynkem nosso smartphone onde os parâmetros como cor e brilho podem ser controlados. Depois de configurar os parâmetros, se houver alguma alteração no aplicativo, ele é para a nuvem Blynk onde nosso PC também está conectado e pronto para receber os dados atualizados. O Arduino Uno é conectado ao nosso PC via cabo USB com uma porta de comunicação aberta, com esta porta de comunicação (porta COM), os dados podem ser trocados entre a nuvem Blynk e o Arduino UNO. O PC está solicitando dados da nuvem Blynk em intervalos de tempo constantes e quando um dado atualizado é recebido, ele o transfere para o Arduino e toma decisões definidas pelo usuário, como controlar o brilho e as cores do led RGB. O escudo do LED RGB é colocado no LED do Arduino e conectado por meio de um único pino de dados para comunicação; por padrão, ele é conectado por meio do pino D6 do Arduino.Os dados seriais enviados do Arduino UNO são enviados para o Neopixel shied que é então refletido na matriz de LED.
Componentes necessários
- Arduino UNO
- 8 * 5 RGB LED Matrix escudo
- Cabo USB A / B para Arduino UNO
- Laptop / PC
Escudo LED Adafruit RGB e Arduino - Conexão de Hardware
Os LEDs Neopixel WS2812B têm três pinos, um é para dados e outro dois é usado para alimentação, mas este escudo Arduino específico torna a conexão de hardware muito simples, tudo o que temos que fazer é colocar a matriz de LED Neopixel no topo do Arduino UNO. Em nosso caso, o LED é alimentado pelo trilho padrão Arduino 5V. Depois de colocar o escudo de neopixel, a configuração fica assim:
Configurando o aplicativo Blynk
Blynk é um aplicativo que pode ser executado em dispositivos Android e IOS para controlar qualquer dispositivo IoT e Appliances usando nossos smartphones. Em primeiro lugar, uma interface gráfica de usuário (GUI) precisa ser criada para controlar a matriz RGB LED. O aplicativo enviará todos os parâmetros selecionados da GUI para a nuvem Blynk. Na seção do receptor, temos o Arduino conectado ao PC por meio de um cabo de comunicação serial. Portanto, o PC solicita dados da nuvem Blynk e esses dados são enviados ao Arduino para o processamento necessário. Portanto, vamos começar com a configuração do aplicativo Blynk.
Antes da configuração, baixe o aplicativo Blynk na Google Play Store (os usuários do IOS podem baixar na App Store). Após a instalação, cadastre-se usando seu id de e-mail e senha.
Criando um novo projeto:
Após a instalação com sucesso, abra o aplicativo, e lá teremos uma tela com a opção “ Novo Projeto ”. Clique nele e aparecerá uma nova tela, onde precisamos definir os parâmetros como nome do projeto, placa e tipo de conexão. Em nosso projeto, selecione o dispositivo como “ Arduino UNO ” e o tipo de conexão como “ USB ” e clique em “ Criar”.
Após a criação bem-sucedida do Projeto, obteremos um Authenticate ID em nosso correio registrado. Salve a ID de autenticação para referência futura.
Criação da interface gráfica do usuário (GUI):
Abra o projeto em Blynk, clique no sinal “+” onde obteremos os widgets que podemos usar em nosso projeto. Em nosso caso, precisamos de um seletor de cores RGB listado como “zeRGBa”, conforme mostrado abaixo.
Configurando os Widgets:
Após arrastar os widgets para o nosso projeto, agora temos que definir seus parâmetros que são usados para enviar os valores RGB das cores para o Arduino UNO.
Clique em ZeRGBa, então teremos uma tela chamada Configuração ZeRGBa. Em seguida, defina a opção Output para “ Merge ” e defina o pino para “V2”, que é mostrado na imagem abaixo.
Arduino Code Controlling Adafruit WS2812B RGB LED Shield
Após a conclusão da conexão de hardware, o código precisa ser carregado para o Arduino. A explicação passo a passo do código é mostrada abaixo.
Primeiro, inclua todas as bibliotecas necessárias. Abra o IDE Arduino, vá até a aba Sketch e clique na opção Incluir Biblioteca-> Gerenciar Bibliotecas . Em seguida, procure Blynk na caixa de pesquisa e baixe e instale o pacote Blynk para Arduino UNO.
Aqui, a biblioteca “ Adafruit_NeoPixel.h ” é usada para controlar a matriz LED RGB. Para incluí-lo, você pode baixar a biblioteca Adafruit_NeoPixel do link fornecido. Depois de conseguir isso, você pode incluí-lo com a opção Incluir biblioteca ZIP.
#define BLYNK_PRINT DebugSerial #include #include
Em seguida, definimos o número de LEDs, que é necessário para nossa matriz de LED, também definimos o número do pino que é usado para controlar os parâmetros de LED.
#define PIN 6 #define NUM_PIXELS 40
Então, precisamos colocar nosso ID de autenticação intermitente em um array de autenticação , que salvamos anteriormente.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Aqui, os pinos seriais do software são usados como console de depuração. Portanto, os pinos do Arduino são definidos como serial de depuração abaixo.
#incluir
Dentro da configuração, a comunicação serial é inicializada usando a função Serial.begin , blynk é conectado usando Blynk.begin e usando pixels.begin (), a matriz de LED é inicializada.
void setup () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (Série, aut.); }
Dentro do loop () , usamos Blynk.run () , que verifica os comandos de entrada da GUI do blynk e executa as operações de acordo.
loop vazio () { Blynk.run (); }
Na fase final, os parâmetros que foram enviados do aplicativo Blynk precisam ser recebidos e processados. Neste caso, os parâmetros foram atribuídos a um pino virtual “V2” conforme discutido anteriormente na seção de configuração. A função BLYNK_WRITE é uma função embutida que é chamada sempre que o estado / valor do pino virtual associado muda. podemos executar código dentro dessa função como qualquer outra função do Arduino.
Aqui a função BLYNK_WRITE é escrita para verificar os dados de entrada no pino virtual V2. Conforme mostrado na seção Configuração de piscar, os dados de pixel de cor foram mesclados e atribuídos ao pino V2. Portanto, também temos que desfazer a mesclagem novamente após a decodificação. Porque para controlar a matriz de pixel LED, precisamos de todos os dados de pixel de 3 cores individuais, como vermelho, verde e azul. Conforme mostrado no código abaixo, três índices da matriz foram lidos como param.asInt () para obter o valor da cor vermelha. Da mesma forma, todos os outros dois valores foram recebidos e armazenados em 3 variáveis individuais. Em seguida, esses valores são atribuídos à matriz de Pixel usando a função pixels.setPixelColor conforme mostrado no código abaixo.
Aqui, a função pixels.setBrightness () é usada para controlar o brilho e a função pixels.show () é usada para exibir a cor definida na Matriz.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); para (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Carregando o código para a placa Arduino
Primeiro, precisamos selecionar a PORTA do Arduino dentro do IDE do Arduino, então precisamos fazer o upload do código para o Arduino UNO. Após um upload bem-sucedido, anote o número da porta que será usado para nossa configuração de comunicação serial.
Depois disso, encontre a pasta de script da biblioteca Blynk em seu PC. Ele é instalado quando você instala a biblioteca, a minha estava em, “C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts”
Na pasta de script, deve haver um arquivo chamado “blynk-ser.bat” que é um arquivo em lote usado para comunicação serial que precisamos editar com o bloco de notas. Abra o arquivo com o bloco de notas e altere o número da porta para o número da porta do Arduino que você anotou na última etapa.
Após a edição, salve o arquivo e execute o arquivo em lote clicando duas vezes nele. Então, você deve estar vendo uma janela como a mostrada abaixo:
Nota: Se você não conseguir ver a janela mostrada acima e for solicitada a reconexão, pode ser devido a um erro na conexão do PC com o escudo do Arduino. Nesse caso, verifique a conexão do Arduino com o PC. Depois disso, verifique se o número da porta COM está sendo mostrado no IDE do Arduino ou não. Se estiver mostrando a porta COM válida, ele está pronto para prosseguir. Você deve executar o arquivo em lote novamente.
Demonstração Final:
Agora é hora de testar o circuito e sua funcionalidade. Abra o aplicativo Blynk, abra a GUI e clique no botão Play. Depois disso, você pode selecionar qualquer uma das cores desejadas para ser refletida no LED Matrix. Conforme mostrado abaixo, no meu caso eu selecionei a cor Vermelho e Azul, ela está sendo exibida na Matriz.
Da mesma forma, você também pode tentar fazer diferentes animações usando essas matrizes de LED, personalizando um pouco a codificação.