본문 바로가기
IOT 로봇 아두이노/아두이노 기본센서 연결하기

아예 '초보운전'이라고 광고를 하지그래? 그래서 만들어 봤습니다!! 아두이노로 초보운전 전광판 달기! LED Matrix WS2812 8x32 아두이노로 켜기 아두이노LED

by Jango_infoinno 2023. 5. 9.

 

운전면허를 따긴 했지만 차를 운전하고 다니지 않아서 장롱면허인데요ㅋㅋ

저와 같은 초보 운전들을 위한!!

LED로 초보운전 전광판을 만들어보겠습니다!!

초보운전자는 잔소리를 많이 듣게 됩니다!

안전때문에 들을 수 밖에 없어요

"아예 '초보운전'이라고 광고를 하지그래?"

라고 잔소리하시는 분들의 요청에 힘입어!

전광판을 만들어 보도록 하겠습니다!! ㅎㅎㅎㅎ

해외에서 직수입한 LED Matrix WS2812 8x32

행 --- 8줄

열 | 32줄

WS2812B RGB LED 8x32 모듈 매트릭스 스크린 DC5V 를 사용해 보겠습니다!!

뒷면을 보면 3파트로 나뉘는데요!

전부 5V 와 GND 는 전원 공급하기위해 공통으로 있고,

왼쪽에는 DIN 데이터 들어가는곳 인듯합니다.

오른쪽에는 DOUT 데이터가 나오는곳? (확실치 않음)이 부분은 사용하지 않을겁니다!

제가 사용할 부분은 왼쪽 DIN이 있는 쪽만 사용할 것 입니다.

 

연결 선은 3개만 준비하시면 됩니다.

 

 

PIN 12 번 ---- DIN 연결

5V ---- 5V 연결

GND ---- GND 연결

 

연결 완료 하셨으면 코드를 볼까요?

코드 입력 전에 FastLED.h 를 include하려면 FastLED 라이브러리를 다운받아야 하는데요

FastLED-3.5.0.zip
0.36MB

다운 받으셔야 작동합니다. 

코드 

#include <FastLED.h>
#define NUM_LEDS 256
#define DATA_PIN 12

      // y * x = 8 * 32 / leds_base[y][x] / leds_base[i][j]
      int y = 8;
      int x = NUM_LEDS / y;

CRGB leds_base[8][32]={

{0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0},
{0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0},
{1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,1,0},
{0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,1,0},
{0,1,0,0,0,1,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0},
{1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0},
{1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0}

};

CRGB leds[NUM_LEDS];
CRGB green= CRGB(0, 255, 0); // 파란색

void setup() {
  FastLED.addLeds<WS2812,DATA_PIN,RGB>(leds,NUM_LEDS);
  FastLED.setBrightness(20);
}

void clearall(){
  
  for(int m=0;m<NUM_LEDS;m++){
    leds[m]=CRGB::Black;
    FastLED.show();
    delay(1);
  }
}

void writea(){
  for(int i = 0; i < y; i++) {
    for(int j = 0; j < x; j++) {
      int index;
      if(j % 2 == 0) {
        // 짝수 번째 행은 좌에서 우로 이동하므로
        index = j * 8 + i;
      } else {
        // 홀수 번째 행은 우에서 좌로 이동하므로
        index = j * 8 + (7 - i);
      }

      leds[index] = leds_base[i][j];
    }
  }

  for(int k = 0; k < NUM_LEDS; k++){
    if(leds[k] == 1){
      leds[k] = green;
    }
    else{
      leds[k] = CRGB::Black;
    }
      
    FastLED.show();
    delay(0);
  }
//  delay(100);
}

void writeb(){
  int index = 0;
  for(int i = 0; i < x; i++) {
    for(int j = 0; j < y; j++) {
      
      leds[index] = green;
      index++;
      
      FastLED.show();
      delay(1);
    }
  }
}

void loop() {
  writea();
  //writeb();
  delay(1000);
  clearall();
}

저는 초록색이 눈에 편할까 하는 생각에 초록색으로 설정하도록 하겠습니다.

우노 보드에 업로드를 완료하면 그 자체로도 불이 켜지지만

저는 차 뒷면에 붙일것 이기 때문에

이동가능한 베터리 전원을 사용하여 켜보겠습니다!

성공!!!

 

사용하기

성공!

 

 

외부샷

내부샷

이제 초보운전이라고 광고하고 다닐수 있게 되었습니다!! 하하하핳

 

 

 

반응형

댓글