본문 바로가기

Embedded System/Arduino Board

[Arduino] 아두이노 8x8 Matrix Dot LED(1088BS)제어하기 (7)

반응형

 


 

안녕하세요.

이번 포스팅에서는 8개의 열과 8의 행으로 이루어져 총 64개의 LED로 구성된 가로8 세로8 배열의 LED에 대해 알아보고 아두이노를 통해 동작시켜 보겠습니다.


 

8x8 매트릭스 LED는 8개의 행과 8개의 열로 구성된 총 64개의 LED가 배열된 디스플레이 모듈입니다. 각 LED는 행과 열의 교차점에 위치하며, 이를 통해 다양한 문자, 도형 및 애니메이션을 표시할 수 있습니다. 이 매트릭스 LED는 아두이노와 같은 마이크로컨트롤러와 쉽게 연동할 수 있습니다.

 

※1.  8X8 Dot Matrix LED 구조 및 제어

[ 8x8 매트릭스 LED 구조]

 

  • 행과 열:
    • 8x8 매트릭스 LED는 8개의 행(Row)과 8개의 열(Column)로 구성됩니다.
    • 각 행과 열은 개별적으로 제어할 수 있으며, 이를 통해 특정 LED를 켜거나 끌 수 있습니다.
  • 공통 애노드와 공통 캐소드:
    • 매트릭스 LED는 공통 애노드(Common Anode) 또는 공통 캐소드(Common Cathode) 방식으로 설계될 수 있습니다.(사용자의 설계 방식에 따름)
    • 공통 애노드 방식에서는 행이 양극이고 열이 음극이며, 공통 캐소드 방식에서는 행이 음극이고 열이 양극입니다.

 

아래 테스트에 사용한 모듈은1088BS로  오른쪽 모듈입니다.(2개의 핀 위치에 따라 극성이 다릅니다.)


※2. Wiring (배선 연결)

저항은 330[ohm] 사용하였습니다. 100~1000 [ohm]을 사용하세요.

-~

 

 

 

 

※3. 소스코드 및 동작

하트, 엑스, 다이아몬드, 세모, 네모를 순차적으로 디스플레이 하는 코드를 실행해 보겠습니다.

1. 소스코드

코드는 아래와 같습니다. (코드는 첨부파일로 제공해 드립니다.)

7_8X8DoteMatrix.ino
0.00MB

const int rowPins[8] = {A0, 12, A2, 13, 5, A3, 7, 2};
const int colPins[8] = {9, 8, 4, A1, 3, 10, 11, 6};

// 'X' 패턴을 나타내는 8x8 배열
byte xPattern[8] = {
  B10000001,
  B01000010,
  B00100100,
  B00011000,
  B00011000,
  B00100100,
  B01000010,
  B10000001
};

// '하트' 패턴을 나타내는 8x8 배열
byte HEARTPattern[8] = {
  B00100100,
  B01111110,
  B11111111,
  B11111111,
  B11111111,
  B01111110,
  B00111100,
  B00011000
};

// '원' 패턴을 나타내는 8x8 배열
byte CIRCLEPattern[8] = {
  B00011000,
  B00111100,
  B01111110,
  B11111111,
  B11111111,
  B01111110,
  B00111100,
  B00011000
};

// '세모' 패턴을 나타내는 8x8 배열
byte TRIPattern[8] = {
  B00011000,
  B00011000,
  B00111100,
  B00111100,
  B01111110,
  B01111110,
  B11111111,
  B11111111
};

// '네모' 패턴을 나타내는 8x8 배열
byte RECTPattern[8] = {
  B11111111,
  B11111111,
  B11111111,
  B11111111,
  B11111111,
  B11111111,
  B11111111,
  B11111111
};


void setup() {
  // 행 핀을 출력으로 설정
  for (int i = 0; i < 8; i++) {
    pinMode(rowPins[i], OUTPUT);
    digitalWrite(rowPins[i], LOW); // 초기화: 모든 행을 LOW로 설정
  }

  // 열 핀을 출력으로 설정
  for (int i = 0; i < 8; i++) {
    pinMode(colPins[i], OUTPUT);
    digitalWrite(colPins[i], HIGH); // 초기화: 모든 열을 HIGH로 설정 (LED 비활성화)
  }
}

void loop() {
 for (int R=0; R<50; R++){
  for (int row = 0; row < 8; row++) {
    digitalWrite(rowPins[row], HIGH); // 현재 행 활성화
    for (int col = 0; col < 8; col++) {
      digitalWrite(colPins[col], bitRead(HEARTPattern[row], col) == 1 ? LOW : HIGH); // 열 제어
    }
    delay(2); // 짧은 지연 (멀티플렉싱 효과)
    digitalWrite(rowPins[row], LOW); // 현재 행 비활성화
  }
 }

 for (int R=0; R<50; R++){
    for (int row = 0; row < 8; row++) {
    digitalWrite(rowPins[row], HIGH); // 현재 행 활성화
    for (int col = 0; col < 8; col++) {
      digitalWrite(colPins[col], bitRead(xPattern[row], col) == 1 ? LOW : HIGH); // 열 제어
    }
    delay(2); // 짧은 지연 (멀티플렉싱 효과)
    digitalWrite(rowPins[row], LOW); // 현재 행 비활성화
  }
 }


  for (int R=0; R<50; R++){
    for (int row = 0; row < 8; row++) {
    digitalWrite(rowPins[row], HIGH); // 현재 행 활성화
    for (int col = 0; col < 8; col++) {
      digitalWrite(colPins[col], bitRead(CIRCLEPattern[row], col) == 1 ? LOW : HIGH); // 열 제어
    }
    delay(2); // 짧은 지연 (멀티플렉싱 효과)
    digitalWrite(rowPins[row], LOW); // 현재 행 비활성화
  }
 }

  for (int R=0; R<50; R++){
    for (int row = 0; row < 8; row++) {
    digitalWrite(rowPins[row], HIGH); // 현재 행 활성화
    for (int col = 0; col < 8; col++) {
      digitalWrite(colPins[col], bitRead(TRIPattern[row], col) == 1 ? LOW : HIGH); // 열 제어
    }
    delay(2); // 짧은 지연 (멀티플렉싱 효과)
    digitalWrite(rowPins[row], LOW); // 현재 행 비활성화
  }
 }

  for (int R=0; R<50; R++){
    for (int row = 0; row < 8; row++) {
    digitalWrite(rowPins[row], HIGH); // 현재 행 활성화
    for (int col = 0; col < 8; col++) {
      digitalWrite(colPins[col], bitRead(RECTPattern[row], col) == 1 ? LOW : HIGH); // 열 제어
    }
    delay(2); // 짧은 지연 (멀티플렉싱 효과)
    digitalWrite(rowPins[row], LOW); // 현재 행 비활성화
  }
 }
}

 

 

2. 하드웨어 연결 및 동작 확인

다양한 모양이 순차적으로 출력됨을 확인할 수 있습니다.

 

 

 

 

 

이상으로 아두이노에서 8X8 Matrix dot LED를 다루는 방법에 대한 설명을 마치겠습니다.

다름 포스트에서 3색 Color LED를 다루는 방법에 대해 다루겠습니다.

감사합니다.

 

반응형