Configuration du voyant lumineux LED
Le voyant lumineux LED (signal lumineux tricolore) est utilisé pour afficher visuellement l'état de fonctionnement de l'imprimante. Cet article présente sa méthode de câblage et sa configuration dans Klipper.
Le voyant lumineux LED est disponible en plusieurs tensions d'entrée. Cet article prend comme exemple la version 24V, veuillez vérifier la compatibilité de tension en fonction du modèle utilisé.
Instructions de câblage
Définition des couleurs des câbles
| Couleur | Fonction | Emplacement de câblage |
|---|---|---|
| Gris | Positif commun | Connecté à l'alimentation 24V positive (ex. : 24V de l'alimentation du ventilateur) |
| Rouge | Contrôle de la lumière rouge | Connecté à une broche de contrôle du signal du ventilateur de la carte mère |
| Vert | Contrôle de la lumière verte | Connecté à une broche de contrôle du signal du ventilateur de la carte mère |
| Jaune | Contrôle de la lumière jaune | Connecté à une broche de contrôle du signal du ventilateur de la carte mère |
Polarité de contrôle
Les cartes mères FLY utilisent par défaut un contrôle par pôle négatif :
- Le positif du voyant (fil gris) est connecté à l'alimentation 24V
- Les fils de contrôle du voyant (rouge/vert/jaune) sont connectés aux broches GPIO de la carte mère
- Lorsque la carte mère émet un niveau bas, la couleur correspondante s'allume
Configuration Klipper
[output_pin led_red]
pin: <red_led_pin> # Broche de contrôle de la lumière rouge
pwm: False
value: 0 # Éteint par défaut
shutdown_value: 1 # Allume automatiquement la lumière rouge en cas d'erreur Klipper
[output_pin led_green]
pin: <green_led_pin> # Broche de contrôle de la lumière verte
pwm: False
value: 0
[output_pin led_yellow]
pin: <yellow_led_pin> # Broche de contrôle de la lumière jaune
pwm: False
value: 0
Les exemples ci-dessus utilisent des espaces réservés pour les broches de contrôle. Veuillez modifier en fonction des GPIO disponibles sur votre carte mère.
La lumière rouge implémente une sécurité de panne via shutdown_value: 1 :
- Fonctionnement normal : La lumière rouge est contrôlée par les macros, elle reste éteinte dans des conditions normales.
- Erreur/déconnexion : Lorsque Klipper entre dans l'état d'arrêt (Shutdown), la lumière rouge s'allume automatiquement, sans intervention de macro.
- Il s'agit d'un mécanisme de sécurité au niveau matériel. Même si la logique des macros échoue, la lumière rouge peut indiquer correctement une panne.
Macro d'état
[gcode_macro LED_STATUS]
description: Définir l'état du voyant lumineux LED
gcode:
{% set STATUS = params.STATUS|default("idle")|lower %}
# Éteindre d'abord toutes les lumières
SET_PIN PIN=led_red VALUE=0
SET_PIN PIN=led_green VALUE=0
SET_PIN PIN=led_yellow VALUE=0
# Définir la lumière en fonction de l'état (niveau bas actif : VALUE=1 signifie que la broche émet un niveau bas, la lumière s'allume)
{% 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 %}
Description des états
| Paramètre d'état | Effet lumineux | Scénario d'utilisation |
|---|---|---|
printing | Lumière verte + jaune allumée | Impression en cours |
ready | Lumière verte allumée | Klipper connecté, imprimante prête |
warning | Lumière jaune allumée | État d'avertissement (ex. : température anormale mais pas d'erreur) |
error | Lumière rouge allumée | Erreur survenue, nécessite une intervention |
idle | Toutes éteintes | État inactif (par défaut) |
Exemple d'appel : LED_STATUS STATUS=printing
Détection automatique de l'état (optionnel)
Pour détecter automatiquement l'état de Klipper sans modifier les macros d'impression, utilisez la configuration suivante.
# Macro de variable d'état (pour enregistrer l'état précédent et éviter les scintillements dus à des rafraîchissements inutiles)
[gcode_macro _LED_STATE]
variable_last_status: "unknown"
gcode:
# Cette macro stocke uniquement la variable, aucune action nécessaire
# Détection automatique de l'état
[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" %}
# Déterminer l'état actuel
{% if printing == "PRINTING" or printing == "PAUSED" %}
{% set current = "printing" %}
{% elif idle == "READY" or idle == "IDLE" %}
{% set current = "ready" %}
{% endif %}
# Mettre à jour le voyant uniquement en cas de changement d'état pour éviter les scintillements
{% 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 %}
# Continuer la scrutation
UPDATE_DELAYED_GCODE ID=LED_AUTO_UPDATE DURATION=1
Logique de détermination de l'état
| État Klipper | Condition de détermination | Effet LED |
|---|---|---|
| En cours d'impression | print_stats.state = printing/paused | Lumière verte + jaune allumée |
| Connecté | idle_timeout.state = ready/idle | Lumière verte allumée |
| Erreur | Klipper entre dans l'état Shutdown | Lumière rouge allumée (gérée automatiquement par shutdown_value) |
| Autre | Aucun état détecté | Toutes éteintes |
Principe de fonctionnement
- La macro
_LED_STATEstocke l'état précédent pour le comparer. LED_AUTO_UPDATEdétecte l'état de Klipper chaque seconde.LED_STATUSn'est appelé que lorsqu'un changement d'état se produit, pour éviter les scintillements.- Lorsque Klipper entre dans l'état d'arrêt (Shutdown) en cas d'erreur,
shutdown_valueprend automatiquement le contrôle de la lumière rouge.