Die OK-LED kann über die User-Space-Software gesteuert werden. Details hier: Betreff: Können wir die On-Board-LEDs steuern?
Zusammengefasst aus dem oben Gesagten (alle Kredite an BrianW):
Die OK-LED ist verfügbar als /sys/class/leds/led0/
.
Der Kernel-LED-Treiber hat "Trigger", mit denen ein anderer Teil des Kernels die LED steuern kann. Der Standard-Auslöser für die LED ist ' mmc0
', wodurch sie beim Zugriff auf die SD-Karte leuchtet.
root@raspberrypi:~# cat /sys/class/leds/led0/trigger
none [mmc0]
Sie können den mmc0
Trigger wie folgt deaktivieren :
echo none >/sys/class/leds/led0/trigger
Die LED kann mit der ' brightness
' Datei ein- und ausgeschaltet werden . Die Mindesthelligkeit beträgt 0 und die Höchsthelligkeit 255. Da keine variable Helligkeit unterstützt wird, schaltet jeder Wert über 0 die LED ein.
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
Wenn Sie die Helligkeit auf 0 setzen, wird der Trigger automatisch auf "Keine" gesetzt.
Wenn Sie möchten, dass die LED zu ihrer Standardfunktion zurückkehrt:
echo mmc0 >/sys/class/leds/led0/trigger
Es gibt ein paar Kernel-Module, die Sie laden können ( ledtrig_timer
und ledtrig_heartbeat
), die die LED für Sie blinken lassen.
modprobe ledtrig_heartbeat
echo heartbeat >/sys/class/leds/led0/trigger
Nachdem Sie den mmc0
Auslöser ausgeschaltet haben, können Sie die LED mit GPIO16 steuern. Es ist aktiv-niedrig, daher müssen Sie den Pin niedrig einstellen, um die LED einzuschalten, und hoch, um sie auszuschalten.
In Python können Sie mit dem Modul RPi.GPIO
Pin 16 steuern. Es gibt auch einen C # -Treiber.
Beispielcode
#!/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)