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.
root@raspberrypi:~# cat /sys/class/leds/led0/trigger
none [mmc0]
Puede desactivar el mmc0
activador de la siguiente manera:
echo none >/sys/class/leds/led0/trigger
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.
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
Establecer el brillo en 0 establece automáticamente el disparador en "ninguno".
Si desea que el LED vuelva a su función predeterminada:
echo mmc0 >/sys/class/leds/led0/trigger
Hay un par de módulos del núcleo que puede cargar ( ledtrig_timer
y ledtrig_heartbeat
) que parpadearán el LED por usted.
modprobe ledtrig_heartbeat
echo heartbeat >/sys/class/leds/led0/trigger
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 #.
Código de muestra
#!/usr/bin/python
import RPi.GPIO as GPIO
from time import sleep
# Needs to be BCM. GPIO.BOARD lets you address GPIO ports by periperal
# connector pin number, and the LED GPIO isn't on the connector
GPIO.setmode(GPIO.BCM)
# set up GPIO output channel
GPIO.setup(16, GPIO.OUT)
# On
GPIO.output(16, GPIO.LOW)
# Wait a bit
sleep(10)
# Off
GPIO.output(16, GPIO.HIGH)