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 mmc0activador de la siguiente manera:
echo none >/sys/class/leds/led0/trigger
El LED se puede encender y apagar usando el brightnessarchivo ' '. 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_timery 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 mmc0gatillo, 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.GPIOpara 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)