라즈베리파이, 아두이노

[간단한 아두이노 코딩] 21. MAX7219 도트 매트릭스 SPI 사용하기

포도알77 2020. 12. 9. 15:28

MAX7219 도트 매트릭스 SPI 사용하기

 

1. MAX7219 드라이버

 7세그먼트와 똑같이 Dot matrix 또한 다수의 핀을 필요로 한다. 따라서 이를 줄이기 위해서 SPI 통신이 가능한 MAX7219 드라이버를 이용해야 한다.

 

 MAX7219 도트매트릭스 드라이버를 사용하면 16개의 핀에서 VCC, GND, DIN, CS, CLK 총 5개의 핀으로 줄일 수 있고, 여러개를 병렬로 연결해서 사용할 수 있다.

 

 라이브러리 매니저를 통해서 LedControl을 설치하자.

2. 회로 구성

3. 소스코드

 Matrix를 여러개 병렬 연결할 수 있다. 여기서 0은 0번 매트릭스를 뜻한다.

#include "LedControl.h"

#define CS 10
#define CLK 11
#define DIN 12

LedControl lc=LedControl(DIN, CLK, CS, 1);

int matrix[8]={
  0b00011000,
  0b00100100,
  0b00100100,
  0b01000010,
  0b11111111,
  0b10000001,
  0b10000001,
  0b10000001
};

void setup() {
  // 0번 matrix 깨우기
  lc.shutdown(0,false);
  // 0번 matrix의 밝기 8 (밝기 0~15)
  lc.setIntensity(0,8);
  // 초기화
  lc.clearDisplay(0);
}

void display(){
  // Row, Column 1개씩으로 컨트롤 할 수 있다.
  for(int i=0; i<8; i++)
    for(int j=0; j<8; j++)
      lc.setLed(0,i,j,bitRead(matrix[i],j));
}
void loop() { 
  display();
}

 

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사