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

Cadre photo coeur LED bricolage - Projet Arduino

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

À première vue, il ressemble à un cadre photo ordinaire, mais une fois que vous avez cliqué sur l'interrupteur à l'arrière, il se transforme en un cadre photo extraordinaire. Construire ce projet Arduino est très amusant et peut être un cadeau parfait pour la Saint-Valentin, un anniversaire ou un anniversaire pour vos proches. Alors commençons à construire

Préparation du cadre photo


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

Une fois que nous aurons fini de percer les trous, nous commencerons à insérer les LED. Nous devons insérer toutes les LED du même côté, avec l'anode ou le fil le plus long pointant vers l'extérieur afin de pouvoir les plier et ensuite souder ensemble les anodes de toutes les LED.

Une fois que nous avons soudé toutes les LED, nous devons vérifier si elles fonctionnent toutes correctement. Pour cela, nous devons connecter la broche VCC positive de 5 volts aux anodes des LED via une résistance de 220 Ohms et, à l'aide de la broche de terre, vérifier si chaque LED s'allume.

Schémas de circuit


Voici les schémas de circuit de ce projet et vous pouvez trouver une liste complète des composants nécessaires pour ce projet en dessous. Nous utiliserons donc l'Arduino Nano et les deux circuits intégrés TLC5940 pour contrôler les LED. Le TLC5940 est un pilote de LED à 16 canaux qui fournit des sorties PWM. Vous pouvez trouver plus de détails sur la façon de connecter et d'utiliser ce circuit intégré avec l'Arduino sur mon tutoriel particulier Arduino et TLC5940.

Composants nécessaires pour ce projet Arduino


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

  • Arduino Nano………………………..
  • DEL rouges ultra lumineuses…………… 
  • Changer…………………………………….. 
  • Prise d'alimentation…………………………… 
  • Adaptateur DC 5V>1A……………….. 
  • 2 pilotes de LED TLC5940……….
  • 2 résistances 2K ……………………..
  • Condensateurs 1uF &0.1uF ……………

Assemblage


Ici, nous allons d'abord insérer les douilles IC et les en-têtes de broches en place et les souder au PCB de prototypage afin que nous puissions y attacher les IC et l'Arduino Nano. Nous avons également besoin de deux en-têtes de broches supplémentaires avec quelques emplacements pour l'alimentation, ou les broches 5 Volts VCC et Ground, ainsi que deux condensateurs pour le découplage.

Nous devons être très prudents lors de la connexion des composants, car cela peut devenir très compliqué avec autant de fils si nous connectons quelque chose de mal. À ce stade, nous devons télécharger le code Arduino pour nous assurer que nous avons tout connecté correctement.

Code Arduino


Jetons un coup d'œil au code Arduino que j'ai créé pour ce projet. Nous utiliserons donc la bibliothèque TLC5940 fabriquée par Alex Leone. Une fois que nous avons téléchargé et installé cette bibliothèque, nous devons modifier le fichier tlc_config.h et changer la valeur de la variable NUM_TLCS en nombre de CI TLC5940 connectés en série et dans notre cas, cette valeur est 2

Cela fait, nous pouvons maintenant facilement adresser toutes les LED de 0 à 31. Au début, nous devons également définir certaines variables nécessaires au programme. Dans la section de configuration, nous devons lancer les TLC et dans la section de boucle, créer le programme. J'ai organisé le programme en 9 étapes différentes ou jeux de lumière des LED à l'aide de l'instruction switch.

Par exemple, regardons la première étape. Nous générons des valeurs INT aléatoires de 0 à 31 et nous les utilisons comme adresses pour les LED. La fonction Tlc.set() est utilisée pour définir quelle LED nous allumons. Le premier paramètre est l'adresse de la LED, et le deuxième paramètre est la valeur de luminosité de la LED ou la valeur PWM qui est de 0 à 4095. Cependant, cela n'allumera pas la LED tout de suite, il définit simplement quel La LED s'allumera ensuite lorsque la fonction Tlc.update() sera exécutée. En utilisant cette instruction "if", nous activons la deuxième étape après avoir allumé 8 LED aléatoires. Examinons maintenant un autre exemple, disons l'étape 3. En utilisant cette boucle "for", nous configurons les 32 LED pour qu'elles s'allument lorsque la fonction Tlc.update() sera exécutée. Après un délai d'une demi-seconde en utilisant la fonction Tlc.clear(), nous effaçons et éteignons toutes les LED. De la même manière, vous pouvez modifier le code et ajouter vous-même plus de jeux de lumière.

/*  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)

Touche finale


Une fois que nous avons terminé la programmation et que nous savons que tout fonctionne bien, nous devons fixer les LED au panneau de fibres et je l'ai fait à l'aide d'un pistolet à colle. Ensuite, nous devons fabriquer une boîte de protection pour l'électronique à l'aide d'un pistolet à colle et de 4 autres morceaux de panneaux de fibres coupés sur mesure.

Il ne reste plus qu'à connecter les lignes électriques provenant de l'interrupteur et de la prise d'alimentation qui sont insérées dans le panneau de fibres du cadre photo, ajouter la photo, fixer l'ensemble du boîtier au cadre photo et le tour est joué !

Ici, vous pouvez regarder la vidéo de démonstration complète du cadre photo LED Heart.

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


Processus de fabrication

  1. Visualiseur de musique Arduino DIY LUMAZOID
  2. Capteur de rythme cardiaque infrarouge DIY utilisant Arduino
  3. Détecteur de fréquence audio
  4. Arduino avec Bluetooth pour contrôler une LED !
  5. Tech-TicTacToe
  6. Voltmètre DIY avec Arduino et un écran Nokia 5110
  7. Arduino quadrupède
  8. compte à rebours Arduino
  9. Mixeur de couleurs Arduino RVB