Il LED OK può essere controllato dal software dello spazio utente. Dettagli qui: Ri: Possiamo controllare i led di bordo
Riassumendo da quanto sopra (tutto merito a BrianW):
Il LED OK è disponibile come /sys/class/leds/led0/
.
Il driver LED del kernel ha "trigger" che consentono ad altre parti del kernel di controllare il LED. Il trigger predefinito per il LED è ' mmc0
', che lo fa accendere quando si accede alla scheda SD.
root@raspberrypi:~# cat /sys/class/leds/led0/trigger
none [mmc0]
È possibile disattivare il mmc0
trigger come segue:
echo none >/sys/class/leds/led0/trigger
Il LED può essere acceso e spento usando il brightness
file ' '. La luminosità minima è 0 e la massima è 255. Poiché non esiste un supporto di luminosità variabile, qualsiasi valore maggiore di 0 accenderà il LED.
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
Impostando la luminosità su 0, il trigger viene automaticamente impostato su "nessuno".
Se si desidera che il LED torni alla sua funzione predefinita:
echo mmc0 >/sys/class/leds/led0/trigger
Ci sono un paio di moduli del kernel che puoi caricare ( ledtrig_timer
e ledtrig_heartbeat
) che faranno lampeggiare il LED per te.
modprobe ledtrig_heartbeat
echo heartbeat >/sys/class/leds/led0/trigger
Dopo aver disattivato il mmc0
trigger, è possibile utilizzare GPIO16 per controllare il LED. È attivo-basso, quindi è necessario impostare il pin basso per accendere il LED e alto per spegnerlo.
Da Python, puoi usare il modulo RPi.GPIO
per controllare il pin 16. C'è anche un driver C #.
Codice d'esempio
#!/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)