사용자 도구

사이트 도구


guide:seven_segment

문서의 이전 판입니다!


7-SEGMENT LED 사용설명서

TM1637 I.C가 내장된 4자리 제품의 7세그먼트(FND)를 ILOGICS 보드 패키지에 내장된 명령어로 쉽게 제어할 수 있습니다.

ILOGICS 보드 패키지를 설치하지 않았다면 ILOGICS 보드 패키지를 설치해 주시기 바랍니다.(MPINO STUDIO2에서는 설치가 필요하지 않습니다)

1. 사용할 7-SEGMENT LED 확인

아이로직스의 TM1637 4자리 LED는 시계형과 소수점형 두 종류입니다.

시계형 소수점형
시계형 TM1637 4자리 LED 소수점형 TM1637 4자리 LED
가운데 콜론(:) 표시 자리 사이 소수점(.) 표시
개별 소수점 제어 불가 소수점 표시용

연결 전에는 제품과 모듈의 전원을 끄고 연결해 주시기 바랍니다.

2. 제품에 연결하기

아래는 MPINO-8A4R-S 제품에 Molex 4핀(5264-04) 케이블을 사용하여 7세그먼트(FND)를 연결한 예시입니다. (Molex 4핀 케이블의 색상은 변경될 수 있으므로 색상보다는 핀 이름을 보고 연결해 주시기 바랍니다)

MPINO-8A4R-S, Molex 4핀 5264-04 케이블, TM1637 FND 연결 구성

MPINO-8A4R-S, Molex 4핀 5264-04 케이블, TM1637 FND 연결 구성

MPINO-8A4R(T)-S 연결

MPINO-8A4R(T)-S에는 FND/ENCO 4핀 커넥터가 있습니다. 이 커넥터에서 CLK는 Arduino D24, DIO는 D25입니다.

MPINO-8A4R(T)-S FND/ENCO 커넥터와 TM1637 LED의 CLK, DIO, GND, 5V 신호 대응도

다른 제품에서 사용할 신호 단자

다른 제품의 CLK·DIO 연결 단자는 아래 표와 같습니다. 이 단자는 엔코더, PWM, 아날로그 입력 또는 UART와 공유될 수 있으므로, 같은 단자의 다른 기능을 동시에 사용하지 않아야 합니다. 전원·접지와 실제 커넥터 위치는 해당 제품의 단자 표시와 사용설명서에서 확인해 주시기 바랍니다.

제품 LED CLK에 연결할 단자 LED DIO에 연결할 단자 함께 사용할 수 없는 기능
MPINO-8A4R-S, MPINO-8A4T-S, MPINO-8A8R-S, MPINO-8A8T-S, MPINO-16A16R FND/ENCO CLK (D24) FND/ENCO DIO (D25) 같은 단자의 엔코더·인터럽트 입력
MPINO-8A4R-SU FND/ENCO CLK (D24) FND/ENCO DIO (D25) 같은 단자의 엔코더·인터럽트 입력
MPINO-8A8R PWM7 PWM8 같은 단자의 PWM 출력
MPINO-16A8R AI2 (Arduino A2) AI3 (Arduino A3) 같은 단자의 아날로그 입력
MPINO-16A8R8T P(5) (Arduino D5) P(2) (Arduino D2) 같은 단자의 PWM 출력
MPAINO Series UART TXD (D14) UART RXD (D15) Serial3 UART

제품별 결선도

아래 링크는 사용하는 제품의 7-SEGMENT LED 결선도로 연결됩니다. 해당 제품의 연결 그림과 설명을 확인해 주시기 바랍니다.

MPINO-8A4R-SU는 제품 설명과 실제 단자 표시를 확인해 주시기 바랍니다.

3. ILOGICS 내장 명령어

IsegBegin()은 CLK·DIO 핀을 지정하며, 이후 밝기와 표시 내용을 설정할 수 있습니다. 추가 라이브러리 포함이나 객체 선언 없이 보드 패키지의 내장 명령어를 사용할 수 있습니다.

명령어 하는 일 사용 예
IsegBegin(clkPin, dioPin) LED의 CLK·DIO에 연결한 Arduino 핀 지정 IsegBegin(24, 25);
IsegBrightness(brightness) 밝기 설정 (0~7, 숫자가 클수록 밝음) IsegBrightness(7);
IsegDecimal(number) 정수의 10진수 표시 IsegDecimal(123);
IsegHex(number) 정수의 16진수 표시 IsegHex(0xABCD);
IsegClear() 네 자리 표시 지우기 IsegClear();
IsegWrite(segments) 자릿수별 LED 세그먼트 값 직접 표시 아래의 123V 예 참고
IsegEncodeDigit(digit) 숫자 한 자리를 세그먼트 값으로 변환 IsegEncodeDigit(1)

초기화·밝기·표시 명령어는 장치 번호 0~6을 인수로 받아 여러 LED를 구분할 수 있습니다. LED 한 대에서 장치 번호를 생략하면 0으로 처리됩니다. IsegBegin()의 true는 지정한 설정값이 유효하다는 뜻입니다. 실제 LED의 응답은 이어서 호출하는 통신 명령어의 반환값으로 확인할 수 있습니다.

4. 예제: 123 표시하기

아래는 MPINO-8A4R(T)-S의 FND/ENCO 커넥터에 LED 한 대를 연결한 예제입니다. Arduino IDE에서 새 스케치에 코드를 입력하고 보드와 포트를 선택한 뒤 검증(✓) → 업로드(→) 순서로 실행해 주시기 바랍니다.

void setup() {
  IsegBegin(24, 25);      // FND/ENCO: D24 → CLK, D25 → DIO
  IsegBrightness(7);      // LED 밝기를 7로 설정
  IsegDecimal(123);       // 123 표시
}
 
void loop() {
}

업로드가 끝나면 LED에 123이 표시되는지 확인해 주시기 바랍니다. 왼쪽의 빈 자리는 표시되지 않습니다. 밝기가 너무 높으면 IsegBrightness(7)의 숫자를 0~7 범위에서 낮추어 다시 업로드해 주시기 바랍니다.

표시를 바꾸는 예

아래 호출은 위 코드의 IsegDecimal(123); 대신 한 번에 하나씩 사용해 주시기 바랍니다.

IsegDecimal(123, true);       // 앞자리 0을 포함해 0123 표시
IsegDecimal(123, true, 2);    // 소수점형에서 01.23 표시
IsegHex(0xABCD);              // 16진수 네 자리 표시
IsegClear();                  // 네 자리 지우기

숫자와 문자는 IsegWrite()로 해당 자리에 세그먼트 값을 기록해 함께 표시할 수 있습니다. 123V를 표시하려면 위 전체 예제의 setup() 안에 있는 IsegDecimal(123); 한 줄을 아래 코드로 바꿔 주시기 바랍니다. 0x3E는 문자 V에 해당하는 F·E·D·C·B 세그먼트 값입니다.

uint8_t displayData[4] = {
  IsegEncodeDigit(1),
  IsegEncodeDigit(2),
  IsegEncodeDigit(3),
  0x3E
};
IsegWrite(displayData);

5. 표시되지 않을 때 확인

  1. LED가 TM1637 칩이 들어 있는 4자리 제품인지 확인해 주시기 바랍니다. 일반 7-SEGMENT LED를 직접 연결하는 명령어가 아닙니다.
  2. 전원을 끈 뒤 CLK↔CLK, DIO↔DIO, GND↔GND, 5V↔VCC 연결과 커넥터 방향을 다시 확인해 주시기 바랍니다.
  3. Arduino IDE에서 실제 제품에 맞는 ILOGICS 보드와 COM 포트를 선택했는지 확인해 주시기 바랍니다.
  4. 프로그램이 IsegBegin()을 먼저 호출하는지, IsegDecimal()에 네 자리로 표시할 수 있는 숫자를 주었는지 확인해 주시기 바랍니다. 범위를 넘는 숫자는 표시하지 않고 false를 반환합니다.
  5. 소수점을 사용한다면 소수점형 LED인지 확인해 주시기 바랍니다. 시계형에서는 소수점 표시가 지원되지 않습니다.
  6. 같은 CLK·DIO 단자를 엔코더·PWM·UART 등 다른 기능에서 사용 중이라면 중복 사용을 중지해 주시기 바랍니다.
guide/seven_segment.1791292737.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki