Es gibt sicher 1000 Anleitungen, wie Sie eine Leuchtdiode über einen Vorwiderstand mit einem GPIO-Pin verbinden und diese dann per Python, bash oder in sonst einer Programmiersprache ein- und wieder ausschalten. Aber wussten Sie, dass Sie auch die im Raspberry Pi integrierten LEDs per Software ein- und ausschalten können?
Im Folgenden beziehe ich mich auf den Raspberry Pi 2, Modell B. Bei diesem Modell gibt es vier LEDs. Zwei sind in die Ethernet-Buchse integriert und nicht Thema dieses Beitrags. Die beiden anderen befinden sich am Beginn der GPIO-Leiste:
- Die grüne LED (Status-LED = led0) flackert üblicherweise, wenn Daten von/zur SD-Karte übertragen werden.
- Die rote LED (Power-LED = led1) zeigt an, dass der Raspberry Pi mit der Stromversorgung verbunden ist.
Das Verhalten dieser beider LED wird durch /sys/class/leds/led<n>/trigger
bestimmt. Standardmäßig gelten die folgenden Einstellungen:
cat /sys/class/leds/led0/trigger
none [mmc0] timer oneshot heartbeat backlight
gpio cpu0 cpu1 cpu2 cpu3 default-on input
cat /sys/class/leds/led1/trigger
none mmc0 timer oneshot heartbeat backlight
gpio cpu0 cpu1 cpu2 cpu3 default-on [input]
Indem Sie beide trigger
-Dateien mit none
überschreiben, können Sie selbst die Kontrolle über die LEDs übernehmen:
sudo sh -c 'echo none > /sys/class/leds/led0/trigger'
sudo sh -c 'echo none > /sys/class/leds/led1/trigger'
Um eine LED ein- bzw. aus zu schalten, schreiben Sie 1
bzw. 0
in /sys/class/leds/led1/brightness
:
sudo sh -c 'echo 0 > /sys/class/leds/led0/brightness' # grüne LED aus
sudo sh -c 'echo 1 > /sys/class/leds/led1/brightness' # rote LED ein
Vorausgesetzt, dass die trigger
auf none
steht, können Sie die LEDs auch mit GPIO-Kommandos steuern. Der grünen LED ist der GPIO 47 zugeordnet (in BCM-Nummerierung), der roten LED 35. Mit dem Wiring-Pi-Kommando gpio
können Sie die LEDs auch ohne sudo
ein- und ausschalten:
gpio -g write 47 1 # grüne LED ein
gpio -g write 47 0
gpio -g write 35 1 # rote LED ein
gpio -g write 35 0
Raspberry Pi 3
Beim Pi 3 können Sie nur die grüne Leuchtdiode steuern.
Hey,
nützlicher Artikel! Ich habe so auch ein paar LEDs an meinem Laptop erkannt die ich zuerst noch nicht kannte.
sudo echo none > /sys/class/leds/led0/trigger
kann so nicht funktionieren, weil die Umleitung in der aktuellen shell, die keine root-Rechte besitzt, ausgeführt wird. Daher müsste eine neue shell gestartet werden:
sudo sh -c ‚echo none > /sys/class/leds/led0/trigger‘
Sie haben recht, ich habe den Artikel entsprechend korrigiert.
Ich hatte meine Tests in einer root-Shell ausgeführt (sudo -s). Bei der Adaption der Kommandos für den Artikel war ich dann zu schlampig …