Configuration du voyant lumineux LED
Le voyant lumineux LED (signal lumineux tricolore) permet d'afficher visuellement l'état de fonctionnement de l'imprimante. Cet article décrit sa méthode de câblage et sa configuration dans Klipper.
Les voyants lumineux LED sont disponibles en plusieurs tensions d'entrée. Cet article prend l'exemple de la version 24V. Veuillez vérifier la compatibilité de la tension selon le modèle utilisé.
Instructions de câblage
Définition des couleurs de câble
| Couleur | Fonction | Emplacement de connexion |
|---|---|---|
| Gris | Positif commun | Connecté à l'alimentation 24V positive (ex : 24V de l'alimentation du ventilateur) |
| Rouge | Contrôle de la lumière rouge | Connecté à la broche de signal de contrôle du ventilateur de la carte mère |
| Vert | Contrôle de la lumière verte | Connecté à la broche de signal de contrôle du ventilateur de la carte mère |
| Jaune | Contrôle de la lumière jaune | Connecté à la broche de signal de contrôle du ventilateur de la carte mère |
Polarité de contrôle
La carte mère d'impression FLY utilise par défaut un contrôle par pôle négatif :
- Le pôle positif (fil gris) du voyant LED est connecté à l'alimentation 24V
- Les fils de contrôle (rouge/vert/jaune) du voyant LED 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: PD12 # Broche de contrôle de la lumière rouge
pwm: False
value: 0 # Éteint par défaut
shutdown_value: 1 # S'allume automatiquement en cas d'erreur Klipper
[output_pin led_green]
pin: PD13 # Broche de contrôle de la lumière verte
pwm: False
value: 0
[output_pin led_yellow]
pin: PD14 # Broche de contrôle de la lumière jaune
pwm: False
value: 0
Les broches PD12, PD13, PD14 sont fournies à titre d'exemple. Veuillez les modifier en fonction des GPIO disponibles sur votre carte mère.
La lumière rouge utilise shutdown_value: 1 pour implémenter une sécurité en cas de panne :
- Fonctionnement normal : La lumière rouge est contrôlée par les macros, elle reste éteinte en condition normale
- Erreur/déconnexion : Lorsque Klipper entre en état d'arrêt, la lumière rouge est automatiquement allumée, sans aucune intervention de macro
- Il s'agit d'un mécanisme de sécurité au niveau matériel, garantissant que même si la logique de la macro échoue, la lumière rouge indique correctement une panne
Macros 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 (actif au niveau bas : 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 | Une erreur s'est produite, nécessite une intervention |
idle | Toutes éteintes | État inactif (par défaut) |
Exemple d'appel : LED_STATUS STATUS=printing
Intégration dans les macros d'impression
Ajoutez le contrôle LED dans les macros de début et de fin d'impression pour une commutation automatique des états.
Macro de début d'impression
[gcode_macro PRINT_START]
description: Macro de début d'impression
gcode:
# ... Autres logiques de début ...
# Définir la LED sur l'état d'impression
LED_STATUS STATUS=printing
# ... Opérations de chauffage, d'homing, etc. ...
Macro de fin d'impression
[gcode_macro PRINT_END]
description: Macro de fin d'impression
gcode:
# ... Autres logiques de fin ...
# Définir la LED sur l'état inactif
LED_STATUS STATUS=idle
Détection automatique d'état (optionnel)
Si vous souhaitez détecter automatiquement l'état de Klipper sans modifier les macros d'impression, utilisez la configuration suivante.
# Macro de variable d'état (pour enregistrer le dernier état et éviter les scintillements dus aux mises à jour répétées)
[gcode_macro _LED_STATE]
variable_last_status: "unknown"
gcode:
# Cette macro stocke uniquement une variable, aucune action n'est nécessaire
# Détection automatique d'é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 la LED 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 l'interrogation
UPDATE_DELAYED_GCODE ID=LED_AUTO_UPDATE DURATION=1
Logique de détermination d'é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 d'arrêt | Lumière rouge allumée (gérée automatiquement par shutdown_value) |
| Autre | Aucun des états ci-dessus détecté | Toutes éteintes |
Principe de fonctionnement
- La macro
_LED_STATEstocke le dernier état pour comparaison LED_AUTO_UPDATEdétecte l'état de Klipper chaque seconde- La LED est mise à jour uniquement en cas de changement d'état pour éviter les scintillements
- Lorsque Klipper entre dans un état d'arrêt suite à une erreur,
shutdown_valueprend automatiquement le contrôle de la lumière rouge