Índice:

Sequenciador de LED RGB programável (usando Arduino e Adafruit Trellis): 7 etapas (com imagens)
Sequenciador de LED RGB programável (usando Arduino e Adafruit Trellis): 7 etapas (com imagens)

Vídeo: Sequenciador de LED RGB programável (usando Arduino e Adafruit Trellis): 7 etapas (com imagens)

Vídeo: Sequenciador de LED RGB programável (usando Arduino e Adafruit Trellis): 7 etapas (com imagens)
Vídeo: Секвенсор светодиодных лент RGB с использованием Arduino и Adafruit Trellis 2024, Julho
Anonim
Image
Image
Ligue a placa do driver
Ligue a placa do driver

Meus filhos queriam faixas de LED coloridas para iluminar suas mesas, e eu não queria usar um controlador de faixa RGB enlatado, porque sabia que eles ficariam entediados com os padrões fixos que esses controladores têm. Também achei que seria uma grande oportunidade de criar uma ferramenta de ensino para eles que pudessem usar para aprimorar as habilidades de programação e eletrônica que tenho ensinado a eles. Esse é o resultado.

Vou mostrar a você como construir este controlador de faixa de LED RGB programável e simples usando um Arduino Uno (ou Nano), um Adafruit Trellis e um punhado de outras peças.

O Adafruit Trellis é um dos meus novos brinquedos favoritos de Lady Ada e equipe. Em primeiro lugar, são meros US $ 9,95 para a placa e outros US $ 4,95 para a almofada de botão de elastômero de silicone (preços até o momento). Isso é um ótimo negócio para uma matriz 4x4 de 16 botões com capacidade de LED. Ele não vem com nenhum LED montado, você precisa fornecê-los, mas isso lhe dá a flexibilidade de escolher as cores que deseja (e mantém o custo e a complexidade baixos em comparação com a construção de LEDs endereçáveis). Para construir este projeto como o meu, você precisará de alguns LEDs de 3 mm. Usei 2 vermelhos, 2 verdes, 2 azuis, 4 amarelos e 6 brancos.

O Trellis usa I2C para se comunicar, portanto, requer apenas dois pinos de E / S (dados e relógio) para controlar 16 botões e 16 LEDs.

Você pode fazer a parte de hardware deste projeto em uma pequena placa de protótipo, que é como fiz meu protótipo. Eu rapidamente percebi que precisava de algo mais limpo e mais contido em suas mesas (um Arduino nu e uma protoplaca seriam muito frágeis), então fiz minha própria blindagem para acionar as tiras de LED. Instruções e arquivos para construir o escudo estão incluídos na última etapa.

O driver usa três MOSFETs IRLB8721 e três resistores. E, claro, você precisará de uma faixa de LED para dirigir; praticamente qualquer faixa de LED RGB 12V simples serve. Estes são LEDs simples, como SMD 5050s, não sofisticados que podem ser endereçados individualmente (sem NeoPixels, etc.) - esse é outro projeto! Você também precisa de uma fonte de alimentação de 12 V grande o suficiente para acionar o número de LEDs que pretende usar.

Então, para recapitular, aqui estão as necessidades básicas de hardware para este projeto:

  • Um Arduino Uno ou Nano (essas instruções são para Uno com cabeçalhos fêmeas instalados, mas Nano em uma placa de ensaio funciona bem) (Adafruit, Amazon, Mouser);
  • Uma placa Adafruit Trellis e almofada de botão de silicone (Adafruit);
  • Três MOSFETs IRLB8721 N-channel (Adafruit, Amazon, Mouser);
  • Três resistores de 1K (Amazon, Mouser);
  • Três resistores de 220 ohms (Amazon, Mouser)
  • Uma pequena placa proto (a minha primeira tinha 1/4 do tamanho - escolha qualquer tamanho com o qual você possa trabalhar confortavelmente) (Adafruit, Amazon);
  • Uma tira LED RGB 12V (SMD 5050) (Adafruit, Amazon);
  • Fonte de alimentação de 12 V - escolha uma potência apropriada para o número de LEDs que você planeja dirigir.

Isenção de responsabilidade de requisitos: os links acima são fornecidos para sua conveniência e não são um endosso de qualquer produto ou fornecedor; nem lucrarei com as compras feitas nesses links. Se você tem fornecedores de que mais gosta, dê suporte a eles de todas as formas!

Vamos começar…

Etapa 1: Conecte a placa do driver

Ligue a placa do driver
Ligue a placa do driver

Aqui está o circuito do driver de LED. É muito simples. Ele usa um MOSFET IRBLxxx de canal N para cada canal na faixa de LED. A faixa de LED é um ânodo comum, o que significa que + 12 V é enviado para a faixa de LED, e os canais de LED vermelho, verde e azul são controlados fornecendo aterramento na respectiva conexão à faixa. Portanto, estaremos conectando o dreno dos MOSFETs aos canais de cor de LED e a fonte ao aterramento. As portas serão conectadas às saídas digitais do Arduino e os resistores fornecem um pull-down que garante que cada MOSFET ligue ou desligue totalmente conforme necessário.

O Arduino oferece modulação de largura de pulso em algumas de suas saídas digitais, então usaremos essas saídas (especificamente D9, D10, D11) para que a intensidade de cada canal de cor possa ser controlada.

Se você estiver confuso sobre o que conectar nos MOSFETs IRLB8721, segure um em sua mão com a frente voltada para você, conforme mostrado na foto acima. O pino à esquerda (pino 1) é a porta e se conectará a um pino de saída digital do Arduino e ao resistor (a outra extremidade do resistor deve se conectar ao aterramento). O pino no centro (pino 2) é o dreno e se conecta ao canal de cor da faixa de LED. O pino à direita (pino 3) é a fonte e está conectado ao aterramento. Certifique-se de acompanhar qual transistor se conecta a qual canal de cor do LED.

Não vou entrar em detalhes sobre como soldar protoplacas. Honestamente, eu odeio isso, e não sou bom nisso. Mas, para o bem ou para o mal, funciona e é uma maneira rápida e suja de fazer um protótipo sólido ou único. Minha primeira placa é mostrada aqui.

Você também pode criar um breadboard para isso. Certamente seria mais rápido do que soldar tudo em uma placa protetora, mas menos permanente.

Depois de ter seu driver conectado, conecte as entradas de porta MOSFET aos pinos de saída digital do Arduino: D9 para o canal verde, D10 para o canal vermelho e D11 para o canal azul. Conecte a faixa de LED à placa proto também.

Além disso, certifique-se de que sua placa de driver tenha uma conexão separada de seu aterramento a um dos pinos de aterramento do Arduino.

Finalmente, para a alimentação do LED, conecte o cabo negativo (aterramento) da fonte de 12 V a um aterramento em sua placa de driver. Em seguida, conecte o terminal positivo da fonte de 12 V ao terminal do ânodo de sua faixa de LED (este é um fio preto nos meus cabos mostrados na imagem).

No final das contas, acabei projetando uma blindagem de placa de PC que é montada no Uno e também tem um suporte de montagem para o Trellis. Isso proporcionou um produto final muito mais acabado. Se você quiser fazer isso, você pode pular o uso da placa proto conforme descrito aqui e apenas obter a placa de proteção feita. Tudo isso é descrito na última etapa.

Etapa 2: colocar LEDs na treliça

Coloque LEDs na Treliça
Coloque LEDs na Treliça

A placa Trellis tem almofadas vazias para LEDs de 3 mm que precisaremos preencher. Observe cuidadosamente os símbolos nas almofadas - há um "+" muito sutil próximo à almofada para designar o lado do ânodo. Se você estiver segurando a placa de forma que o texto fique com o lado direito para cima, também há uma notação na parte superior e inferior da placa informando que os ânodos de LED estão à esquerda.

Solde seus LEDs de 3 mm na placa. Olhando para a frente do quadro, o texto com o lado direito para cima, a posição do interruptor / LED superior esquerdo é # 1, o canto superior direito é # 4, o canto inferior esquerdo é # 13 e o canto inferior direito é # 16. Aqui estão as cores que usei em cada posição (e há um motivo para isso, então aconselho você a seguir meu padrão pelo menos nas duas primeiras linhas):

1 - vermelho2 - verde3 - azul4 - branco5 - vermelho6 - verde7 - azul8 - branco9 - branco10 - branco11 - amarelo12 - amarelo13 - branco14 - branco15 - amarelo16 - amarelo

Atribuição de CC: A imagem Trellis acima é de Adafruit e usada sob a licença Creative Commons - Atribuição / Compartilhamento pela mesma licença.

Etapa 3: Conecte o Trellis ao Arduino

Conecte o Trellis ao Arduino
Conecte o Trellis ao Arduino

O Trellis tem cinco almofadas de fiação, mas apenas quatro são usadas neste projeto. O Trellis precisa de SDA e SCL para se comunicar com o Arduino (usando I2C) e 5V e GND para energia. O último pad, INT, não é usado. As almofadas Trellis aparecem em todas as quatro bordas da placa. Você pode usar qualquer conjunto de almofadas que desejar.

Solde um fio de interconexão sólido aos blocos 5V, GND, SDA e SCL. Em seguida, conecte o fio 5 V ao pino 5 V no Arduino, o GND ao pino terra, o fio SDA ao A4 e o fio SCL ao A5.

Em seguida, vamos ligar o Arduino e fazer upload do esboço para ele. Agora é um bom momento para colocar a almofada de botão de silicone na placa Trellis. Ele apenas fica na placa (observe as "saliências" na parte inferior da almofada que se encaixam nos orifícios da placa), então você pode querer usar alguns pedaços de fita adesiva para segurar as bordas da almofada na placa por agora.

Atribuição de CC: a imagem da fiação Trellis acima é uma versão recortada desta imagem por Adafruit e é usada sob a licença Creative Commons - Atribuição / Compartilhamento pela mesma licença.

Etapa 4: Baixe o esboço do projeto e carregue-o no Arduino

Você pode baixar o esboço do meu repositório Github para este projeto.

Depois de obtê-lo, abra-o no IDE do Arduino, conecte o Arduino usando um cabo USB e carregue o esboço para o Arduino.

Se o esboço for carregado e a treliça estiver conectada corretamente, qualquer um dos botões da treliça deve piscar rapidamente três vezes quando pressionado. Isso é uma indicação de que você pressionou um botão inválido, porque o sistema entra em seu estado "desligado", então o único pressionamento de tecla válido é o necessário para ligá-lo.

Para ligar o sistema, pressione e segure o botão inferior esquerdo (# 13) por pelo menos um segundo. Quando você solta o botão, todos os LEDs devem acender brevemente e, em seguida, as duas linhas inferiores se apagam, exceto o # 13 (canto inferior esquerdo). O sistema agora está ligado e ocioso.

Você pode tentar usar as duas linhas superiores para iluminar e escurecer os canais de LED como um primeiro teste. Se estiver funcionando, você está pronto para ir para a próxima etapa. Caso contrário, verifique:

  1. A fonte de alimentação LED está conectada e ligada;
  2. Os MOSFETs da placa do driver estão conectados corretamente. Se você usar o mesmo IRLB8721 que usei, verifique:

    • As entradas de sinal da placa do driver (portas MOSFET, IRLB8721 pino 1) são conectadas ao Arduino D9 = verde, D10 = vermelho, D11 = azul (consulte a nota abaixo);
    • A faixa de LED é conectada à placa do driver e os canais de cor do LED são conectados aos drenos MOSFET (IRLB8721 pino 2);
    • Os pinos de origem do MOSFET (IRLB8721 pino 3) são conectados ao aterramento na placa do driver;
  3. Conexão de aterramento entre a placa do driver e o pino de aterramento do Arduino.

Na próxima etapa, vamos brincar com algumas das funções da interface do usuário do teclado.

NOTA: Se o seu controlador estiver funcionando, mas os botões de intensidade não controlam as cores certas, não se preocupe e não reconecte! Basta acessar o Sketch no IDE do Arduino e modificar as definições dos pinos VERMELHO, VERDE e AZUL próximo ao topo do arquivo.

Etapa 5: funções básicas de controle

Funções básicas de controle
Funções básicas de controle

Agora que o sistema está ligado, podemos brincar com alguns dos botões e fazer com que ele funcione.

Como eu disse na etapa anterior, quando ligado, o sistema entra em seu estado "ocioso". Nesse estado, você pode usar os botões nas duas linhas superiores para aumentar e diminuir a intensidade da cor de cada um dos canais de LED vermelho, verde e azul. Se você usar os botões brancos de aumentar / diminuir, o sistema aumentará ou diminuirá a intensidade de todos os três canais igualmente e em níveis iguais.

As duas últimas linhas são usadas para reproduzir padrões predefinidos. Esses padrões são armazenados na EEPROM do Arduino. Quando o esboço é executado pela primeira vez, ele vê que a EEPROM não tem nenhum padrão armazenado e armazena um conjunto de padrões padrão. Depois disso, você pode alterar esses padrões e suas alterações são armazenadas na EEPROM do Arduino, substituindo o padrão predefinido. Isso garante que seus padrões sobrevivam a desconexões de energia. A função de edição é descrita na próxima etapa.

Por enquanto, pressione brevemente qualquer um dos botões predefinidos (os oito botões nas duas linhas inferiores) para executar o padrão armazenado para aquele botão. O botão pisca enquanto o padrão é executado. Para interromper o padrão, pressione o botão de padrão brevemente novamente. Enquanto um padrão está sendo executado, os botões brancos para cima / para baixo nas linhas superiores podem ser usados para alterar a taxa do padrão.

Se você deixar o projeto sozinho por alguns segundos sem tocar em nenhum botão, notará que os LEDs escurecem. Isso é para economizar energia e evitar que o Trellis ilumine excessivamente qualquer "clima" que os LEDs estejam tentando criar. Tocar em um botão na treliça irá ativá-la novamente.

Para desligar o sistema, pressione e segure o botão inferior esquerdo (# 13) por um ou mais segundos e solte. A treliça e a faixa de LED apagam.

Etapa 6: Editando padrões no teclado

Editando Padrões no Teclado
Editando Padrões no Teclado

Como eu disse na etapa anterior, o sketch armazena oito padrões padrão na EEPROM na primeira vez que é executado. Você pode alterar 7 desses padrões para qualquer outro, se desejar, usando o modo de edição de padrão no teclado.

Para entrar no modo de edição de padrão, primeiro decida para qual botão você deseja editar o padrão. Você pode escolher qualquer botão diferente do botão inferior esquerdo. Entre no modo de edição de padrão pressionando longamente (mantenha pressionado mais de um segundo) no botão de padrão escolhido. Quando liberado, o botão se iluminará continuamente e as duas linhas superiores começarão a piscar. Isso indica que você está no modo de edição.

O modo de edição começa na primeira etapa do padrão e continua até que você saia da edição ou conclua a edição da 16ª etapa (máximo de 16 etapas por padrão). Em cada etapa, use os botões de intensidade do canal nas duas linhas superiores para selecionar a cor desejada para essa etapa. Em seguida, dê um toque curto no botão de predefinição de padrão para salvar essa cor e vá para a próxima etapa. Em sua última etapa, em vez de pressionar rapidamente, apenas pressione longamente para sair da edição.

Depois de sair da edição do padrão, o padrão é reproduzido automaticamente.

É isso! Agora você tem um controlador RGB LED que sequenciará os padrões que podem ser programados por meio do teclado. Você pode parar por aqui ou, se quiser construir uma versão mais formal deste projeto, continue seguindo as etapas restantes.

Etapa 7: Melhor hardware: proteção e gabinete do driver RGB LED

Image
Image
Melhor hardware: proteção e gabinete do driver RGB LED
Melhor hardware: proteção e gabinete do driver RGB LED
Melhor hardware: proteção e gabinete do driver RGB LED
Melhor hardware: proteção e gabinete do driver RGB LED

Depois de ter um protótipo funcional, eu sabia que não poderia deixar um Arduino vazio e uma placa proto na mesa dos meus filhos como uma solução permanente. Eu precisava de um gabinete para o projeto. Também decidi que faria uma prancha melhor e achei que era a oportunidade perfeita para fazer meu próprio escudo.

Limpei meu esquema de papel inserindo-o no ExpressSCH, uma ferramenta gratuita oferecida pela ExpressPCB, um fabricante de placas que oferece pequenas tiragens baratas de pequenas placas de PC. Tenho usado o ExpressPCB por mais de uma década em projetos, mas use as ferramentas e o fabricante de sua preferência, sem dúvida.

Eu adicionei alguns pequenos recursos ao esquema básico para que funcionasse bem como um escudo para este projeto. Eu adicionei almofadas de fiação para conectar o Trellis, uma tomada de força, uma lâmpada piloto e um conector para a faixa de LED. Eu também adicionei um local para um capacitor na fonte de alimentação. O circuito final é mostrado aqui.

Decidi que a energia para o projeto deveria vir do escudo. Os 12 V fornecidos à blindagem alimentam a faixa de LED e o Arduino. A alimentação para o Arduino é fornecida conectando a entrada de alimentação ao pino VIN do Arduino, que é bidirecional (você pode fornecer alimentação para o Arduino neste pino, ou se conectar a alimentação ao Arduino em outro lugar, ele fornecerá o ligar este pino). O diodo de proteção D1 impede que qualquer energia conectada diretamente ao Arduino (por exemplo, USB) tente alimentar os LEDs.

Por que não usar o conector de alimentação do Arduino e apenas conectar 12V lá? Embora eu pudesse ter fornecido 12 V para o conector de alimentação do Arduino e usado o pino VIN para obter essa alimentação para a blindagem, estava preocupado que o diodo D1 do Arduino e os traços não estivessem à altura das altas correntes possíveis para acionar o LED tiras. Então, decidi que meu escudo assumiria a entrada de energia e forneceria energia para o Arduino. Eu também precisava de 5 V para o Trellis, mas a regulação de energia on-board do Arduino fornece 5 V em vários pinos, então usei um deles para o Trellis. Isso me salvou de colocar um circuito regulador no escudo.

Em seguida, coloquei o PCB. Usei alguns recursos que encontrei para obter as medidas exatas de colocação dos pinos para atender aos cabeçalhos no Arduino Uno. Um pouco de diligência e combinou na primeira tentativa. Não há muito para o circuito de escudo em si, então eu tinha bastante espaço. Eu coloquei traços largos para as cargas de LED, então haveria bastante capacidade de transporte de corrente para minhas necessidades. Eu coloquei os MOSFETs onde eles poderiam ser montados planos, com ou sem dissipadores de calor. Até agora, não precisei de dissipadores de calor para o número de LEDs que tenho usado, mas o espaço existe, se necessário.

Eu também adicionei orifícios que combinavam com os orifícios de montagem na treliça, para que eu pudesse usar espaçadores para montar a treliça no meu escudo. Com a blindagem conectada ao Arduino e o Trellis suspenso em isolantes sobre a blindagem, tudo deve ser bom e sólido.

Em seguida, imprimi o layout da placa e colei-o em um pedaço de núcleo de espuma e inseri minhas peças para garantir que tudo se encaixasse. Tudo bem, então enviei o pedido.

Então comecei a trabalhar em um gabinete. Usando o Fusion 360, projetei um gabinete simples para conter as três placas (Arduino Uno, shield e Trellis). Orifícios na caixa permitem a conexão com a porta USB do Arduino e, claro, acesso à conexão da faixa de LED e tomada de alimentação blindada. O conector de alimentação do Arduino é coberto pelo gabinete, para garantir que não seja usado. Depois de alguns protótipos para ajuste de teste, finalmente consegui um design com o qual fiquei satisfeito. Publiquei os arquivos STL do gabinete para o Thingiverse.

No futuro, farei uma versão da placa em que um Nano possa ser conectado diretamente, o que tornaria o projeto ainda mais compacto. Até então, você também poderia usar um adaptador de blindagem Nano para Uno como este.

Se você vai fazer o escudo, aqui está o que você precisará além das peças mencionadas na etapa 1:

  • Placa de PC RGB LED Driver Shield (da ExpressPCB ou outras; você pode baixar os arquivos do meu repositório Github para o projeto);
  • Diodo 1N4002;
  • Capacitor eletrolítico radial 100uF 25V (use 220uF ou 470uF se a carga do LED for grande);
  • Tomada de alimentação, PJ202-AH (modelo com classificação 5A).

As seguintes partes são opcionais:

  • LED de 3 mm - qualquer cor, para lâmpada piloto (pode ser omitido)
  • Resistor de 1500 ohm - necessário apenas se usar lâmpada piloto LED

Recomendado: