====== 7-SEGMENT LED 사용설명서 ====== TM1637 I.C가 내장된 4자리 제품의 7세그먼트(FND)를 ILOGICS 보드 패키지에 내장된 명령어로 쉽게 제어할 수 있습니다. ILOGICS 보드 패키지를 설치하지 않았다면 [[https://www.ilogics.net/ko-kr/resources/downloads/software/3|ILOGICS 보드 패키지]]를 설치해 주시기 바랍니다.(MPINO STUDIO2에서는 설치가 필요하지 않습니다) ===== 1. 사용할 7-SEGMENT LED 확인 ===== ^ 시계형 ^ 소수점형 ^ | {{:guide:seven_segment:revision3:clock_module.png?356|시계형 TM1637 4자리 LED}} | {{:guide:seven_segment:revision3:decimal_module.png?378|소수점형 TM1637 4자리 LED}} | | 가운데 **콜론(:)** 표시 | 자리 사이 **소수점(.)** 표시 | | 개별 소수점 제어 불가 | 소수점 표시용 | ===== 2. 제품에 연결하기 ===== 연결 전에는 제품과 모듈의 전원을 끄고 연결해 주시기 바랍니다. 아래는 MPINO-8A4R-S 제품에 Molex 4핀(5264-04) 케이블을 사용하여 7세그먼트(FND)를 연결한 예시입니다. (Molex 4핀 케이블의 색상은 변경될 수 있으므로 색상보다는 핀 이름을 보고 연결해 주시기 바랍니다) {{ :guide:seven_segment:revision7:connection-desktop.png?1200 |MPINO-8A4R-S, Molex 4핀 5264-04 케이블, TM1637 FND 연결 구성 }} {{ :guide:seven_segment:revision7:connection-mobile.png?640 |MPINO-8A4R-S, Molex 4핀 5264-04 케이블, TM1637 FND 연결 구성 }} ==== 제품별 결선도 ==== ^ 제품별 결선도 ^ LED CLK에 연결할 단자 ^ LED DIO에 연결할 단자 ^ 함께 사용할 수 없는 기능 ^ | [[guide:seven_segment:wiring_mpino_8a4r_s|MPINO-8A4R(T)-S]], [[guide:seven_segment:wiring_mpino_8a8r_s|MPINO-8A8R(T)-S]], [[guide:seven_segment:wiring_mpino_16a16r|MPINO-16A16R]] | FND/ENCO CLK (D24) | FND/ENCO DIO (D25) | 같은 단자의 엔코더·인터럽트 입력 | | [[guide:seven_segment:wiring_mpino_8a4r_su|MPINO-8A4R-SU]] | FND/ENCO CLK (D24) | FND/ENCO DIO (D25) | 같은 단자의 엔코더·인터럽트 입력 | | [[guide:seven_segment:wiring_mpino_8a8r|MPINO-8A8R]] | PWM7 | PWM8 | 같은 단자의 PWM 출력 | | [[guide:seven_segment:wiring_mpino_16a8r|MPINO-16A8R]] | AI2 (Arduino A2) | AI3 (Arduino A3) | 같은 단자의 아날로그 입력 | | [[guide:seven_segment:wiring_mpino_16a8r8t|MPINO-16A8R8T]] | P(5) (Arduino D5) | P(2) (Arduino D2) | 같은 단자의 PWM 출력 | | [[guide:seven_segment:wiring_mpaino|MPAINO Series]] | UART TXD (D14) | UART RXD (D15) | ''Serial3'' UART | ===== 3. ILOGICS 내장 명령어 ===== ^ 명령어 ^ 하는 일 ^ 사용 예 ^ | [[commands:reference:isegbegin|IsegBegin(clkPin, dioPin)]] | LED의 CLK·DIO에 연결한 Arduino 핀 지정 | ''IsegBegin(24, 25);'' | | [[commands:reference:isegbrightness|IsegBrightness(brightness)]] | 밝기 설정 (''0~7'', 숫자가 클수록 밝음) | ''IsegBrightness(7);'' | | [[commands:reference:isegdecimal|IsegDecimal(number)]] | 정수의 10진수 표시 | ''IsegDecimal(123);'' | | [[commands:reference:iseghex|IsegHex(number)]] | 정수의 16진수 표시 | ''IsegHex(0xABCD);'' | | [[commands:reference:isegclear|IsegClear()]] | 네 자리 표시 지우기 | ''IsegClear();'' | | [[commands:reference:isegwrite|IsegWrite(segments)]] | 자릿수별 LED 세그먼트 값 직접 표시 | 아래의 ''123V'' 예 참고 | | [[commands:reference:isegencodedigit|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**이 표시되는지 확인해 주시기 바랍니다. 왼쪽의 빈 자리는 표시되지 않습니다. ==== 표시를 바꾸는 예 ==== 아래 호출은 위 코드의 ''IsegDecimal(123);'' 대신 **한 번에 하나씩** 사용해 주시기 바랍니다. IsegDecimal(123, true); // 앞자리 0을 포함해 0123 표시 IsegDecimal(123, true, 2); // 소수점형에서 01.23 표시 IsegHex(0xABCD); // 16진수 네 자리 표시 IsegClear(); // 네 자리 지우기 **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. 표시되지 않을 때 확인 ===== - Arduino IDE에서 실제 제품에 맞는 **ILOGICS 보드**와 COM 포트를 선택했는지 확인해 주시기 바랍니다. - 프로그램이 ''IsegBegin()''을 먼저 호출하는지, ''IsegDecimal()''에 네 자리로 표시할 수 있는 숫자를 주었는지 확인해 주시기 바랍니다. 범위를 넘는 숫자는 표시하지 않고 ''false''를 반환합니다.