commands:reference:isegwrite
IsegWrite()
IsegWrite()는 세그먼트 데이터를 지정 위치에 출력합니다.
bool IsegWrite(const uint8_t segments[], uint8_t length = 4, uint8_t position = 0, uint8_t device = 0)
명령어
| 명령어 | 인수 | 반환값 | 동작 |
|---|---|---|---|
IsegWrite(segments, length, position, device) | const uint8_t segments[] — 각 자리의 XGFEDCBA 세그먼트 비트 배열uint8_t length = 4 — 기록할 자리 수 1~4uint8_t position = 0 — 기록 시작 위치 0~3, 왼쪽 첫 자리가 0uint8_t device = 0 — FND 장치 번호 0~6, 생략하면 0 | bool | 세그먼트 데이터를 지정 위치에 출력합니다. |
예제
const uint8_t CLK_PIN = 14; const uint8_t DIO_PIN = 15; void setup() { IsegBegin(CLK_PIN, DIO_PIN, 100, 0); // TM1637 FND의 CLK·DIO 핀과 장치 번호를 설정합니다. IsegBrightness(5, true, 0); // 화면 밝기와 표시 상태를 설정합니다. } void loop() { const uint16_t value = analogRead(A0); // 지정한 채널의 원시 아날로그값을 읽습니다. uint8_t digits[4] = { IsegEncodeDigit((value / 1000) % 10), // 숫자 한 자리를 세그먼트 데이터로 변환합니다. IsegEncodeDigit((value / 100) % 10), // 숫자 한 자리를 세그먼트 데이터로 변환합니다. IsegEncodeDigit((value / 10) % 10), // 숫자 한 자리를 세그먼트 데이터로 변환합니다. IsegEncodeDigit(value % 10) // 숫자 한 자리를 세그먼트 데이터로 변환합니다. }; IsegWrite(digits, 4, 0, 0); // 세그먼트 데이터를 지정 위치에 출력합니다. delay(100); }
주의사항
- TM1637 IC가 내장된 4자리 FND 전용이다. 일반 멀티플렉스 FND를 직접 구동하는 명령어가 아니다.
IsegBegin()을 성공적으로 호출한 뒤 표시 명령어를 사용한다.- CLK와 DIO에 같은 핀을 지정하거나 장치 번호
7이상을 지정하면 초기화되지 않는다. length + position은 4 이하여야 한다. 범위에 맞지 않는 숫자는 표시하지 않고false를 반환한다.- 통신 중 수 ms 동안 실행이 막힐 수 있으므로 인터럽트 서비스 루틴 안에서 호출하지 않는다.
- 지정한 핀은 UART, PWM, 엔코더, 외부 인터럽트 등 다른 기능과 동시에 사용하지 않는다.
- FND 전원과 신호 전압은 실제 모듈 및 제품 사용설명서를 확인한다.
같은 카테고리의 내장 명령어
commands/reference/isegwrite.txt · 마지막으로 수정됨: 저자 127.0.0.1
