산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

LED 매트릭스 + 모션 센서 도어 디스플레이 [Arduino Holiday]

구성품 및 소모품

Arduino UNO
× 1
Arduino Nano R3
× 1
PIR 모션 센서(일반)
× 1
릴레이(일반)
× 1
점퍼 와이어(일반)
× 1
PC PSU 전원 코드
× 1
RGB LED 스트립
× 1
8x8 네오픽셀 패널
× 3

필요한 도구 및 기계

납땜 인두(일반)
와이어 스트리퍼

이 프로젝트 정보

이 프로젝트는 3개의 WS2812B 8x8 RGB LED 매트릭스와 PIR 모션 센서를 결합하여 "해피 홀리데이 &해피 뉴 이어!"라는 텍스트로 방문객을 맞이합니다. 문에 충분히 가까울 때 센서가 근처에 사람을 감지하지 못할 때 모니터에 화면 보호기와 같은 효과 세트를 표시합니다.

Arduino UNO로 제어되며 5v 30a 전원 공급 장치로 전원이 공급됩니다.

3세트의 코드를 킷배시하거나 결합했습니다.

유휴/대기 효과에 대한 FastLED 라이브러리 DemoReel100 예제의 것.

PIR 모션 센서 코드

그리고 네오픽셀의 설정 코드라고 생각합니다. 더 이상 확실하지 않습니다. 거의 한 달 전에 코드를 함께 으깬 적이 있기 때문입니다.

또한 연장 코드를 통해 12v RGB LED 스트링이 있는 5v 릴레이에 연결되고 Arduino Nano로 제어되는 또 다른 PIR 모션 센서를 사용했습니다.

LED 스트링은 연장 코드에 연결된 휴일 조명과 함께 첫 번째 PIR 센서가 움직임을 감지하면 활성화됩니다. 계단 1층 부근의 천정에 위치하고 있습니다.

몇 단계를 올라가면 두 번째 PIR 센서가 UNO에게 누군가가 문 가까이에 있을 때 행렬에 텍스트 디스플레이를 표시하도록 지시합니다.

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

팔로우할 소셜 미디어 링크(원하는 경우):

페이스북 - https://fb.me/HeathenHacks

트위터 - https://twitter.com/HeathenHacks

인스타그램 - https://instagr.am/HeathenHacks

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

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 아두이노 홀리데이
  • Arduino HolidayArduino
    #include FASTLED_USING_NAMESPACE#include #include #include #ifndef PSTR#define PSTR // Arduino Due를 행복하게 만들기#endif#define PIN 6 //#if defined(FASTLED_VERSION) &&(FASTLED_VERSION <3001000)//#warning "FastLED 3.1 이상이 필요합니다. 최신 코드는 github에서 확인하세요."//#endif#define DATA_PIN 6#define LED_TYPE WS2811#define COLOR_ORDER GRB# 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)#defineWidth>(MAX_DkMatrixHeight)#define 50 # 정의 FRAMES_PER_SECOND 120 // 우리 coordinatesstatic uint16_t X의 16 비트 버전; ​​정적 uint16_t y를, 정적 uint16_t의 Z; Adafruit_NeoMatrix 매트릭스 =Adafruit_NeoMatrix (24, 8, PIN, NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE, NEO_GRB + NEO_KHZ800) CONST 유인 t16_t 색상[] ={ 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 속도 =20; // 속도는 일단 시작하면 동적으로 설정됩니다. upuint16_t scale =30; // 스케일은 시작하면 동적으로 설정됩니다.uint8_t noise[MAX_DIMENSION][MAX_DIMENSION];CRGBPalette16 currentPalette( PartyColors_p );uint8_t colorLoop =1;int pirSensorPin =5; // 입력 핀 선택(PIR 센서용) int pirState =true; // 움직임이 감지되지 않는다고 가정하고 시작합니다.int val =0; // 핀을 읽기 위한 변수 statusint minimummSecsLowForInactive =5000; // 센서가 이 시간 이상 동안 낮음을 보고하면// 활동이 없다고 가정합니다.long unsigned int timeLow;boolean takeLowTime;//센서에 보정을 제공한 시간(데이터시트에 따라 10-60초) int calibrationTime =30; 무효 설정() { 지연(3000); // 복구를 위한 3초 지연 // LED 스트립 구성에 대해 FastLED에 알리기 FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip); //FastLED.addLeds(LED, NUM_LEDS).setCorrection(TypicalLEDStrip); // 마스터 밝기 제어 설정 FastLED.setBrightness(BRIGHTNESS); matrix.setTextWrap(거짓); matrix.setBrightness(40); matrix.setTextColor(색상[0]); 핀모드(pirSensor핀, 입력); // 센서를 입력으로 선언 LEDS.addLeds(leds, NUM_LEDS); x =random16(); y =random16(); z =random16();}int a =matrix.width();int pass =0;// 순환할 패턴 목록. 각각은 아래에서 별도의 함수로 정의됩니다.typedef void (*SimplePatternList[])();SimplePatternList gPatterns ={ rainbow, rainbowWithGlitter, confetti, sinelon, juggle, bpm, cylon};uint8_t gCurrentPatternNumber =0; // 패턴이 currentuint8_t인 인덱스 번호 gHue =0; // 많은 패턴에서 사용되는 "기본 색상" 회전void fadeall() { for (int i =0; i =6) 통과 =0; matrix.setTextColor(색상[통과]); } matrix.show(); 지연(100); if (pirState) { // 방금 켰습니다 pirState =false; } takeLowTime =참; } else { // 현재 패턴 함수를 한 번 호출하여 'leds' 배열을 업데이트합니다. gPatterns[gCurrentPatternNumber](); // 'leds' 어레이를 실제 LED 스트립으로 보냅니다. FastLED.show(); // 프레임 속도를 적절하게 유지하기 위해 지연을 삽입합니다. FastLED.delay(1000 / FRAMES_PER_SECOND); // 주기적인 업데이트를 수행합니다. EVERY_N_MILLISECONDS( 20 ) { gHue++; // 무지개를 통해 "기본 색상"을 천천히 순환 } EVERY_N_SECONDS( 10 ) { nextPattern(); // 주기적으로 패턴 변경 } }}#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))void nextPattern(){ // 현재 패턴 번호에 1을 추가하고 end gCurrentPatternNumber =(gCurrentPatternNumber + 1) % ARRAY_SIZE( gPatterns);}void rainbow(){ // FastLED의 내장 무지개 생성기 fill_rainbow( leds, NUM_LEDS, gHue, 7);}void rainbowWithGlitter(){ // 내장 FastLED 레인보우 및 임의의 반짝이는 반짝이 레인보우(); addGlitter(80);} 무효 addGlitter( fract8 chanceOfGlitter){ if ( random8() =0; i--) { // i번째 led를 빨간색 led로 설정[i] =CHSV(hue++, 255, 255); // LED 표시 FastLED.show(); // 이제 led를 표시했으므로 i' led를 검은색으로 재설정합니다. // leds[i] =CRGB::Black; 페이달(); // 루프를 돌기 전에 잠시 기다렸다가 다시 수행합니다. delay(10); }}

    회로도


    제조공정

    1. DIY LUMAZOID Arduino 뮤직 비주얼라이저
    2. DHT11 센서(LED 및 피에조 스피커 포함)
    3. 마이리버
    4. Arduino를 사용한 간단한 장애물 센서
    5. 나를 찾기
    6. Arduino Quadruped
    7. 모션 센서 물총
    8. arduino를 사용한 소나 및 IDE 처리 시 표시
    9. 128x64 LCD 디스플레이의 DIY 10Hz-50kHz 오실로스코프
    10. 단일 LED 매트릭스 Arduino 플립 시계