Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Créer un Cadre Photo Cœur LED Époustouflant avec Arduino - Guide DIY Étape par Étape

Dans ce projet Arduino, je vais vous montrer comment réaliser un superbe cadre photo cœur à LED avec Arduino. Vous pouvez regarder la vidéo suivante ou lire l'article ci-dessous pour plus de détails.

À première vue, cela ressemble à un cadre photo ordinaire, mais dès qu'on actionne l'interrupteur à l'arrière, il se transforme en un cadre extraordinaire. La construction de ce projet Arduino est très amusante et peut être un cadeau parfait pour la Saint-Valentin, un anniversaire ou une fête pour vos proches. Alors commençons la construction !

Préparation du Cadre Photo


Tout d'abord, nous avons besoin d'un cadre photo simple de 18 x 13 cm et d'un panneau de fibres découpé à la taille du cadre sur lequel nous percerons les trous pour insérer les LED. Ensuite, nous devons dessiner et imprimer une forme de cœur avec 32 LED qui servira de patron. Nous percerons les trous pour les LED à l'aide d'une perceuse.

Une fois le perçage terminé, nous commençons à insérer les LED. Toutes les LED doivent être insérées du même côté, avec l'anode (la patte la plus longue) pointant vers l'extérieur pour pouvoir les plier et souder ensuite toutes les anodes ensemble.

Une fois toutes les LED soudées, nous devons vérifier qu'elles fonctionnent toutes correctement. Pour cela, il faut connecter le 5V VCC aux anodes des LED via une résistance de 220Ω et, avec la broche GND, vérifier chaque LED pour voir si elle s'allume.

Schéma de Circuit


Voici le schéma de circuit de ce projet et vous trouverez ci-dessous la liste complète des composants nécessaires. Nous utiliserons l'Arduino Nano et deux CI TLC5940 pour contrôler les LED. Le TLC5940 est un pilote de LED 16 canaux qui fournit des sorties PWM. Vous trouverez plus de détails sur la connexion et l'utilisation de ce CI avec Arduino dans mon tutoriel spécifique Arduino et TLC5940.

Composants Nécessaires pour ce Projet Arduino


Vous pouvez vous procurer les composants sur l'un des sites ci-dessous :

Assemblage


Ici, nous insérons d'abord les supports de CI et les connecteurs à broches en place et les soudons sur le circuit imprimé d'expérimentation pour pouvoir y brancher les CI et l'Arduino Nano. Nous avons aussi besoin de deux connecteurs à broches supplémentaires avec quelques emplacements pour l'alimentation (5V VCC et GND) ainsi que deux condensateurs pour le découplage.

Il faut être très prudent lors du câblage car cela peut vite devenir chaotique avec tous ces fils si on connecte quelque chose de travers. À ce stade, il faut téléverser le code Arduino pour s'assurer que tout est correctement connecté.

Code Arduino


Examinons le code Arduino que j'ai créé pour ce projet. Nous utiliserons la bibliothèque TLC5940 d'Alex Leone. Une fois téléchargée et installée, il faut modifier le fichier tlc_config.h et changer la valeur de la variable NUM_TLCS au nombre de CI TLC5940 connectés en série, soit 2 dans notre cas.

Une fois cela fait, nous pouvons facilement adresser toutes les LED de 0 à 31. Au début, nous définissons aussi quelques variables nécessaires au programme. Dans la section setup, nous initialisons les TLC et dans la boucle loop, nous créons le programme. J'ai organisé le programme en 9 étapes ou animations lumineuses différentes des LED en utilisant l'instruction switch.

Par exemple, regardons la première étape. On génère des valeurs ENTIÈRES aléatoires de 0 à 31 qu'on utilise comme adresses pour les LED. La fonction Tlc.set() définit quelle LED allumer. Le premier paramètre est l'adresse de la LED, le second est la valeur de luminosité (valeur PWM de 0 à 4095). Cependant, cela n'allume pas la LED immédiatement, cela définit seulement quelle LED s'allumera au prochain appel de Tlc.update(). Avec cette instruction "if", on active la deuxième étape après avoir allumé 8 LED aléatoires. Regardons un autre exemple, l'étape 3. Avec cette boucle "for", on met toutes les 32 LED à s'allumer lors du prochain Tlc.update(). Après un délai d'une demi-seconde, avec Tlc.clear() on éteint toutes les LED. De manière similaire, vous pouvez modifier le code et ajouter vos propres animations.

/* Cadre Photo Cœur LED - Projet Arduino
 * Programme par Dejan Nedelkovski,
 * www.HowToMechatronics.com
 */
/* Bibliothèque TLC5940 par Alex Leone, https://code.google.com/archive/p/tlc5940arduino/
 * Vous devez modifier tlc_config.h dans la bibliothèque TLC5940
 * et changer la valeur de NUM_TLCS au nombre de CI TLC5940 connectés
 */
#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) {
    //-----Étape 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;
    //-----Étape 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;
    //-----Étape 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;
    //-----Étape 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;
    //-----Étape 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;
    //-----Étape 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;
    //-----Étape 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;
    //-----Étape 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;
    //-----Étape 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;
  }
}

Touches Finales


Une fois la programmation terminée et tout testé, il faut fixer les LED sur le panneau de fibres, ce que j'ai fait avec un pistolet à colle. Ensuite, il faut fabriquer un boîtier de protection pour l'électronique avec un pistolet à colle et 4 pièces supplémentaires de panneau de fibres découpées à la bonne taille.

Il reste à connecter les fils d'alimentation provenant de l'interrupteur et de la prise d'alimentation insérés dans le panneau du cadre photo, ajouter la photo, fixer le boîtier complet au cadre photo et c'est fini !

Vous pouvez regarder la vidéo de démonstration complète du Cadre Photo Cœur LED.

N'hésitez pas à poser vos questions dans la section commentaires ci-dessous !

Processus de fabrication

  1. Construisez votre propre LUMAZOID : Visualiseur musical DIY Arduino
  2. Construire un Capteur de Rythme Cardiaque Infrarouge Fiable avec Arduino : Guide Étape par Étape
  3. Détecteur de fréquence audio Arduino — Mesurer le pic sonore avec module haute sensibilité
  4. Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
  5. Morpion sur matrice LED MAX7219 avec boîtier en carton
  6. Construire un voltmètre DIY avec Arduino et écran Nokia 5110
  7. Construire un robot quadrupède Arduino intelligent : guide étape par étape
  8. Construire un minuteur à rebours Arduino fiable avec afficheur 7 segments SparkFun
  9. Mélangeur de couleurs RVB Arduino – Projet DIY débutant