LED 경고등 설정
LED 경고등(3색 신호등)은 프린터의 작동 상태를 직관적으로 표시합니다. 이 문서에서는 배선 방법과 Klipper 설정을 설명합니다.
전압 설명
LED 경고등에는 다양한 입력 전압 사양이 있으며, 본 문서는 24V 버전을 기준으로 설명합니다. 실제 사용하는 모델에 맞춰 전압이 일치하는지 확인하십시오.
배선 설명
케이블 색상 정의
| 색상 | 기능 | 배선 위치 |
|---|---|---|
| 회색 | 공통 양극 | 24V 전원 양극에 연결 (예: 팬 전원 24V) |
| 빨간색 | 빨간등 제어 | 메인보드 팬 제어 신호 핀에 연결 |
| 초록색 | 초록등 제어 | 메인보드 팬 제어 신호 핀에 연결 |
| 노란색 | 노란등 제어 | 메인보드 팬 제어 신호 핀에 연결 |
제어 극성
FLY 프린터 메인보드는 기본적으로 음극 제어 방식을 사용합니다:
- LED 경고등의 양극(회색선)은 24V 전원에 연결
- LED 경고등의 제어선(빨강/초록/노랑)은 메인보드 GPIO 핀에 연결
- 메인보드가 저전압을 출력하면 해당 색상이 점등됩니다
Loading...
Klipper 설정
[output_pin led_red]
pin: PD12 # 빨간등 제어 핀
pwm: False
value: 0 # 기본 꺼짐
shutdown_value: 1 # Klipper 오류 시 빨간등 자동 점등
[output_pin led_green]
pin: PD13 # 초록등 제어 핀
pwm: False
value: 0
[output_pin led_yellow]
pin: PD14 # 노란등 제어 핀
pwm: False
value: 0
핀 설명
위 예시는 PD12, PD13, PD14를 사용하였으며, 실제 메인보드에서 사용 가능한 GPIO에 맞게 수정하십시오.
빨간등 안전 장치 메커니즘
빨간등은 shutdown_value: 1을 통해 안전 장치를 구현합니다:
- 정상 작동: 빨간등은 매크로로 제어되며, 정상 상태에서는 꺼짐 유지
- 오류/연결 끊김: Klipper가 Shutdown 상태에 진입하면, 매크로 개입 없이 자동으로 빨간등이 켜짐
- 이는 하드웨어 수준의 안전 메커니즘으로, 매크로 로직에 문제가 있어도 빨간등이 오류를 올바르게 표시합니다
상태 매크로
[gcode_macro LED_STATUS]
description: LED 경고등 상태 설정
gcode:
{% set STATUS = params.STATUS|default("idle")|lower %}
# 먼저 모든 등 끄기
SET_PIN PIN=led_red VALUE=0
SET_PIN PIN=led_green VALUE=0
SET_PIN PIN=led_yellow VALUE=0
# 상태에 따라 조명 설정 (저전압 활성: VALUE=1은 핀이 저전압 출력, 등이 켜짐)
{% if STATUS == "printing" %}
SET_PIN PIN=led_green VALUE=1
SET_PIN PIN=led_yellow VALUE=1
{% elif STATUS == "ready" %}
SET_PIN PIN=led_green VALUE=1
{% elif STATUS == "warning" %}
SET_PIN PIN=led_yellow VALUE=1
{% elif STATUS == "error" %}
SET_PIN PIN=led_red VALUE=1
{% endif %}
상태 설명
| 상태 매개변수 | 조명 효과 | 사용 시나리오 |
|---|---|---|
printing | 초록+노란등 점등 | 인쇄 중 |
ready | 초록등 점등 | Klipper 연결됨, 프린터 준비 완료 |
warning | 노란등 점등 | 경고 상태 (예: 온도 이상이나 오류 아님) |
error | 빨간등 점등 | 오류 발생, 처리 필요 |
idle | 모두 꺼짐 | 유휴 상태 (기본) |
호출 예시: LED_STATUS STATUS=printing
인쇄 매크로 통합
인쇄 시작 및 종료 매크로에 LED 제어를 추가하여 상태 자동 전환을 구현합니다.
인쇄 시작 매크로
[gcode_macro PRINT_START]
description: 인쇄 시작 매크로
gcode:
# ... 기타 시작 로직 ...
# LED를 인쇄 중 상태로 설정
LED_STATUS STATUS=printing
# ... 가열, 귀환 등 작업 ...
인쇄 종료 매크로
[gcode_macro PRINT_END]
description: 인쇄 종료 매크로
gcode:
# ... 기타 종료 로직 ...
# LED를 유휴 상태로 설정
LED_STATUS STATUS=idle
자동 상태 감지 (선택 사항)
인쇄 매크로를 수정하지 않고 Klipper 상태를 자동으로 감지하려면 다음 설정을 사용하세요.
# 상태 변수 매크로 (마지막 상태 기록, 반복 갱신으로 인한 깜빡임 방지)
[gcode_macro _LED_STATE]
variable_last_status: "unknown"
gcode:
# 이 매크로는 변수만 저장하며, 추가 동작 없음
# 자동 상태 감지
[delayed_gcode LED_AUTO_UPDATE]
initial_duration: 1
gcode:
{% set idle = printer.idle_timeout.state|string|upper %}
{% set printing = printer.print_stats.state|string|upper %}
{% set current = "unknown" %}
# 현재 상태 판단
{% if printing == "PRINTING" or printing == "PAUSED" %}
{% set current = "printing" %}
{% elif idle == "READY" or idle == "IDLE" %}
{% set current = "ready" %}
{% endif %}
# 상태 변경 시에만 LED 업데이트, 깜빡임 방지
{% set last = printer["gcode_macro _LED_STATE"].last_status %}
{% if current != last %}
SET_GCODE_VARIABLE MACRO=_LED_STATE VARIABLE=last_status VALUE='"{current}"'
LED_STATUS STATUS={current}
{% endif %}
# 지속적 폴링
UPDATE_DELAYED_GCODE ID=LED_AUTO_UPDATE DURATION=1
상태 판단 로직
| Klipper 상태 | 판단 조건 | LED 효과 |
|---|---|---|
| 인쇄 중 | print_stats.state = printing/paused | 초록+노란등 점등 |
| 연결됨 | idle_timeout.state = ready/idle | 초록등 점등 |
| 오류 | Klipper Shutdown 진입 | 빨간등 점등 (shutdown_value로 자동 처리) |
| 기타 | 위 상태 감지 안 됨 | 모두 꺼짐 |
작동 원리
_LED_STATE매크로는 마지막 상태를 저장하여 비교에 사용LED_AUTO_UPDATE는 매초 Klipper 상태를 감지- 상태가 변경될 때만
LED_STATUS를 호출하여 조명 업데이트, 깜빡임 방지 - Klipper 오류로 Shutdown 진입 시
shutdown_value가 빨간등을 자동으로 제어
Loading...