Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

LED-matrix + bewegingssensor deurdisplay [Arduino Holiday]

Componenten en benodigdheden

Arduino UNO
× 1
Arduino Nano R3
× 1
PIR-bewegingssensor (algemeen)
× 1
Relais (algemeen)
× 1
Jumperdraden (algemeen)
× 1
PC PSU-netsnoer
× 1
RGB LED-strip
× 1
8x8 Neopixel-paneel
× 3

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Draadstripper

Over dit project

Dit project combineert 3 WS2812B 8x8 RGB LED-matrices en een PIR-bewegingssensor om bezoekers te begroeten met een tekst met de tekst "Happy Holidays &Happy New Year!" wanneer ze dicht genoeg bij de deur zijn en een reeks effecten zoals een screensaver op monitoren weergeven wanneer de sensor niemand in de buurt detecteert.

Het wordt bestuurd door een Arduino UNO en aangedreven door een 5v 30a voeding.

Ik heb 3 sets codes gekitbashed of gecombineerd.

Die uit de FastLED-bibliotheek DemoReel100 Voorbeeld voor de Idle/Standby-effecten.

De PIR-bewegingssensorcode

En de setup-code voor de Neopixel, denk ik. Ik weet het niet meer zeker, tbh, want dat was bijna een maand geleden toen ik de codes door elkaar haalde.

Ik heb ook een andere PIR-bewegingssensor gebruikt die via een verlengsnoer is aangesloten op een 5v-relais met een 12v RGB LED-string en wordt bestuurd door een Arduino Nano.

De LED String, samen met de vakantieverlichting die ook is aangesloten op het verlengsnoer, wordt geactiveerd wanneer de 1e PIR-sensor beweging detecteert. Het bevindt zich aan het plafond bij de 1e trede van de trap.

Na een paar stappen omhoog te gaan, vertelt de 2e PIR-sensor de UNO om de tekstweergave op de matrixen weer te geven wanneer iemand dicht genoeg bij de deur is.

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

Links naar sociale media om te volgen (ik bedoel, als je dat wilt):

Facebook - https://fb.me/HeathenHacks

Twitter - https://twitter.com/HeathenHacks

Instagram - https://instagr.am/HeathenHacks

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

Code

  • Arduino vakantie
Arduino VakantieArduino
#include FASTLED_USING_NAMESPACE#include #include #include #ifndef PSTR#define PSTR // Maak Arduino Due blij#endif#define PIN 6 //#ifdefined(FASTLED_VERSION) &&(FASTLED_VERSION <3001000)//#warning "Vereist FastLED 3.1 of hoger; controleer github voor de laatste 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) kMatrixWidth * kMatrixHeight)#define MAXkMatrixNESSION N#define FRAMES_PER_SECOND 120// De 16-bits versie van onze coördinatenstatic uint16_t x;static uint16_t y;static uint16_t z;Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix(24, 8, PIN, NEO_MATRIX_TOP + NEO_MATRIX_HTRIXEOCUM_CONNUM_NEO_MATRIX_HTRIXEOCUM_+NEO_MATRIX_HTRIXEOCUM_+); uin t16_t kleuren [] ={ matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255), matrix.Color(0, 255, 255), matrix.Color(255, 0, 255), matrix.Color(255, 255, 0), matrix.Color(255, 255, 255)};uint16_t snelheid =20; // snelheid wordt dynamisch ingesteld zodra we zijn gestart upuint16_t scale =30; // schaal wordt dynamisch ingesteld zodra we zijn gestartuint8_t noise [MAX_DIMENSION][MAX_DIMENSION];CRGBPalette16 currentPalette( PartyColors_p);uint8_t colorLoop =1;int pirSensorPin =5; // kies de invoerpin (voor PIR-sensor) int pirState =true; // we beginnen, ervan uitgaande dat er geen beweging is gedetecteerd.int val =0; // variabele voor het lezen van de pinstatusint minimummSecsLowForInactive =5000; // Als de sensor laag rapporteert voor// meer dan deze tijd, neem dan aan dat er geen activiteit islong unsigned int timeLow;boolean takeLowTime;//de tijd die we de sensor geven om te kalibreren (10-60 seconden volgens de datasheet)int calibratieTime =30; ongeldige setup () { vertraging (3000); // 3 seconden vertraging voor herstel // vertel FastLED over de ledstripconfiguratie FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); //FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); // stel hoofdhelderheidsregeling in FastLED.setBrightness (BRIGHTNESS); matrix.setTextWrap(false); matrix.setBrightness(40); matrix.setTextColor(kleuren[0]); pinMode (pirSensorPin, INPUT); // verklaar sensor als invoer LEDS.addLeds  (leds, NUM_LEDS); x =willekeurig16(); y =willekeurig16(); z =random16();}int a =matrix.width();int pass =0;// Lijst met patronen om doorheen te bladeren. Elk wordt hieronder gedefinieerd als een afzonderlijke functie.typedef void (*SimplePatternList[])();SimplePatternList gPatterns ={ rainbow, rainbowWithGlitter, confetti, sinelon, juggle, bpm, cylon};uint8_t gCurrentPatternNumber =0; // Indexnummer waarvan het patroon currentuint8_t gHue =0 is; // roterende "basiskleur" gebruikt door veel van de patternsvoid fadeall() { for (int i =0; i =6) pass =0; matrix.setTextColor(kleuren[pass]); } matrix.show(); vertraging (100); if (pirState) { // we hebben zojuist pirState =false ingeschakeld; } takeLowTime =waar; } else { // Roep de huidige patroonfunctie één keer aan, waarbij de 'leds'-array gPatterns[gCurrentPatternNumber](); // stuur de 'leds'-array naar de eigenlijke ledstrip FastLED.show(); // voeg een vertraging in om de framerate bescheiden te houden FastLED.delay (1000 / FRAMES_PER_SECOND); // doe wat periodieke updates EVERY_N_MILLISECONDS (20) { gHue++; // laat de "basiskleur" langzaam door de regenboog lopen } EVERY_N_SECONDS( 10) { nextPattern(); // verander regelmatig patronen } }}#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))void nextPattern(){ // voeg een toe aan het huidige patroonnummer en wikkel rond bij de end gCurrentPatternNumber =(gCurrentPatternNumber + 1) % ARRAY_SIZE(gPatterns);}void rainbow(){ // FastLED's ingebouwde regenbooggenerator fill_rainbow(leds, NUM_LEDS, gHue, 7);}void rainbowWithGlitter(){ // ingebouwd FastLED-regenboog, plus een willekeurige sprankelende glitterregenboog (); addGlitter(80);}void addGlitter(fract8 chanceOfGlitter){ if (random8() =0; i--) {// Zet de i'th led op rode leds [i] =CHSV (hue++, 255, 255); // Toon de leds FastLED.show(); // nu we de leds hebben getoond, reset de i'th led naar zwart // leds[i] =CRGB::Black; fadeall(); // Wacht een beetje voordat we een lus maken en het opnieuw doen delay (10); }}

Schema's


Productieproces

  1. DIY LUMAZOID Arduino Music Visualiser
  2. DHT11-sensor met LED's en een piëzo-luidspreker
  3. MyRiver
  4. Eenvoudige obstakelsensor met Arduino
  5. Vind mij
  6. Arduino Quadruped
  7. Bewegingssensor-waterpistool
  8. Sonar met arduino en weergave op verwerkings-IDE
  9. DIY 10Hz-50kHz Oscilloscoop op 128x64 LCD-scherm
  10. Enkele LED Matrix Arduino Flip Clock
  11. Een LED-matrix besturen met Arduino Uno