Na RPi znajduje się 5 diod LED: OK, PWR, FDX, LNK, 10M.
Chciałbym wiedzieć, czy jest możliwe, aby kontrolować każdy z nich z oprogramowaniem tj je włączyć, zmienić intensywność (lub nawet zmienić kolor westchnienie ).
A jeśli tak, to gdzie mogę o tym poczytać? Diody LED mogą być bardzo przydatnym sposobem sygnalizowania statusu aplikacji użytkownika, gdy nie są wymagane do pierwotnego użycia.
Odpowiedzi:
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.Możesz wyłączyć
mmc0
spust w następujący sposób: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.Ustawienie jasności na 0 powoduje automatyczne ustawienie wyzwalacza na „brak”.
Jeśli chcesz, aby dioda LED powróciła do domyślnej funkcji:
Istnieje kilka modułów jądra, które można załadować (
ledtrig_timer
iledtrig_heartbeat
), które sflashują diodę LED za Ciebie.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 #.źródło
echo gpio | sudo tee /sys/class/leds/led1/trigger
, a następnie włącz lub wyłącz za pomocąecho [0|1] | sudo tee /sys/class/leds/led1/brightness
.Żadna z wbudowanych diod LED nie może być sterowana programowo - wszystkie są używane do innych celów.
To oficjalna odpowiedź ... Przestudiujmy schemat .
Page 4 PWR LED jest podłączony bezpośrednio do zasilacza, więc nie możemy tego kontrolować w oprogramowaniu.
Page 3 FDX, LNK i 10M są podłączone do układu Ethernet, więc ponownie nie możemy kontrolować ich w oprogramowaniu (bez jakiegoś funky hack traffic ...).
Page 4 ALE OK jest faktycznie kontrolowany przez GPIO 16, więc istnieje możliwość włamania ...
źródło
Istnieje prostszy sposób sterowania diodami LED LAN z obszaru użytkownika. Kod źródłowy jest dostępny z
http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=72070
Program musi być uruchamiany z sudo.
źródło
Możesz kontrolować wszystkie diody LED (oprócz PWR w starszych modelach Pi, jak powiedziano w innych odpowiedziach).
Ale w przypadku diod Ethernet konieczne będzie załatanie sterownika i ponowne skompilowanie jądra.
Informacje o tym, jak można ponownie skompilować tutaj: http://elinux.org/RPi_Kernel_Compilation
Patch i więcej informacji tutaj (w razie potrzeby tłumacz google): http://everpi.tsar.in/2013/11/patch-para-controlar-os-leds-ethernet-do-raspberrypi.html
Po zakończeniu możesz kontrolować: / sys / class / smsc95xx_leds i eth_fdx, eth_lnk e eth_spd.
Przykład: echo 0> / sys / class / smsc95xx_leds / eth_fdx echo 1> / sys / class / smsc95xx_leds / eth_fdx
źródło
Mogę potwierdzić, że dzięki Raspberry Pi 2 można również kontrolować diodę PWD!
Dioda LED mocy jest kontrolowana przez pliki w:
Możesz go wyłączyć tak jak diodę LED statusu, używając:
Zobacz odpowiedź Guy'a, aby uzyskać więcej sposobów sterowania diodami LED
źródło
Napisałem program przestrzeni użytkownika, który pozwala kontrolować diody Ethernet.
Program wymaga nowszej wersji
libusb-1.0
(NIE starszej wersji 0.1). Działa z LAN9512 (np. Na starszym Raspberry B), a także z układami LAN9514 (np. Na Raspberry B + lub Raspberry 2)Szczegóły można znaleźć tutaj: Sterowanie LED LAN951x
źródło
Za pomocą Pi 2 możesz kontrolować zarówno czerwoną, jak i zieloną diodę LED na pokładzie.
Dokumentacja IoT systemu Windows 10 wymienia odpowiednio czerwoną diodę LED zasilania i zieloną diodę OK na GPIO 35 i 47.
https://ms-iot.github.io/content/en-US/win10/samples/PinMappingsRPi2.htm
Próbowałem z Windows 10 IoT i Python na Raspbian. Oba mogą sterować diodami LED, chociaż Raspbian zastępuje diodę LED za każdym razem, gdy coś uzyskuje dostęp do karty SD. Prawdopodobnie usunięcie wyzwalacza usunęłoby to zachowanie).
Oto próbka. (Pamiętaj, że nie zastępuje to wyzwalacza, jak wspomniano w poprzednich postach)
źródło