🛠 PWM : faire respirer la LED bleue

Hardkernel ODROID-XU4 (Samsung Exynos5422) · intermediaire · Schéma : IMG-odroid-xu4-intermediaire-1-odroidxu4-pwm-led.svg — Signal PWM en dents de scie sortant du contrôleur PWM de l'ODROID-XU4 (canal 2) vers la LED bleue heartbeat, canal 0 relié au ventilateur

Objetivos

Dominar la salida PWM del ODROID-XU4 bajo Linux mainline: el device tree expone el canal PWM0 para el ventilador y PWM2 para el LED azul heartbeat. Liberarás el trigger del kernel para controlar tú mismo el ciclo de trabajo y hacer que el LED «respire».

Material

Código completo

#!/usr/bin/env bash
# respirer.sh — fade de la LED bleue heartbeat (PWM2) du XU4
set -euo pipefail
CHIP=/sys/class/pwm/pwmchip0

# 1) Liberer le trigger heartbeat pose par le device tree
if [ -e /sys/class/leds/odroid:blue:heartbeat/trigger ]; then
  echo none | sudo tee /sys/class/leds/odroid:blue:heartbeat/trigger
fi

# 2) Exporter le canal PWM2 (PWM0 = ventilateur, ne pas y toucher !)
echo 2 | sudo tee "$CHIP/export" >/dev/null 2>&1 || true
PWM="$CHIP/pwm2"

sudo tee "$PWM/period" >/dev/null <<< 1000000      # periode 1 ms (ns)
for d in $(seq 0 50000 1000000) $(seq 1000000 -50000 0); do
  echo "$d" | sudo tee "$PWM/duty_cycle" >/dev/null
  sleep 0.03
done

Verificación esperada

El LED azul integrado sube y baja progresivamente su luminosidad. cat $PWM/duty_cycle sigue los valores escritos. El ventilador (pwm0, controlado por el governor térmico a 50/60/70 °C) continúa funcionando con normalidad.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales