본문 바로가기
아두이노 디스플레이

[디스플레이/MAX7219] 8 digits LED(7 segments), MAX7219

by 작동미학 2015. 12. 19.
반응형

MAX7219 칩을 사용한 8 digits(7 segments) LED를 활용해보자.

 

▶ 이 가이드를 따라하면

- 8자리 digit을 표기할 수 있는 LED(점 포함)를 제어할 수 있다.

 

▶ 먼저 읽으면 좋은 글

- Arduino 일반 : http://bbangpan.tistory.com/1

- TM1637 4 digits 모듈 : http://bbangpan.tistory.com/31

- TM1638 8 digits 모듈 : http://bbangpan.tistory.com/72

 

▶ 부품 설명 및 회로 구성

일전에 TM1638 8 digit 모듈을 소개한바 있는데, 당시에는 스위치 포함 모듈이고, 이 모듈은 digit만 표시 가능한 LED 모듈이다. 군더더기 없이 딱 8자리 영숫자(7세그먼트)만 표기된다.

(88888888 형식의). MAX7219 칩은 8x8의 격자형 LED제어나 4 digits도 제어가 가능한데 여기는 8 digits임을 유의하자.

<MAX7219 8 digits 8 LED모듈>

배선은 VCC->5V, GND->GND, CLK->D6, DIN->D7, CS->D5로 맞춘다. 어떤 모듈은CS가 Load라는 이름으로 표기되어 있으니 참조하자.

< VCC->5V, GND->GND, DIO->D8, CLK->D9, STB->D7 에 연결>

이런 류들은 또 8 digits밑에 작은 점까지 지원된다는 점이 보너스이다..


▶ 소스 코드 입력 및 구동

MAX1729를 활용하는 LedControl이라는 라이브러리를 사용한다. 이 라이브러리는 Arduino에서 공식 안내하고 있기도 하다. (http://playground.arduino.cc/Main/LedControl#Source )

실제 라이브러리는 아래에서 다운받자. https://github.com/wayoda/LedControl/releases . 라이브러리를 받아 아두이노 설치폴더 밑에 libraries아래에 압축을 풀고 sketch를 재시작해주면 인식된다.

 

Github : https://github.com/bbangpan/bbangpan.com/blob/master/neibc_max7219_8digit_count/neibc_max7219_8digit_count.ino

 

/* Originally posted on www.bbangpan.com

 

Program Description: MAX7219 8digits LED with dots

Needed library : LedControl

Tested on : Arduino 1.7.4, Arduino UNO R3, MAX7219 8 digits LED

 

Copyright (c) 2015 www.bbangpan.com. All rights reserved.

This program can be used for any non-commercial purpose freely. */

 

#include "LedControl.h" // Arduino Pin 7 to DIN, 6 to Clk, 5 to LOAD, no.of devices is 1

LedControl lc=LedControl(7,6,5,1);

int digitval[8];

 

void setup() { // Initialize the MAX7219 device

lc.shutdown(0,false); // Enable display

lc.setIntensity(0,10); // Set brightness level (0 is min, 15 is max)

lc.clearDisplay(0); // Clear display register

 

digitval[0]=3;

digitval[1]=2;

digitval[2]=1;

digitval[3]=0;

digitval[4]=0;

digitval[5]=0;

digitval[6]=0;

digitval[7]=0;

 

}

 

void loop() {

for(int i=0; i<8; i++){

lc.setDigit(0,i,digitval[i],true);

}

delay(10);

 

digitval[0]=digitval[0]+1;

 

for(int i=0; i<7; i++) {

if(digitval[i]>9) {

digitval[i]=0;

digitval[i+1]=digitval[i+1]+1;

}

}

}

 

이 소스는 123에서 시작해서 숫자가 증가하는 샘플이다.

참고로 lc.setDigit(0,I,doigitval[i].true); 에서 true는 dot을 활성화하기 위한 파라메터이고 필요없으면 false를 하면 된다.

숫자값은 0부터 15까지 할당하여 출력가능한데, 각각 0~F까지 16진수를 표기할 수 있다.

 

▶ 구매 가이드

MAX7219 : http://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20151219044408&SearchText=max7219+8+digit ($ 2)

 

강의 키워드

MAX7219 8 digits, MAX7219 8자리 숫자LED 8개 스위치, 7 세그먼트, Arduino, 아두이노, 숫자 표기 LED

반응형