OK LED może być sterowane z oprogramowania przestrzeni użytkownika. Szczegóły tutaj: Re: Czy możemy kontrolować diody LED na pokładzie
Podsumowując z powyższego (wszystkie podziękowania dla BrianW):
Dioda OK jest dostępna jako /sys/class/leds/led0/
.
Sterownik LED jądra ma „wyzwalacze”, które pozwalają innej części jądra kontrolować diodę LED. Domyślnym wyzwalaczem dla diody LED jest „ mmc0
”, co powoduje, że włącza się ona po uzyskaniu dostępu do karty SD.
root@raspberrypi:~# cat /sys/class/leds/led0/trigger
none [mmc0]
Możesz wyłączyć mmc0
spust w następujący sposób:
echo none >/sys/class/leds/led0/trigger
LED można włączać i wyłączać za pomocą brightness
pliku „ ”. Minimalna jasność wynosi 0, a maksymalna wynosi 255. Ponieważ brak obsługi zmiennej jasności, każda wartość większa od 0 spowoduje włączenie diody LED.
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
Ustawienie jasności na 0 powoduje automatyczne ustawienie wyzwalacza na „brak”.
Jeśli chcesz, aby dioda LED powróciła do domyślnej funkcji:
echo mmc0 >/sys/class/leds/led0/trigger
Istnieje kilka modułów jądra, które można załadować ( ledtrig_timer
i ledtrig_heartbeat
), które sflashują diodę LED za Ciebie.
modprobe ledtrig_heartbeat
echo heartbeat >/sys/class/leds/led0/trigger
Po wyłączeniu mmc0
spustu możesz użyć GPIO16 do sterowania diodą LED. Jest aktywny-niski, więc musisz ustawić pin niski, aby włączyć diodę LED, i wysoki, aby ją wyłączyć.
Z Pythona możesz użyć modułu RPi.GPIO
do sterowania pinem 16. Istnieje również sterownik C #.
Przykładowy kod
#!/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)