Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Marco de fotos de corazón LED DIY – Proyecto Arduino

En este proyecto de Arduino, le mostraré cómo puede hacer un marco de fotos de corazón LED increíble usando Arduino. Puede ver el siguiente video o leer el artículo escrito a continuación para obtener más detalles.

A primera vista, parece un marco de fotos ordinario, pero una vez que hace clic en el interruptor en la parte posterior, se convierte en un marco de fotos extraordinario. Construir este Proyecto Arduino es muy divertido y puede ser un regalo perfecto de San Valentín, Cumpleaños o Aniversario para sus seres queridos. Así que empecemos a construir

Preparación del marco de fotos


Primero necesitamos un marco de fotos simple de 18 x 13 cm y un tablero de fibra cortado al tamaño del marco en el que haremos agujeros para insertar los LED. Luego, debemos dibujar e imprimir una forma de corazón con 32 LED que se usará como patrón. Los agujeros para los LED los haremos con un taladro.

Una vez que hayamos terminado de perforar los agujeros, comenzaremos a insertar los LED. Necesitamos insertar todos los LED en el mismo lado, con el ánodo o el cable más largo apuntando hacia afuera para que podamos doblarlos y luego soldar los ánodos de todos los LED juntos.

Una vez que hayamos soldado todos los LED debemos comprobar si todos funcionan correctamente. Para eso, necesitamos conectar el pin VCC positivo de 5 voltios a los ánodos de los LED a través de una resistencia de 220 ohmios y usar el pin de tierra para verificar si cada LED se encenderá.

Esquemas del circuito


Aquí está el esquema del circuito de este proyecto y puede encontrar una lista completa de los componentes necesarios para este proyecto debajo. Así que usaremos el Arduino Nano y los dos circuitos integrados TLC5940 para controlar los LED. El TLC5940 es un controlador LED de 16 canales que proporciona salidas PWM. Puede encontrar más detalles sobre cómo conectar y usar este IC con el Arduino en mi Tutorial particular de Arduino y TLC5940.

Componentes necesarios para este proyecto Arduino


Puede obtener los componentes en cualquiera de los siguientes sitios:

  • Arduino Nano…………………………..
  • LED rojos ultrabrillantes……………… 
  • Interruptor……………………………….. 
  • Conector de alimentación…………………………… 
  • Adaptador DC 5V>1A……………….. 
  • 2 controladores LED TLC5940……….
  • 2 resistencias de 2K ……………………..
  • Condensadores de 1uF y 0,1uF ……………

Montaje


Aquí, primero insertaremos los zócalos de IC y los cabezales de clavija en su lugar y los soldaremos a la PCB de creación de prototipos para que podamos conectarles los IC y el Arduino Nano. También necesitamos dos cabezales de pines adicionales con un par de ranuras para la alimentación, o los pines VCC de 5 voltios y de tierra, así como dos condensadores para el desacoplamiento.

Debemos tener mucho cuidado al conectar los componentes porque puede ensuciarse mucho con tantos cables si conectamos algo mal. En este punto, necesitamos cargar el código Arduino para asegurarnos de que hemos conectado todo correctamente.

Código Arduino


Echemos un vistazo al código Arduino que he hecho para este proyecto. Entonces usaremos la biblioteca TLC5940 hecha por Alex Leone. Una vez que descargamos e instalamos esta biblioteca, debemos modificar el archivo tlc_config.h y cambiar el valor de la variable NUM_TLCS al número de circuitos integrados TLC5940 conectados en serie y, en nuestro caso, ese valor es 2

Una vez hecho esto, ahora podemos direccionar fácilmente todos los LED del 0 al 31. Al principio, también debemos definir algunas variables necesarias para el programa. En la sección de configuración, debemos iniciar los TLC y, en la sección de bucle, hacer el programa. Organicé el programa en 9 etapas diferentes o espectáculos de luces de los LED usando la instrucción switch.

Por ejemplo, echemos un vistazo a la primera etapa. Generamos valores INT aleatorios de 0 a 31 y los usamos como direcciones para los LED. La función Tlc.set() se usa para configurar qué LED encendemos. El primer parámetro es la dirección del LED y el segundo parámetro es el valor de brillo del LED o el valor de PWM que es de 0 a 4095. Sin embargo, esto no encenderá el LED de inmediato, solo establece qué El LED se iluminará a continuación cuando se ejecute la función Tlc.update(). Usando esta declaración "si" activamos la segunda etapa después de encender 8 LED al azar. Ahora echemos un vistazo a un ejemplo más, digamos la etapa 3. Usando este bucle "for" configuramos los 32 LED para que se enciendan cuando se ejecute la función Tlc.update(). Después de medio segundo de retraso usando la función Tlc.clear() borramos y apagamos todos los LEDs. De manera similar, puede modificar el código y agregar más espectáculos de luces por su cuenta.

/*  LED Heart Photo Frame - Arduino Project
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */

/* TLC5940 Library by Alex Leone, https://code.google.com/archive/p/tlc5940arduino/
 *  You need to modify tlc_config.h located in the TLC5940 library 
 *  and change the value of the variable NUM_TLCS to the numbers of TLC5940 ICs connected
 */

#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) {    
    //-----Stage 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;
    //-----Stage 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;
    //-----Stage 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;
    //-----Stage 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;
    //-----Stage 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;
    //-----Stage 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;
    //-----Stage 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;
    //-----Stage 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;
    //-----Stage 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;
      
  }
}Code language: Arduino (arduino)

Toque final


Una vez que hayamos terminado con la programación y sepamos que todo funciona bien, debemos asegurar los LED al tablero de fibra y lo hice con una pistola de pegamento. Luego necesitamos hacer una caja de cubierta para la electrónica usando una pistola de pegamento y 4 piezas más de tablero de fibra cortadas a medida.

Lo que queda ahora es conectar las líneas de alimentación que provienen del interruptor y el conector de alimentación que se insertan en el tablero de fibra del marco de fotos, agregar la foto, asegurar toda la caja al marco de fotos y ¡listo!

Aquí puede ver el video de demostración completo del marco de fotos LED Heart Photo.

¡No dude en hacer cualquier pregunta en la sección de comentarios a continuación!


Proceso de manufactura

  1. Visualizador de música DIY LUMAZOID Arduino
  2. DIY Sensor infrarrojo de latidos del corazón con Arduino
  3. Detector de frecuencia de audio
  4. ¡Arduino con Bluetooth para controlar un LED!
  5. Tech-TicTacToe
  6. Voltímetro de bricolaje con Arduino y una pantalla Nokia 5110
  7. Arduino Cuadrúpedo
  8. Temporizador de cuenta atrás de Arduino
  9. Mezclador de colores Arduino RGB
  10. Máquina de tratamiento DIY Arduino RADIONICS
  11. RC Porsche Car (Proyecto Arduino)