Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Matriks LED + Tampilan Pintu Sensor Gerak [Arduino Holiday]

Komponen dan persediaan

Arduino UNO
× 1
Arduino Nano R3
× 1
Sensor Gerak PIR (generik)
× 1
Relai (umum)
× 1
Kabel jumper (generik)
× 1
Kabel Daya PSU PC
× 1
Strip LED RGB
× 1
Panel Neopiksel 8x8
× 3

Alat dan mesin yang diperlukan

Besi solder (generik)
Wire Stripper

Tentang proyek ini

Proyek ini menggabungkan 3 matriks LED WS2812B 8x8 RGB dan sensor gerak PIR untuk menyambut pengunjung dengan teks bertuliskan "Happy Holidays &Happy New Year!" ketika mereka cukup dekat dengan pintu dan menampilkan serangkaian efek seperti screensaver pada monitor ketika sensor tidak mendeteksi siapa pun di dekatnya.

Ini dikendalikan oleh Arduino UNO dan ditenagai oleh catu daya 5v 30a.

Saya melakukan kitbashed atau menggabungkan 3 set kode.

Yang dari perpustakaan FastLED DemoReel100 Contoh untuk Efek Idle/Standby.

Kode Sensor Gerak PIR

Dan kode pengaturan untuk Neopixel, saya pikir. Saya tidak begitu yakin lagi, tbh,, karena itu hampir sebulan yang lalu ketika saya menggabungkan kode-kode itu.

Saya juga menggunakan sensor gerak PIR lain yang terhubung ke Relay 5v dengan LED String 12v RGB melalui kabel ekstensi dan dikendalikan oleh Arduino Nano.

Senar LED, bersama dengan lampu liburan yang juga terhubung ke kabel ekstensi akan diaktifkan saat sensor PIR pertama mendeteksi gerakan. Itu terletak di langit-langit dekat anak tangga pertama.

Setelah beberapa langkah naik, sensor PIR ke-2 memberi tahu UNO untuk menampilkan tampilan Teks pada matriks ketika seseorang cukup dekat dengan pintu.

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

Tautan Media Sosial Untuk Diikuti (maksud saya, jika Anda mau):

Facebook - https://fb.me/HeathenHacks

Twitter - https://twitter.com/HeathenHacks

Instagram - https://instagr.am/HeathenHacks

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

Kode

  • Liburan Arduino
Liburan ArduinoArduino
#include FASTLED_USING_NAMESPACE#include #include #include #ifndef PSTR#define PSTR // Buat Arduino Due senang#endif#define PIN 6 //#jika didefinisikan(FASTLED_VERSION) &&(FASTLED_VERSION <3001000)//#peringatan "Memerlukan FastLED 3.1 atau yang lebih baru; periksa github untuk kode terbaru."//#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 * kMatrixHeight) # define MAX_DIMENSION ((kMatrixWidth> kMatrixHeight) kMatrixWidth:? kMatrixHeight) # define BRIGHTNESS 50#define FRAMES_PER_SECOND 120// Versi 16 bit dari koordinat kitastatic uint16_t x;static uint16_t y;static uint16_t z;Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix(24, 8, PIN, NEO_MATRIX_TOP + NIGHTEO_MATRIX_MATRIX_HEO_PROCOL_MATRIX_MATRIXEO + NEOCOL_MATRIX_MATRIXEO_MATRIX_MATRIX_MATRIX uin t16_t warna[] ={ 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 speed =20; // kecepatan disetel secara dinamis setelah kita memulai upuint16_t scale =30; // skala disetel secara dinamis setelah kita memulai noise[MAX_DIMENSION][MAX_DIMENSION];CRGBPalette16 currentPalette( PartyColors_p );uint8_t colorLoop =1;int pirSensorPin =5; // pilih pin input (untuk sensor PIR)int pirState =true; // kita mulai, dengan asumsi tidak ada gerakan yang terdeteksiint val =0; // variabel untuk membaca pin statusint minimummSecsLowForInactive =5000; // Jika sensor melaporkan rendah untuk// lebih dari waktu ini, maka asumsikan tidak ada aktivitaslong unsigned int timeLow;boolean takeLowTime;//waktu yang kami berikan pada sensor untuk mengkalibrasi (10-60 detik menurut lembar data)int kalibrasiTime =30;pengaturan batal() { penundaan(3000); // 3 detik penundaan untuk pemulihan // beri tahu FastLED tentang konfigurasi strip LED FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); //FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); // setel kontrol kecerahan master FastLED.setBrightness(BRIGHTNESS); matrix.setTextWrap(salah); matrix.setBrightness(40); matrix.setTextColor(warna[0]); pinMode(pirSensorPin, INPUT); // mendeklarasikan sensor sebagai input LEDS.addLeds(leds, NUM_LEDS); x =acak16(); y =acak16(); z =random16();}int a =matrix.width();int pass =0;// Daftar pola untuk digilir. Masing-masing didefinisikan sebagai fungsi terpisah di bawah ini.typedef void (*SimplePatternList[])();SimplePatternList gPatterns ={ rainbow, rainbowWithGlitter, confetti, sinelon, juggle, bpm, cylon};uint8_t gCurrentPatternNumber =0; // Nomor indeks dengan pola saat ini8_t gHue =0; // memutar "warna dasar" yang digunakan oleh banyak polavoid fadeall() { for (int i =0; i =6) lulus =0; matrix.setTextColor(warna[lulus]); } matriks.tampilkan(); penundaan(100); if (pirState) { // kita baru saja mengaktifkan pirState =false; } takeLowTime =benar; } else { // Memanggil fungsi pola saat ini sekali, memperbarui array 'leds' gPatterns[gCurrentPatternNumber](); // kirim larik 'leds' ke strip LED aktual FastLED.show(); // masukkan penundaan untuk menjaga kecepatan bingkai FastLED.delay(1000 / FRAMES_PER_SECOND); // lakukan beberapa pembaruan berkala SETIAP_N_MILLISECONDS( 20 ) { gHue++; // perlahan siklus "warna dasar" melalui pelangi } EVERY_N_SECONDS( 10 ) { nextPattern(); // ubah pola secara berkala } }}#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))void nextPattern(){ // tambahkan satu ke nomor pola saat ini, dan bungkus di end gCurrentPatternNumber =(gCurrentPatternNumber + 1) % ARRAY_SIZE( gPatterns);}void rainbow(){ // FastLED's built-in rainbow generator fill_rainbow( leds, NUM_LEDS, gHue, 7);}void rainbowWithGlitter(){ // built-in Pelangi FastLED, ditambah beberapa pelangi gemerlap gemerlap acak(); addGlitter(80);}void addGlitter( fract8 chanceOfGlitter){ if ( random8() =0; i--) { // Atur led ke-i ke led merah[i] =CHSV(hue++, 255, 255); // Menampilkan led FastLED.show(); // sekarang setelah kita menunjukkan led, setel ulang led ke-i menjadi hitam // leds[i] =CRGB::Black; memudar(); // Tunggu sebentar sebelum kita mengulang dan melakukannya lagi delay(10); }}

Skema


Proses manufaktur

  1. DIY LUMAZOID Arduino Music Visualizer
  2. Sensor DHT11 dengan LED dan Speaker Piezo
  3. MyRiver
  4. Sensor Kendala Sederhana dengan Arduino
  5. Temukan Saya
  6. Arduino Quadruped
  7. Sensor Gerakan Pistol Air
  8. Sonar menggunakan arduino dan ditampilkan pada pemrosesan IDE
  9. Osiloskop DIY 10Hz-50kHz pada Layar LCD 128x64
  10. Matriks LED Tunggal Arduino Flip Clock