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

Affichage de porte à matrice LED + détecteur de mouvement [Arduino Holiday]

Composants et fournitures

Arduino UNO
× 1
Arduino Nano R3
× 1
Capteur de mouvement PIR (générique)
× 1
Relais (générique)
× 1
Câbles de raccordement (générique)
× 1
Cordon d'alimentation PC PSU
× 1
Ruban LED RVB
× 1
Panneau Neopixel 8x8
× 3

Outils et machines nécessaires

Fer à souder (générique)
Dénudeur de fils

À propos de ce projet

Ce projet combine 3 matrices de LED RVB WS2812B 8x8 et un capteur de mouvement PIR pour accueillir les visiteurs avec un texte disant « Joyeuses Fêtes et Bonne Année ! lorsqu'ils sont suffisamment proches de la porte et affichent un ensemble d'effets comme un économiseur d'écran sur les moniteurs lorsque le capteur ne détecte personne à proximité.

Il est contrôlé par un Arduino UNO et alimenté par une alimentation 5v 30a.

J'ai kitbashed ou combiné 3 jeux de codes.

Ceux de la bibliothèque FastLED DemoReel100 Exemple pour les effets Idle/Standby.

Le code du capteur de mouvement PIR

Et le code de configuration du Neopixel, je pense. Je ne suis plus vraiment sûr, tbh, puisque c'était il y a presque un mois quand j'ai mélangé les codes ensemble.

J'ai également utilisé un autre capteur de mouvement PIR connecté à un relais 5v avec une chaîne de LED RVB 12v via une rallonge et contrôlé par un Arduino Nano.

La chaîne LED, ainsi que les lumières de vacances qui sont également connectées à la rallonge, s'activent lorsque le premier capteur PIR détecte un mouvement. Il est situé au plafond près de la 1ère marche de l'escalier.

Après quelques marches en montée, le 2e capteur PIR indique à l'ONU d'afficher l'affichage du texte sur les matrices lorsque quelqu'un est suffisamment près de la porte.

******************************************************** *******************************

Liens de médias sociaux à suivre (je veux dire, si vous le souhaitez) :

Facebook - https://fb.me/HeathenHacks

Twitter - https://twitter.com/HeathenHacks

Instagram - https://instagr.am/HeathenHacks

******************************************************** **************************

Code

  • Vacances Arduino
Arduino HolidayArduino
#include FASTLED_USING_NAMESPACE#include #include #include #ifndef PSTR#define PSTR // Rendez Arduino Due heureux#endif#define PIN 6 //#ifdefined(FASTLED_VERSION) &&(FASTLED_VERSION <3001000)//#warning "Nécessite FastLED 3.1 ou version ultérieure ; vérifiez github pour le dernier code."//#endif#define DATA_PIN 6#define LED_TYPE WS2811#define COLOR_ORDER GRB#define NUM_LEDS 192CRGB leds[NUM_LEDS];const uint8_t kMatrixWidth =24;const uint8_t kMatrixHeight =8;const bool kMatrixSerpentineLayout =true;#define NUM_LEDS (kMatrixWidth * kMatrixWHeight kMatrixW kMatrixWhkMatrice)#define (kRIGHT_DI)Height 50#define FRAMES_PER_SECOND 120// La version 16 bits de nos coordonnéesstatic uint16_t x;static uint16_t y;static uint16_t z;Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix(24, 8, PIN, NEO_MATRIX_TOP + NEO_EOOLIVEMATRIX_RIGHTBR ); uin t16_t couleurs[] ={ matrice.Couleur(255, 0, 0), matrice.Couleur(0, 255, 0), matrice.Couleur(0, 0, 255), matrice.Couleur(0, 255, 255), matrice.Couleur (255, 0, 255), matrice.Couleur (255, 255, 0), matrice.Couleur (255, 255, 255)};uint16_t vitesse =20; // la vitesse est définie dynamiquement une fois que nous avons démarré upuint16_t scale =30; // l'échelle est définie dynamiquement une fois que nous avons démarréuint8_t noise[MAX_DIMENSION][MAX_DIMENSION];CRGBPalette16 currentPalette( PartyColors_p );uint8_t colorLoop =1;int pirSensorPin =5; // choisissez la broche d'entrée (pour le capteur PIR)int pirState =true; // nous commençons, en supposant qu'aucun mouvement n'est détectéint val =0; // variable pour lire le pin statusint minimummSecsLowForInactive =5000; // Si le capteur signale un niveau bas pendant// plus de ce temps, alors supposez qu'il n'y a aucune activité int timeLow non signé ; boolean takeLowTime ; // le temps que nous donnons au capteur pour calibrer (10-60 secondes selon la fiche technique) int calibrationTime =30;void setup() { delay(3000); // Délai de 3 secondes pour la récupération // Informez FastLED de la configuration de la bande LED FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); //FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); // définit le contrôle de luminosité principal FastLED.setBrightness(BRIGHTNESS); matrice.setTextWrap(false); matrice.setBrightness(40); matrice.setTextColor(couleurs[0]); pinMode(pirSensorPin, INPUT); // déclarer le capteur comme entrée LEDS.addLeds(leds, NUM_LEDS); x =aléatoire16(); y =aléatoire16(); z =random16();}int a =matrix.width();int pass =0;// Liste des motifs à parcourir. Chacun est défini comme une fonction distincte ci-dessous.typedef void (*SimplePatternList[])();SimplePatternList gPatterns ={ rainbow, rainbowWithGlitter, confetti, sinelon, juggle, bpm, cylon};uint8_t gCurrentPatternNumber =0; // Numéro d'index dont le motif est currentuint8_t gHue =0; // rotation de la "couleur de base" utilisée par de nombreux motifs void fadeall() { for (int i =0; i =6) passe =0 ; matrice.setTextColor(couleurs[passer]); } matrice.show(); retard (100); if (pirState) { // nous venons d'activer pirState =false; } takeLowTime =vrai; } else { // Appeler une fois la fonction de motif actuelle, en mettant à jour le tableau 'leds' gPatterns[gCurrentPatternNumber](); // envoie le tableau 'leds' à la bande LED réelle FastLED.show(); // insère un délai pour garder le framerate modeste FastLED.delay(1000 / FRAMES_PER_SECOND); // effectuer des mises à jour périodiques EVERY_N_MILLISECONDS( 20 ) { gHue++; // cycle lentement la "couleur de base" à travers l'arc-en-ciel } EVERY_N_SECONDS( 10 ) { nextPattern(); // change périodiquement les motifs } }}#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))void nextPattern(){ // ajoute un au numéro de motif actuel et retourne au end gCurrentPatternNumber =(gCurrentPatternNumber + 1) % ARRAY_SIZE( gPatterns);}void rainbow(){ // Générateur d'arc-en-ciel intégré de FastLED fill_rainbow( leds, NUM_LEDS, gHue, 7);}void rainbowWithGlitter(){ // intégré Arc-en-ciel FastLED, plus un arc-en-ciel scintillant aléatoire (); addGlitter(80);}void addGlitter( fract8 chanceOfGlitter){ if ( random8() =0; i--) { // Définit la iième led sur leds rouges[i] =CHSV(hue++, 255, 255); // Affiche les leds FastLED.show(); // maintenant que nous avons affiché les leds, réinitialisez la ième led au noir // leds[i] =CRGB::Black; fadeall(); // Attendez un peu avant de boucler et de recommencer delay(10); }}

Schémas


Processus de fabrication

  1. Visualiseur de musique Arduino DIY LUMAZOID
  2. Capteur DHT11 avec LED et haut-parleur piézo
  3. MyRiver
  4. Capteur d'obstacles simple avec Arduino
  5. Trouvez-moi
  6. Arduino quadrupède
  7. Pistolet à eau à détecteur de mouvement
  8. Sonar utilisant arduino et affichage lors du traitement de l'IDE
  9. Oscilloscope DIY 10Hz-50kHz sur écran LCD 128x64