이런거 저런거 그런거

8x8 LED 매트릭스에서 LED 하나 깜박거리게 해보기 본문

이것저것 해보기/아두이노 가지고 놀기

8x8 LED 매트릭스에서 LED 하나 깜박거리게 해보기

빵진 2019. 9. 8. 20:05

8x8 LED 매트릭스 64개 led 중 우선 하나만 컨트롤 해 보려고 한다.

물론 인터넷에 찾아보면 연결 방법과 예제 코드가 넘치지만 사용하지 않고 하나하나 해 보려고한다.

 

우선 구입 사이트에 있는 제품 설명을 확인

1088BS

위 내용에 따르면 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번 핀에 연결)

 

- 끝 -

Comments