본문으로 건너뛰기

LED 경고등 구성

LED 경고등(3색 신호등)은 프린터의 작동 상태를 직관적으로 표시합니다. 이 문서에서는 배선 방법과 Klipper 구성을 설명합니다.

전압 설명

LED 경고등은 다양한 입력 전압 사양이 있습니다. 본 문서에서는 24V 버전을 기준으로 설명합니다. 실제 사용하는 모델에 맞춰 전압이 일치하는지 확인하세요.

배선 설명

케이블 색상 정의

색상기능배선 위치
회색공통 양극24V 전원 양극에 연결 (예: 팬 전원 24V)
빨간색빨간등 제어메인보드 팬 제어 신호 핀에 연결
초록색초록등 제어메인보드 팬 제어 신호 핀에 연결
노란색노란등 제어메인보드 팬 제어 신호 핀에 연결

제어 극성

FLY 프린터 메인보드는 기본적으로 음극 제어 방식을 사용합니다:

  • LED 경고등의 양극(회색 선)을 24V 전원에 연결
  • LED 경고등의 제어선(빨강/초록/노랑)을 메인보드 GPIO 핀에 연결
  • 메인보드가 저전압을 출력하면 해당 색상이 켜집니다
Loading...

Klipper 구성

[output_pin led_red]
pin: <red_led_pin> # 빨간등 제어 핀
pwm: False
value: 0 # 기본적으로 꺼짐
shutdown_value: 1 # Klipper 오류 시 자동으로 빨간등 점등

[output_pin led_green]
pin: <green_led_pin> # 초록등 제어 핀
pwm: False
value: 0

[output_pin led_yellow]
pin: <yellow_led_pin> # 노란등 제어 핀
pwm: False
value: 0
핀 설명

위에서는 제어 핀을 플레이스홀더로 표시했습니다. 실제 메인보드에서 사용 가능한 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

자동 상태 감지 (선택 사항)

인쇄 매크로를 수정하지 않고 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로 자동 처리)
기타위 상태가 감지되지 않음모두 꺼짐

작동 원리

  1. _LED_STATE 매크로가 이전 상태를 저장하여 비교
  2. LED_AUTO_UPDATE가 매초 Klipper 상태 감지
  3. 상태가 변경된 경우에만 LED_STATUS를 호출하여 조명 업데이트, 깜박임 방지
  4. Klipper 오류로 Shutdown 진입 시 shutdown_value가 자동으로 빨간등 제어
Loading...