아예 '초보운전'이라고 광고를 하지그래? 그래서 만들어 봤습니다!! 아두이노로 초보운전 전광판 달기! LED Matrix WS2812 8x32 아두이노로 켜기 아두이노LED
운전면허를 따긴 했지만 차를 운전하고 다니지 않아서 장롱면허인데요ㅋㅋ
저와 같은 초보 운전들을 위한!!
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 라이브러리를 다운받아야 하는데요
다운 받으셔야 작동합니다.
코드
#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();
}
저는 초록색이 눈에 편할까 하는 생각에 초록색으로 설정하도록 하겠습니다.
우노 보드에 업로드를 완료하면 그 자체로도 불이 켜지지만
저는 차 뒷면에 붙일것 이기 때문에
이동가능한 베터리 전원을 사용하여 켜보겠습니다!

성공!!!
사용하기

성공!
외부샷
내부샷


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