이런거 저런거 그런거
8x8 LED 매트릭스에서 LED 하나 깜박거리게 해보기 본문
8x8 LED 매트릭스 64개 led 중 우선 하나만 컨트롤 해 보려고 한다.
물론 인터넷에 찾아보면 연결 방법과 예제 코드가 넘치지만 사용하지 않고 하나하나 해 보려고한다.
우선 구입 사이트에 있는 제품 설명을 확인
위 내용에 따르면 9번 핀과 13번 핀을 사용하면 왼쪽 위 모서리에 있는 Led 하나를 컨트롤(껏다, 켰다) 할 수 있다.
□ 켜는 방법 : 9번 핀을 HIGH, 13번 핀을 LOW
□ 끄는 방법
- 9번 핀을 Low로 두거나
- 13번 핀을 High로 둠
그렇다면 8x8 LED 매트릭스에서 9번핀과 13번 핀의 위치는 어디냐?
밑면을 보면 반원모양으로 작게 튀어나온 면이 있다.
그 면을 기준으로 뒤집어서 보았을 때 시계방향으로 1~8, 9~16핀이다.
다음은 아두이노의 어디에 연결시킬 것인가?
아두이노에 디지털핀은 총 14개 핀이 존재한다.
그 중 0번과 1번은 Serial Rx/Tx이므로 냅두고 그 다음인 2번,3번 핀에 매트릭스의 9번, 13번을 연결한다.
이렇게 아두이노의 2번과 3번을 GPIO로 사용하여 컨트롤 할 것이다.
(※ GPIO : https://en.wikipedia.org/wiki/General-purpose_input/output)
아래와 같이 코드를 작성해서 돌려보면~
#define MATRIX_9 (2) //Matrix의 9번 핀을 컨트롤 하는 아두이노의 핀 번호 : 2
#define MATRIX_13 (3) //Matrix의 13번 핀을 컨트롤 하는 아두이노의 핀 번호 : 3
void setup() {
// 해당 핀에 대해 출력 설정을 해 준다.
pinMode(MATRIX_9, OUTPUT);
pinMode(MATRIX_13, OUTPUT);
//처음 상태는 LED 끄기
digitalWrite(MATRIX_9, LOW);
digitalWrite(MATRIX_13, LOW);
}
void loop() {
digitalWrite(MATRIX_9, LOW); //LED를 끈다
delay(1000);
digitalWrite(MATRIX_9, HIGH); //LED를 켠다
delay(1000);
}
완성~
이처럼 원하는 row/col에 맞춰 컨트롤 하면 Matrix LED에서 원하는 위치에 켜고 끌 수 있다.
(ex> 제일 아래 오른쪽 led를 켜고 끄고 싶다면 아두이노 2번 핀 -> Matrix 5번 핀, 아두이노 3번 핀 -> Matrix 16번 핀에 연결)
- 끝 -
'이것저것 해보기 > 아두이노 가지고 놀기' 카테고리의 다른 글
조도센서값을 도트 매트릭스에 표시하기 (0) | 2019.09.22 |
---|---|
Matrix LED를 좀 쉽게 컨트롤하는 방법(MAX7219) (0) | 2019.09.21 |
8x8 Led Matrix를 전체 컨트롤 해 보기 (0) | 2019.09.17 |
8x8 LED 매트릭스 한 줄 컨트롤 해보기 (0) | 2019.09.08 |
아두이노 구입 및 개발환경 설정하기 (0) | 2019.09.08 |