🛠 Fondu LED progressif avec PWM sous sysfs (meson)

Placas Libre Computer Amlogic — libre-amlogic (buque insignia: Le Potato AML-S905X-CC) · intermediaire · Schéma : IMG-libre-amlogic-intermediaire-1-libre-amlogic-intermediaire-pwm-fondu-led.svg — LED sur une broche PWM du connecteur 40 broches du Le Potato via résistance, fondu piloté par /sys/class/pwm après activation de l'overlay.

Objetivos

Realizar un fundido de LED (variación de intensidad) en el Le Potato exportando una salida PWM del controlador meson a través de /sys/class/pwm, después de activar la capa de dispositivo (overlay) del árbol de dispositivos correspondiente.

Material

> SIN VERIFICAR: el pin PWM exacto del conector de 40 pines y su overlay no están confirmados por la ficha técnica; verifique con sudo armbian-config (System > Options > HW interfaces) y luego ls /sys/class/pwm — el hub oficial documenta la activación de las interfaces de hardware (I2C/SPI/PWM) antes de su uso.

Código completo

#!/bin/bash
# fondu.sh — fondu LED via sysfs PWM (adapter pwmchipN selon votre overlay)
CHIP=0                       # /sys/class/pwm/pwmchip$CHIP
OUT=/sys/class/pwm/pwmchip$CHIP
export $OUT/pwm0 2>/dev/null || echo 0 | sudo tee $OUT/export
duty_max=1000000             # période 1 ms en nanosecondes
echo $duty_max | sudo tee $OUT/pwm0/period
echo 1 | sudo tee $OUT/pwm0/enable
while true; do
  for ((d=0; d<=duty_max; d+=25000)); do
    echo $d | sudo tee $OUT/pwm0/duty_cycle >/dev/null; sleep 0.02; done
  for ((d=duty_max; d>=0; d-=25000)); do
    echo $d | sudo tee $OUT/pwm0/duty_cycle >/dev/null; sleep 0.02; done
done

Verificación esperada

Después de activar el overlay y reiniciar, /sys/class/pwm/pwmchipN existe; después de ejecutar echo 0 > export, el nodo pwm0 aparece y el LED sube y baja de intensidad en bucle.

Errores frecuentes

> SIN VERIFICAR: números exactos de pwmchip y de pin según el kernel utilizado.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales