코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-08-07 10:35:11
8x8 LED matrix를 이용하여 랜덤하게 각 LED Pixel마다 색을 뿌려주는 소스를 실행해보고 회로를 구성해보자.
8x8 LED matrix는 다양한 색상을 각 픽셀마다 뿌려줌으로 다양한 색상패턴이나 짧은 글귀나 간단한 그림을 표현할 수 있는 매력적인 키트이다.
LED dot matrix는 알다시피 다양한 크기로 소, 대형 전광판에 많이 쓰이고
특정 미술작품이나, 대형 화면에도 쓰이기도 한다.
LED dot matrix는 대부분 컴퓨터 프로그램을 통해 만들어지고 제어하는데 이제는 LED dot matrix 아두이노 키트가 존재하고
다양한 크기로 개발 중이기 때문에 아두이노를 통해 제어하고 꾸미기가 이제는 얼마든지 가능하다.
LED dot matrix의 가장 큰 장점은 화면에 다양한 모양을 사용자의 입맛에 꾸밀 수 있다는 점이 장점이다.
마치 캔버스에 작품을 만드는 것처럼 패턴이나 도형에는 제한이 없기 때문에 무궁무진한 나만의 LED matrix를 만들 수 있다.
NO | 부 품 명 | 수 량 | 상 세 정 보 |
1 | 아두이노 | 1 | 오렌지 보드 |
2 | 브레드보드 | 1 | |
3 | 8x8 LED matrix | 1 | adafruit 구입 |
4 | 케이블 |
부품명 | 아두이노 | 브레드보드 | 8x8 LED matrix | 케이블 |
부품사진 |
8x8 LED matrix
adafruit사이트에서 구매가 가능하다. 다양한 종류가 있지만 adafruit에서 구매한 matrix를 기준으로 사용한다.
8x8Matrix는 4개의 핀으로 구성되어 있다. 자세히보면 순서대로 +, -, D, C라고 적혀져 있는데 UNO 기준으로 저 순서대로 5v, GND, Analog4번핀, Analog5번핀에 연결해 주면 된다.
/*
www.adafruit.com
*/
#include
#include
#include
Adafruit_BicolorMatrix matrix = Adafruit_BicolorMatrix();
void setup() {
matrix.begin(0x70);
}
void loop() {
uint16_t color = random(4); //0-3까지의 숫자 중 랜덤으로 하나를 색상으로 지정한다.
int x = random(8); //0부터 7까지의 값 중 하나를 랜덤하게 x값으로 받는다
int y = random(8); //0부터 7까지의 값 중 하나를 랜덤하게 y값으로 받는다
matrix.drawPixel(x,y,color); //matrix에 랜덤으로 구한 x값, y값에 랜덤으로 지정된 색을 입힌다.
matrix.writeDisplay(); //LED디스플레이에 색을 출력한다.
delay(2);
}
8x8 LED matrix를 사용하기 위해서는 일단 외부라이브러리 2개가 필요한데
받아야할 라이브러리 2개는 Adafruit-LED-Backpack-Library와 Adafruit-GFX-Library로 링크를 통해 내려받을 수 있다.
문자사이의 -는 _으로 바꾸던가 아니면 빼서 공백을 없애고 라이브러리에 추가하면 된다.
소스에서는 외부라이브러리를 가지고 matrix라는 객체를 생성한다.
그 객체에 4가지의 랜덤한 색깔(예상으로는 빨강, 노랑, 초록, 무색으로 추정된다)을 x좌표 y좌표 또한 0부터 7까지의 숫자를 무작위로 받아서 drawPixel이라는 함수를 통해 특정 좌표에 4가지 색깔 중 하나를 뿌려주게 된다.
외부 라이브러리를 사용하기 때문에 자세한 소스 분석은 라이브러리의 분석이 필요하므로 분석이 필요하지 않은 사용자는 붙여넣기를 통해 사용하면 된다.
이 밖에도 라이브러리 안에 많은 예제소스가 있기 때문에 더 많은 정보를 원하는 사용자는 예제를 사용하면 된다.
※참고
아두이노 1.0.5버전을 사용하면 컴파일시에 에러가 뜰 수 있는데 그때에는 아두이노 기본 라이브러리인 robot_control이라는 라이브러리를 삭제해주면 에러없이 업로드 할 수 있다.
(robot_control라이브러리와 충돌을 일으키는듯하다)
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!