Aller au contenu principal

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 décrit sa méthode de câblage et sa configuration dans Klipper.

Tension d'alimentation

Les voyants lumineux LED sont disponibles avec différentes tensions d'entrée. Cet article prend l'exemple d'une version 24V. Veuillez vérifier la compatibilité de la tension en fonction du modèle utilisé.

Instructions de câblage

Définition des couleurs des câbles

CouleurFonctionEmplacement de connexion
GrisBorne positive communeConnecté à l'alimentation 24V positive (ex : 24V de l'alimentation du ventilateur)
RougeContrôle de la lumière rougeConnecté à une broche de signal de contrôle du ventilateur de la carte mère
VertContrôle de la lumière verteConnecté à une broche de signal de contrôle du ventilateur de la carte mère
JauneContrôle de la lumière jauneConnecté à une broche de signal de contrôle du ventilateur de la carte mère

Polarité de contrôle

Les cartes mères d'imprimante FLY utilisent par défaut un contrôle par la borne négative :

  • La borne positive (fil gris) du voyant LED est connectée à 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.
Loading...

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 # Allume automatiquement la lumière rouge 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
Broches

Les broches PD12, PD13, PD14 sont utilisées ici comme exemples. Veuillez les modifier en fonction des GPIO disponibles sur votre carte mère.

Mécanisme de sécurité de la lumière rouge

La lumière rouge utilise shutdown_value : 1 pour implémenter un mécanisme de sécurité en cas de panne :

  • Fonctionnement normal : La lumière rouge est contrôlée par les macros et reste éteinte dans des conditions normales
  • 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 : même si la logique de la macro échoue, la lumière rouge peut indiquer correctement une panne.

Macro d'état

[gcode_macro LED_STATUS]
description: Définit 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 les lumières 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'étatEffet lumineuxCas d'utilisation
printingLumière verte+jaune alluméeImpression en cours
readyLumière verte alluméeKlipper connecté, imprimante prête
warningLumière jaune alluméeÉtat d'avertissement (ex : température anormale mais pas d'erreur)
errorLumière rouge alluméeErreur survenue, nécessite une intervention
idleToutes éteintesÉtat inactif (par défaut)

Exemple d'appel : LED_STATUS STATUS=printing

Détection automatique d'état (optionnel)

Pour détecter automatiquement l'état de Klipper sans modifier les macros d'impression, vous pouvez utiliser la configuration suivante.

# Macro de variable d'état (pour enregistrer le dernier état, éviter les rafraîchissements répétés et le scintillement)
[gcode_macro _LED_STATE]
variable_last_status: "unknown"
gcode:
# Cette macro ne fait que stocker la 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 les LED uniquement en cas de changement d'état pour éviter le scintillement
{% 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 KlipperCondition de déterminationEffet LED
En cours d'impressionprint_stats.state = printing/pausedLumière verte+jaune allumée
Connectéidle_timeout.state = ready/idleLumière verte allumée
ErreurKlipper entre en état d'arrêt (Shutdown)Lumière rouge allumée (gérée automatiquement par shutdown_value)
AutreAucun état ci-dessus détectéToutes éteintes

Principe de fonctionnement

  1. La macro _LED_STATE stocke le dernier état pour comparaison
  2. LED_AUTO_UPDATE détecte l'état de Klipper chaque seconde
  3. LED_STATUS est appelée uniquement en cas de changement d'état pour mettre à jour les lumières, évitant ainsi le scintillement
  4. Lorsque Klipper entre en état d'arrêt (Shutdown) suite à une erreur, shutdown_value prend automatiquement le contrôle de la lumière rouge
Loading...