Hay 5 LED en el RPi: OK, PWR, FDX, LNK, 10M.
Me gustaría saber si es posible controlar cualquiera de estos desde el software, es decir, encenderlos o cambiar la intensidad (o incluso cambiar el jadeo de color ).
Y si es así, ¿dónde puedo leer sobre esto? Los LED podrían ser una forma bastante útil de indicar el estado de la aplicación del usuario cuando no son necesarios para el uso original.
Respuestas:
El LED OK puede controlarse desde el software de espacio del usuario. Detalles aquí: Re: ¿Podemos controlar los leds a bordo?
Resumido de lo anterior (todo crédito a BrianW):
El LED OK está disponible como
/sys/class/leds/led0/
.El controlador de LED del núcleo tiene "disparadores" que permiten que otra parte del núcleo controle el LED. El disparador predeterminado para el LED es '
mmc0
', lo que hace que se encienda cuando se accede a la tarjeta SD.Puede desactivar el
mmc0
activador de la siguiente manera:El LED se puede encender y apagar usando el
brightness
archivo ' '. El brillo mínimo es 0, y el máximo es 255. Como no hay soporte de brillo variable, cualquier valor mayor que 0 encenderá el LED.Establecer el brillo en 0 establece automáticamente el disparador en "ninguno".
Si desea que el LED vuelva a su función predeterminada:
Hay un par de módulos del núcleo que puede cargar (
ledtrig_timer
yledtrig_heartbeat
) que parpadearán el LED por usted.Una vez que haya apagado el
mmc0
gatillo, puede usar GPIO16 para controlar el LED. Está activo bajo, por lo que debe establecer el pin bajo para encender el LED y alto para apagarlo.Desde Python, puede usar el módulo
RPi.GPIO
para controlar el pin 16. También hay un controlador C #.fuente
echo gpio | sudo tee /sys/class/leds/led1/trigger
, luego encienda o apague conecho [0|1] | sudo tee /sys/class/leds/led1/brightness
.Ninguno de los LED integrados puede controlarse en el software; todos se utilizan para otras cosas.
Ahora, esa es la respuesta oficial ... Estudiemos el esquema .
Page 4 El LED PWR está conectado directamente a la fuente de alimentación, por lo que no podemos controlarlo en el software.
Page 3 FDX, LNK y 10M están todos conectados al chip Ethernet, por lo que nuevamente no podemos controlarlos en el software (sin algún truco de tráfico funky ...).
Página 4 PERO OK está realmente controlado por GPIO 16, por lo que existe la posibilidad de un hack ...
fuente
Hay una forma más sencilla de controlar los LED de LAN desde el país de usuario. El código fuente está disponible en
http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=72070
El programa debe ejecutarse con sudo.
fuente
Puede controlar todos los leds (excepto PWR en modelos Pi más antiguos, como se dijo en otras respuestas).
Pero para los leds de ethernet necesitará parchear el controlador y recompilar el kernel.
Información sobre cómo puede llegar la compilación aquí: http://elinux.org/RPi_Kernel_Compilation
Parche y más información aquí (traductor de Google si es necesario): http://everpi.tsar.in/2013/11/patch-para-controlar-os-leds-ethernet-do-raspberrypi.html
Una vez hecho esto, podrá controlar: / sys / class / smsc95xx_leds y eth_fdx, eth_lnk e eth_spd.
Ejemplo: echo 0> / sys / class / smsc95xx_leds / eth_fdx echo 1> / sys / class / smsc95xx_leds / eth_fdx
fuente
¡Puedo confirmar que con la Raspberry Pi 2 también es posible controlar el LED PWD!
El LED de alimentación está controlado por los archivos en:
Puede apagarlo al igual que el LED de estado usando:
Vea la respuesta de Guy para más formas de controlar los LED
fuente
Escribí un programa de espacio de usuario que le permite controlar los LED de Ethernet.
El programa requiere el más reciente
libusb-1.0
(NO el antiguo 0.1). Funciona con LAN9512 (por ejemplo, en la Raspberry B más antigua) así como con chips LAN9514 (por ejemplo, en Raspberry B + o Raspberry 2)Los detalles se pueden encontrar aquí: control LED LAN951x
fuente
Con el Pi 2, puede controlar los LED internos rojos y verdes.
La documentación de Windows 10 IoT enumera el LED rojo de encendido y el LED verde Ok en GPIO 35 y 47, respectivamente.
https://ms-iot.github.io/content/en-US/win10/samples/PinMappingsRPi2.htm
Intenté con Windows 10 IoT y con Python en Raspbian. Ambos pueden controlar los LED, aunque Raspbian anula el LED cada vez que algo accede a la tarjeta SD. Presumiblemente, borrar el gatillo eliminaría este comportamiento).
Aquí hay una muestra. (Tenga en cuenta que esto no anula el activador como se mencionó en publicaciones anteriores)
fuente