O LED OK pode ser controlado a partir do software de espaço do usuário. Detalhes aqui: Re: Podemos controlar os leds de bordo
Resumido do exposto (todo o crédito para BrianW):
O LED OK está disponível como /sys/class/leds/led0/
.
O driver do LED do kernel possui "gatilhos" que permitem que outra parte do kernel controle o LED. O gatilho padrão para o LED é ' mmc0
', que acende quando o cartão SD é acessado.
root@raspberrypi:~# cat /sys/class/leds/led0/trigger
none [mmc0]
Você pode desativar o mmc0
gatilho da seguinte maneira:
echo none >/sys/class/leds/led0/trigger
O LED pode ser ligado e desligado usando o brightness
arquivo ' '. O brilho mínimo é 0 e o máximo é 255. Como não há suporte para brilho variável, qualquer valor maior que 0 acenderá o LED.
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
Definir o brilho para 0 define automaticamente o gatilho para "nenhum".
Se você deseja que o LED volte à sua função padrão:
echo mmc0 >/sys/class/leds/led0/trigger
Existem alguns módulos do kernel que você pode carregar ( ledtrig_timer
e ledtrig_heartbeat
) que piscarão o LED para você.
modprobe ledtrig_heartbeat
echo heartbeat >/sys/class/leds/led0/trigger
Depois de desligar o mmc0
gatilho, você pode usar o GPIO16 para controlar o LED. Como ativo-baixo, é necessário definir o pino baixo para ligar o LED e alto para desligá-lo.
No Python, você pode usar o módulo RPi.GPIO
para controlar o pino 16. Há também um driver C #.
Código de amostra
#!/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)