Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Neste Projeto Arduino, mostrarei como fazer um incrível porta-retrato de coração LED usando Arduino. Você pode assistir ao vídeo a seguir ou ler o artigo escrito abaixo para mais detalhes.

À primeira vista, parece um porta-retrato comum, mas, ao clicar no interruptor na parte traseira, ele se transforma em um porta-retrato extraordinário. Construir este Projeto Arduino é muito divertido e pode ser um presente perfeito para o Dia dos Namorados, Aniversário ou Aniversário de Casamento para seus entes queridos. Então, vamos começar a construir.

Preparação do Porta-Retrato


Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Primeiro, precisamos de um porta-retrato simples de 18 x 13 cm e uma placa de fibra cortada no tamanho do porta-retrato na qual faremos furos para inserir os LEDs. Então, precisamos desenhar e imprimir uma forma de coração com 32 LEDs que será usada como padrão. Faremos os furos para os LEDs usando uma furadeira.

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Uma vez terminada a perfuração dos furos, começaremos a inserir os LEDs. Precisamos inserir todos os LEDs do mesmo lado, com o Anodo ou o terminal mais longo apontando para fora, para que possamos dobrá-los e, posteriormente, soldar os Anodos de todos os LEDs juntos.

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Uma vez que soldamos todos os LEDs, devemos verificar se todos estão funcionando corretamente. Para isso, precisamos conectar o pino positivo de 5 Volts VCC aos Anodos dos LEDs através de um resistor de 220 Ohms e, usando o pino Ground, verificar cada LED se ele acende.

Esquemas de Circuito


Aqui está o esquema de circuito deste projeto e você pode encontrar uma lista completa de componentes necessários para este projeto abaixo dele. Usaremos o Arduino Nano e dois CIs TLC5940 para controlar os LEDs. O TLC5940 é um Driver de LED de 16 Canais que fornece saídas PWM. Você pode encontrar mais detalhes sobre como conectar e usar este CI com o Arduino no meu tutorial específico sobre Arduino e TLC5940.

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Componentes Necessários para este Projeto Arduino


Você pode obter os componentes em qualquer um dos sites abaixo:

  • Arduino Nano
  • LEDs Vermelhos Ultra Brilhantes
  • Interruptor
  • Conector de Alimentação (Power Jack)
  • Adaptador DC 5V >1A
  • 2 x Drivers de LED TLC5940
  • 2 x Resistores 2K
  • Capacitores 1uF e 0.1uF

Montagem


Aqui, primeiro inseriremos os soquetes de CI e os headers de pinos no lugar e os soldaremos na PCB de prototipagem para que possamos conectar os CIs e o Arduino Nano a eles. Também precisamos de dois headers de pinos adicionais com alguns slots para a alimentação, ou os pinos de 5 Volts VCC e Ground, bem como dois capacitores para desacoplamento.

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Precisamos ter muito cuidado ao conectar os componentes, pois pode ficar muito confuso com tantos fios se conectarmos algo errado. Neste ponto, precisamos fazer o upload do código Arduino para garantir que conectamos tudo corretamente.

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Código Arduino


Vamos dar uma olhada no código Arduino que fiz para este projeto. Usaremos a biblioteca TLC5940 feita por Alex Leone. Uma vez baixada e instalada esta biblioteca, precisamos modificar o arquivo tlc_config.h e alterar o valor da variável NUM_TLCS para o número de CIs TLC5940 conectados em série e, no nosso caso, esse valor é 2.

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Com isso feito, agora podemos endereçar facilmente todos os LEDs de 0 a 31. No início, também precisamos definir algumas variáveis necessárias para o programa. Na seção setup, precisamos iniciar os TLCs e, na seção loop, fazer o programa. Organizei o programa em 9 estágios diferentes ou shows de luz dos LEDs usando a declaração switch.

Por exemplo, vamos dar uma olhada no primeiro estágio. Geramos valores INT aleatórios de 0 a 31 e os usamos como endereços para os LEDs. A função Tlc.set() é usada para definir qual LED acenderemos. O primeiro parâmetro é o endereço do LED, e o segundo parâmetro é o valor de brilho do LED ou o valor PWM que varia de 0 a 4095. No entanto, isso não acenderá o LED imediatamente, apenas define qual LED acenderá da próxima vez que a função Tlc.update() for executada. Usando esta declaração "if", ativamos o segundo estágio após acender 8 LEDs aleatórios. Agora, vamos dar uma olhada em mais um exemplo, digamos o estágio 3. Usando este loop "for", definimos todos os 32 LEDs para acender quando a função Tlc.update() for executada. Após meio segundo de atraso, usando a função Tlc.clear(), apagamos e desligamos todos os LEDs. De maneira semelhante, você pode modificar o código e adicionar mais shows de luz por conta própria.

/* Porta-Retrato Coração LED - Projeto Arduino
 * Programa feito por Dejan Nedelkovski,
 * www.HowToMechatronics.com
 */
/* Biblioteca TLC5940 por Alex Leone, https://code.google.com/archive/p/tlc5940arduino/
 * Você precisa modificar tlc_config.h localizado na biblioteca TLC5940
 * e alterar o valor da variável NUM_TLCS para o número de CIs TLC5940 conectados
 */
#include "Tlc5940.h"
int stage = 0;
int randomNumber;
int count = 0;
int brightness = 3500;
int brightUp = 50;
int dir = 1;

void setup() {
  Tlc.init();
}

void loop() {
  switch(stage) {
    //-----Estágio 1
    case 0:
      randomNumber = (int)random(0,31);
      Tlc.set(randomNumber,4095);
      delay(1500);
      Tlc.update();
      if(count >= 8) {
        stage = 1;
        count = 0;
      } else {
        ++count;
      }
      break;
    //-----Estágio 2
    case 1:
      delay(75);
      for(int i=31;i>=0;i--) {
        Tlc.set(i,4095);
        delay(100);
        Tlc.update();
      }
      delay(500);
      Tlc.clear();
      Tlc.update();
      stage = 2;
      delay(500);
      break;
    //-----Estágio 3
    case 2:
      for(int i=0;i<=31;i++) {
        Tlc.set(i,4095);
      }
      Tlc.update();
      delay(500);
      Tlc.clear();
      Tlc.update();
      delay(350);
      if(count > 6) {
        stage = 3;
        count = 0;
      } else {
        ++count;
      }
      break;
    //-----Estágio 4
    case 3:
      for (int i=0;i<=15;i++) {
        Tlc.set(i,4095);
        Tlc.set(31-i,4095);
        Tlc.update();
        delay(70);
      }
      delay(50);
      for (int i=15;i>=0;i--) {
        Tlc.set(i,0);
        Tlc.set(31-i,0);
        Tlc.update();
        delay(70);
      }
      for (int i=15;i>=0;i--) {
        Tlc.set(i,4095);
        Tlc.set(31-i,4095);
        Tlc.update();
        delay(70);
      }
      for (int i=0;i<=15;i++) {
        Tlc.set(i,0);
        Tlc.set(31-i,0);
        Tlc.update();
        delay(70);
      }
      delay(50);
      Tlc.clear();
      Tlc.update();
      delay(100);
      if(count > 1) {
        stage = 4;
        count = 0;
      } else {
        ++count;
      }
      break;
    //-----Estágio 5
    case 4:
      for (int i=15;i>=count;i--) {
        Tlc.set(32-i,4095);
        Tlc.update();
        delay(5);
        Tlc.set(32-i-1,0);
        Tlc.update();
        delay(5);
        Tlc.set(i,4095);
        Tlc.update();
        delay(5);
        Tlc.set(i+1,0);
        Tlc.update();
        delay(50);
      }
      if(count > 15) {
        Tlc.set(16,4095);
        Tlc.update();
        delay(2000);
        stage = 5;
        count = 0;
      } else {
        ++count;
      }
      break;
    //-----Estágio 6
    case 5:
      for (int i=0;i<=31;i++) {
        Tlc.set(i,brightness);
        Tlc.update();
      }
      Tlc.update();
      brightness = brightness + brightUp;
      if (brightness>=3500) {
        brightUp=-50;
        ++count;
      }
      if (brightness<=150) {
        brightUp=50;
      }
      if(count > 6) {
        stage = 6;
        count = 0;
        brightness = 3500;
        Tlc.clear();
        Tlc.update();
      }
      delay(40);
      break;
    //-----Estágio 7
    case 6:
      for (int i=0;i<=30;i+=2) {
        Tlc.set(i,4095);
        Tlc.set(i+1,0);
      }
      Tlc.update();
      delay(500);
      for (int i=0;i<=30;i+=2) {
        Tlc.set(i,0);
        Tlc.set(i+1,4095);
      }
      Tlc.update();
      delay(500);
      if(count > 20) {
        stage = 7;
        count = 0;
      } else {
        ++count;
      }
      break;
    //-----Estágio 8
    case 7:
      for(int i=31;i>=16;i--) {
        Tlc.clear();
        Tlc.update();
        delay(2);
        Tlc.set(i,4095);
        Tlc.set(i+1,2000);
        Tlc.set(i+2,1000);
        Tlc.set(i+3,500);
        Tlc.set(i+4,300);
        Tlc.set(i+5,200);
        Tlc.set(i+6,100);
        Tlc.set(i+7,50);
        Tlc.set(i+8,0);
        Tlc.set(i-16,4095);
        Tlc.set(i-15,2000);
        Tlc.set(i-14,1000);
        Tlc.set(i-13,500);
        Tlc.set(i-12,300);
        Tlc.set(i-11,200);
        Tlc.set(i-10,100);
        Tlc.set(i+-9,50);
        Tlc.set(i-8,0);
        Tlc.update();
        delay(50);
      }
      if(count > 8) {
        for(int i=31;i>=0;i--) {
          Tlc.set(i,4095);
          Tlc.update();
          delay(50);
        }
        stage = 8;
        count = 0;
      } else {
        ++count;
      }
      break;
    //-----Estágio 9
    case 8:
      for(int i=31;i>=0;i--) {
        Tlc.set(i+8,4095);
        Tlc.set(i+7,2000);
        Tlc.set(i+6,1000);
        Tlc.set(i+5,500);
        Tlc.set(i+4,300);
        Tlc.set(i+3,200);
        Tlc.set(i+2,100);
        Tlc.set(i+1,50);
        Tlc.set(i,0);
        Tlc.update();
        delay(50);
      }
      for(int i=31;i>=0;i--) {
        Tlc.set(i,4095);
      }
      Tlc.update();
      delay(10);
      if(count > 8) {
        delay(8000);
        Tlc.clear();
        Tlc.update();
        stage = 0;
        count = 0;
      } else {
        ++count;
      }
      break;
  }
}

Toque Final


Uma vez terminada a programação e sabendo que tudo funciona bem, precisamos fixar os LEDs na placa de fibra e fiz isso usando uma pistola de cola quente. Então, precisamos fazer uma caixa de cobertura para a eletrônica usando uma pistola de cola quente e 4 peças adicionais de fibra cortadas no tamanho certo.

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

O que resta agora é conectar as linhas de alimentação vindas do interruptor e do conector de alimentação que estão inseridos na fibra do porta-retrato, adicionar a foto, fixar toda a caixa ao porta-retrato e pronto!

Crie um Porta-Retrato de Coração LED Incrível com Arduino – Guia DIY Passo a Passo

Aqui você pode assistir ao vídeo de demonstração completo do Porta-Retrato Coração LED.

Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo!

Processo de manufatura

  1. Construa Seu Próprio LUMAZOID: Visualizador de Música DIY com Arduino
  2. Construa um Sensor de Batimento Cardíaco Infravermelho Confiável com Arduino: Guia Passo a Passo
  3. Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade
  4. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  5. Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
  6. Construa um Voltímetro DIY com Arduino e Display Nokia 5110 – Guia Passo a Passo
  7. Construa um Robô Quadrúpede Inteligente com Arduino: Guia Passo a Passo
  8. Construa um Temporizador Regressivo Confiável com Arduino e Display de 7 Segmentos SparkFun
  9. Misturador de Cores RGB com Arduino – Projeto DIY para Iniciantes
  10. Dispositivo de Tratamento Radiônico EMR DIY com Arduino Nano