На RPi есть 5 светодиодов: OK, PWR, FDX, LNK, 10M.
Я хотел бы знать, возможно ли управлять какой-либо из них с помощью программного обеспечения, т.е. включить их, или изменить интенсивность (или даже изменить цветовой вздох ).
И если так, где я могу прочитать об этом? Светодиоды могут быть очень удобным способом оповещения о состоянии приложения пользователя, когда они не требуются для первоначального использования.
Ответы:
Светодиод OK может управляться из пользовательского программного обеспечения. Подробности здесь: Re: Можем ли мы контролировать бортовые светодиоды
Суммировано из вышесказанного (все кредиты BrianW):
Светодиод ОК доступен как
/sys/class/leds/led0/
.Драйвер светодиода ядра имеет «триггеры», которые позволяют какой-то другой части ядра управлять светодиодом. По умолчанию для светодиода используется триггер «
mmc0
», который включает его при обращении к SD-карте.Вы можете отключить
mmc0
триггер следующим образом:Светодиод можно включать и выключать с помощью
brightness
файла ' '. Минимальная яркость равна 0, а максимальная - 255. Поскольку поддержка переменной яркости не поддерживается, любое значение, большее 0, будет включать светодиод.Установка яркости на 0 автоматически устанавливает триггер на «нет».
Если вы хотите, чтобы светодиод вернулся к своей функции по умолчанию:
Есть пара модулей ядра, которые вы можете загрузить (
ledtrig_timer
иledtrig_heartbeat
), которые будут мигать для вас.После выключения
mmc0
триггера вы можете использовать GPIO16 для управления светодиодом. Это активный низкий уровень, поэтому вам нужно установить низкий уровень сигнала, чтобы включить светодиод, и высокий, чтобы выключить его.В Python вы можете использовать модуль
RPi.GPIO
для управления выводом 16. Также есть драйвер C #.источник
echo gpio | sudo tee /sys/class/leds/led1/trigger
, затем включите или выключите с помощьюecho [0|1] | sudo tee /sys/class/leds/led1/brightness
.Ни один из встроенных светодиодов не может управляться программно - все они используются для других целей.
Теперь это официальный ответ ... Давайте изучим схему .
Page 4 Светодиод PWR подключен напрямую к источнику питания, поэтому мы не можем контролировать это программно.
Page 3 FDX, LNK и 10M все подключены к чипу Ethernet, поэтому мы снова не можем управлять ими программно (без какого-либо хакерского взлома трафика ...).
Page 4 НО OK фактически контролируется GPIO 16, так что есть возможность взломать ...
источник
Существует более простой способ управления индикаторами локальной сети из пользовательского пространства. Исходный код доступен с
http://www.raspberrypi.org/forums/viewtopic.php?f=63&t=72070
Программа должна быть запущена с помощью sudo.
источник
Вы можете управлять всеми светодиодами (кроме PWR в старых моделях Pi, как сказано в других ответах).
Но для Ethernet-светодиодов вам нужно будет пропатчить драйвер и перекомпилировать ядро.
Информацию о том, как перекомпилировать можно получить здесь: http://elinux.org/RPi_Kernel_Compilation
Патч и дополнительную информацию здесь (при необходимости, Google переводчик): http://everpi.tsar.in/2013/11/patch-para-controlar-os-leds-ethernet-do-raspberrypi.html
После этого вы сможете управлять: / sys / class / smsc95xx_leds и eth_fdx, eth_lnk и eth_spd.
Пример: echo 0> / sys / class / smsc95xx_leds / eth_fdx echo 1> / sys / class / smsc95xx_leds / eth_fdx
источник
Я могу подтвердить, что с Raspberry Pi 2 можно также управлять светодиодом PWD!
Индикатор питания контролируется файлами в:
Вы можете выключить его так же, как индикатор состояния, используя:
Посмотрите ответ Гая для большего количества способов управлять светодиодами
источник
Я написал пользовательскую программу, которая позволяет вам управлять светодиодами Ethernet.
Программа требует более новой
libusb-1.0
версии (НЕ более старой версии 0.1). Он работает с LAN9512 (например, на старшей Raspberry B), а также с чипами LAN9514 (например, на Raspberry B + или Raspberry 2)Подробности можно найти здесь: LAN951x LED control
источник
С Pi 2 вы можете управлять как красными, так и зелеными встроенными светодиодами.
В документации по IoT для Windows 10 перечислены красный индикатор питания и зеленый индикатор Ok на GPIO 35 и 47 соответственно.
https://ms-iot.github.io/content/en-US/win10/samples/PinMappingsRPi2.htm
Я попробовал с Windows 10 IoT и с Python на Raspbian. Оба могут управлять светодиодами, хотя Raspbian перекрывает светодиод всякий раз, когда что-то обращается к SD-карте. Предположительно, очистка триггера устранит это поведение.)
Вот образец. (Обратите внимание, что это не отменяет триггер, как упоминалось в предыдущих сообщениях)
источник