Existem 5 LEDs no RPi: OK, PWR, FDX, LNK, 10M.
Eu gostaria de saber se é possível controlar qualquer um deles a partir do software, por exemplo, ativá-los ou alterar a intensidade (ou até mesmo alterar o suspiro de cores ).
E se sim, onde posso ler sobre isso? Os LEDs podem ser uma maneira bastante útil de sinalizar o status do aplicativo do usuário quando não são necessários para o uso original.
Respostas:
O LED OK pode ser controlado a partir do software de espaço do usuário. Detalhes aqui: Re: Podemos controlar os leds de bordo
Resumido do exposto (todo o crédito para BrianW):
O LED OK está disponível como
/sys/class/leds/led0/
.O driver do LED do kernel possui "gatilhos" que permitem que outra parte do kernel controle o LED. O gatilho padrão para o LED é '
mmc0
', que acende quando o cartão SD é acessado.Você pode desativar o
mmc0
gatilho da seguinte maneira:O LED pode ser ligado e desligado usando o
brightness
arquivo ' '. O brilho mínimo é 0 e o máximo é 255. Como não há suporte para brilho variável, qualquer valor maior que 0 acenderá o LED.Definir o brilho para 0 define automaticamente o gatilho para "nenhum".
Se você deseja que o LED volte à sua função padrão:
Existem alguns módulos do kernel que você pode carregar (
ledtrig_timer
eledtrig_heartbeat
) que piscarão o LED para você.Depois de desligar o
mmc0
gatilho, você pode usar o GPIO16 para controlar o LED. Como ativo-baixo, é necessário definir o pino baixo para ligar o LED e alto para desligá-lo.No Python, você pode usar o módulo
RPi.GPIO
para controlar o pino 16. Há também um driver C #.fonte
echo gpio | sudo tee /sys/class/leds/led1/trigger
, em seguida, ligue ou desligue comecho [0|1] | sudo tee /sys/class/leds/led1/brightness
.Nenhum dos LEDs embutidos pode ser controlado em software - todos eles são usados para outras coisas.
Agora, essa é a resposta oficial ... Vamos estudar o esquema .
Page 4 O LED PWR está conectado diretamente à fonte de alimentação, portanto não podemos controlar isso no software.
O FDX, o LNK e o 10M estão todos conectados ao chip Ethernet, então, novamente, não podemos controlá-los em software (sem algum truque de tráfego ...).
Page 4 MAS OK é realmente controlado pelo GPIO 16, então existe a possibilidade de um hack ...
fonte
Existe uma maneira mais simples de controlar os LEDs da LAN da terra do usuário. O código fonte está disponível em
http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=72070
O programa precisa ser executado com o sudo.
fonte
Você pode controlar todos os leds (exceto o PWR nos modelos Pi mais antigos, como dito em outras respostas).
Mas para leds ethernet, você precisará corrigir o driver e recompilar o kernel.
Informações sobre como a recompilação pode chegar aqui: http://elinux.org/RPi_Kernel_Compilation
Correção e mais informações aqui (traduza se necessário): http://everpi.tsar.in/2013/11/patch-para-controlar-os-leds-ethernet-do-raspberrypi.html
Depois de concluído, você poderá controlar: / sys / class / smsc95xx_leds e eth_fdx, eth_lnk e eth_spd.
Exemplo: eco 0> / sys / class / smsc95xx_leds / eth_fdx eco 1> / sys / class / smsc95xx_leds / eth_fdx
fonte
Posso confirmar que com o Raspberry Pi 2 também é possível controlar o LED PWD!
O LED de energia é controlado pelos arquivos em:
Você pode desligá-lo exatamente como o LED Status usando:
Veja a resposta de Guy para mais maneiras de controlar os LEDs
fonte
Eu escrevi um programa de espaço de usuário que permite controlar os LEDs da Ethernet.
O programa requer o mais recente
libusb-1.0
(e não o 0.1 mais antigo). Funciona com LAN9512 (por exemplo, no Raspberry B mais antigo) e com chips LAN9514 (por exemplo, em Raspberry B + ou Raspberry 2)Os detalhes podem ser encontrados aqui: Controle de LAN951x LED
fonte
Com o Pi 2, você pode controlar os LEDs vermelho e verde a bordo.
A documentação da IoT do Windows 10 lista o LED vermelho de energia e o LED verde Ok no GPIO 35 e 47, respectivamente.
https://ms-iot.github.io/content/en-US/win10/samples/PinMappingsRPi2.htm
Eu tentei com o Windows 10 IoT e com Python no Raspbian. Ambos podem controlar os LEDs, embora o Raspbian substitua o LED sempre que algo acessar o cartão SD. Presumivelmente, limpar o gatilho removeria esse comportamento.)
Aqui está uma amostra. (Observe que isso não substitui o gatilho, como mencionado nas postagens anteriores)
fonte