본문 바로가기
  • You find inspiration to create your own path !
★ 아두이노

아두이노 호환 보드 & MAX7219CNG #4

by ToolBOX01 2025. 9. 28.
반응형

▣ MAX7219CNG LED 주소 위치 

 

  • MAX7219는 최대 8개의 8x8 LED 매트릭스 디스플레이를 데이지 체인(Daisy Chain) 방식으로 연결하여 제어할 수 있습니다.
  • LedControl 라이브러리는 여러 MAX7219 모듈을 관리할 수 있도록 설계되었으며, 각 모듈(또는 디스플레이)은 0부터 시작하는 인덱스로 식별됩니다.
  • 예를 들어, 3개의 MAX7219 모듈이 연결되어 있다면, 각각 디스플레이 0, 디스플레이 1, 디스플레이 2로 참조됩니다.

▷ (0,0) 위치의 LED를 ON/OFF 예시 코드

#include <LedControl.h>

// LedControl 객체 생성: (DIN 핀, CLK 핀, CS 핀, 디바이스 수)
LedControl lc = LedControl(12, 11, 10, 1);

void setup() {
  // MAX7219 초기화
  lc.shutdown(0, false);       // 0번 디스플레이 전원 켜기
  lc.setIntensity(0, 8);      // 밝기 설정 (0~15, 8은 중간 밝기)
  lc.clearDisplay(0);         // 디스플레이 초기화
}

void loop() {
  // (0,0) 위치 LED 켜기
  lc.setLed(0, 0, 0, true);   // 디스플레이 0, 행 0, 열 0, 상태: ON
  delay(500);                 // 500ms 대기

  // (0,0) 위치 LED 끄기
  lc.setLed(0, 0, 0, false);  // 디스플레이 0, 행 0, 열 0, 상태: OFF
  delay(500);                 // 500ms 대기
}

 

  • 코드에서 LedControl lc = LedControl(12, 11, 10, 1);는 단일 MAX7219 모듈(디바이스 수: 1)을 사용하도록 설정한 것입니다.
  • 여기서 "디스플레이 0"는 첫 번째(유일한) MAX7219 모듈을 가리킵니다. 인덱스 0은 라이브러리가 이 모듈을 참조하는 방식입니다.
  • 따라서 lc.setLed(0, 0, 0, true)에서 첫 번째 인수 0은 디스플레이 0, 즉 연결된 첫 번째 MAX7219 모듈의 8x8 매트릭스를 의미합니다.

(0,0) ~ (0,7) 위치의 LED를 ON/OFF 예시 코드

#include <LedControl.h>

// LedControl 객체 생성: (DIN 핀, CLK 핀, CS 핀, 디바이스 수)
LedControl lc = LedControl(12, 11, 10, 1);

void setup() {
  // MAX7219 초기화
  lc.shutdown(0, false);       // 0번 디스플레이 전원 켜기
  lc.setIntensity(0, 8);      // 밝기 설정 (0~15, 8은 중간 밝기)
  lc.clearDisplay(0);         // 디스플레이 초기화
}

void loop() {
  // 첫 번째 행(0번 행)의 0~7번 열 LED를 순차적으로 켜기
  for (int col = 0; col <= 7; col++) {
    lc.setLed(0, 0, col, true);  // 디스플레이 0, 행 0, 열 col, 상태: ON
    delay(500);                  // 500ms 대기
  }

  // 첫 번째 행(0번 행)의 0~7번 열 LED를 순차적으로 끄기
  for (int col = 0; col <= 7; col++) {
    lc.setLed(0, 0, col, false); // 디스플레이 0, 행 0, 열 col, 상태: OFF
    delay(500);                  // 500ms 대기
  }
}

 

(0,0) ~ (7,7) 위치의 LED를 순차적으로 ON/ OFF 예시 코드

#include <LedControl.h>

// LedControl 객체 생성: (DIN 핀, CLK 핀, CS 핀, 디바이스 수)
LedControl lc = LedControl(12, 11, 10, 1);

void setup() {
  // MAX7219 초기화
  lc.shutdown(0, false);       // 0번 디스플레이 전원 켜기
  lc.setIntensity(0, 8);      // 밝기 설정 (0~15, 8은 중간 밝기)
  lc.clearDisplay(0);         // 디스플레이 초기화
}

void loop() {
  // 각 행(0~7)을 순차적으로 처리
  for (int row = 0; row <= 7; row++) {
    // 현재 행의 0~7번 열 LED를 순차적으로 켜기
    for (int col = 0; col <= 7; col++) {
      lc.setLed(0, row, col, true);  // 디스플레이 0, 행 row, 열 col, 상태: ON
      delay(500);                   // 500ms 대기
    }
    // 현재 행의 0~7번 열 LED를 순차적으로 끄기
    for (int col = 0; col <= 7; col++) {
      lc.setLed(0, row, col, false); // 디스플레이 0, 행 row, 열 col, 상태: OFF
      delay(500);                   // 500ms 대기
    }
  }
}

 


반응형