운전면허를 따긴 했지만 차를 운전하고 다니지 않아서 장롱면허인데요ㅋㅋ
저와 같은 초보 운전들을 위한!!
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();
}
저는 초록색이 눈에 편할까 하는 생각에 초록색으로 설정하도록 하겠습니다.
우노 보드에 업로드를 완료하면 그 자체로도 불이 켜지지만
저는 차 뒷면에 붙일것 이기 때문에
이동가능한 베터리 전원을 사용하여 켜보겠습니다!
성공!!!
사용하기
성공!
외부샷
내부샷
이제 초보운전이라고 광고하고 다닐수 있게 되었습니다!! 하하하핳
'IOT 로봇 아두이노 > 아두이노 기본센서 연결하기' 카테고리의 다른 글
NodeMCU Led 원격제어 (웹 서버) [아두이노] (1) | 2023.05.01 |
---|---|
ESP32 와이파이 가능한 IoT 만들기 LED 연결 [아두이노] (0) | 2023.04.27 |
라인프렌즈 브라운 눈에 LED 광선 만들기 [아두이노 LED 사용] (0) | 2023.04.19 |
[아두이노 응용] 온습도 센서 + ESP-01 연결하여 Blynk에 표시하기 (1) | 2021.08.18 |
[아두이노 응용] 온도 습도 LCD로 출력하기 (2) | 2021.08.18 |
댓글