Светодиод OK может управляться из пользовательского программного обеспечения. Подробности здесь: Re: Можем ли мы контролировать бортовые светодиоды
Суммировано из вышесказанного (все кредиты BrianW):
Светодиод ОК доступен как /sys/class/leds/led0/
.
Драйвер светодиода ядра имеет «триггеры», которые позволяют какой-то другой части ядра управлять светодиодом. По умолчанию для светодиода используется триггер « mmc0
», который включает его при обращении к SD-карте.
root@raspberrypi:~# cat /sys/class/leds/led0/trigger
none [mmc0]
Вы можете отключить mmc0
триггер следующим образом:
echo none >/sys/class/leds/led0/trigger
Светодиод можно включать и выключать с помощью brightness
файла ' '. Минимальная яркость равна 0, а максимальная - 255. Поскольку поддержка переменной яркости не поддерживается, любое значение, большее 0, будет включать светодиод.
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
Установка яркости на 0 автоматически устанавливает триггер на «нет».
Если вы хотите, чтобы светодиод вернулся к своей функции по умолчанию:
echo mmc0 >/sys/class/leds/led0/trigger
Есть пара модулей ядра, которые вы можете загрузить ( ledtrig_timer
и ledtrig_heartbeat
), которые будут мигать для вас.
modprobe ledtrig_heartbeat
echo heartbeat >/sys/class/leds/led0/trigger
После выключения mmc0
триггера вы можете использовать GPIO16 для управления светодиодом. Это активный низкий уровень, поэтому вам нужно установить низкий уровень сигнала, чтобы включить светодиод, и высокий, чтобы выключить его.
В Python вы можете использовать модуль RPi.GPIO
для управления выводом 16. Также есть драйвер C #.
Образец кода
#!/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)