6

使用shell控制OrangePi的发光二极管

 3 years ago
source link: https://www.lujun9972.win/blog/2018/03/10/%E4%BD%BF%E7%94%A8shell%E6%8E%A7%E5%88%B6orangepi%E7%9A%84%E5%8F%91%E5%85%89%E4%BA%8C%E6%9E%81%E7%AE%A1/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用shell控制OrangePi的发光二极管

本文以安装了Armbian的OrangePi PC2为例。

在OrangePi PC2中有两个LED灯可以被软件控制:一个红灯,一个绿灯。

在Linux中,LED是通过 /sys 目录里的文件来控制的,这个目录是由内核驱动程序实现的。

这两个LED灯相关的目录分别为 /sys/class/leds/orangepi:green:pwr 以及 /sys/class/leds/orangepi:red:status.

从名字上也很容易看出,前者是控制绿灯,后者是控制红灯的。

而在具体的LED灯目录中,有各种文件和目录可以用来改变LED灯的行为和获取LED灯的状态:

ls -F /sys/class/leds/orangepi:green:pwr/
brightness  device@  max_brightness  power/  subsystem@  trigger  uevent

触发LED的条件(trigger)

我们可以使用LED灯来表现各种事件,通过查看 trigger 文件能够看到哪些事件可以用来出发LED闪亮:

cat /sys/class/leds/orangepi:green:pwr/trigger
[none] kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock usbport usb-gadget usb-host mmc0 heartbeat cpu cpu0 cpu1 cpu2 cpu3 rc-feedback 0.2:01:1Gbps 0.2:01:100Mbps 0.2:01:10Mbps 

可以看到,支持的触发器有很多,但是 none 外面的方括号表明当前的选择是 none

只有当触发器源为none的情况下,才能用软件来控制LED灯

点亮/熄灭LED灯

在LED灯目录中,还有一个 brightness 的文件,用来表示LED灯的亮度。其中0表示完全熄灭,255表示最大亮度。

cat /sys/class/leds/orangepi:green:pwr/brightness
255

这说明,绿灯是亮着的。

目前,OrangePi的LED只能亮或者不亮,也就是说,任何不为0的亮度值都会让LED完全点亮。

要点亮或者熄灭LED灯,可以直接通过修改 brightness 的值来实现,比如:

echo 0|sudo tee /sys/class/leds/orangepi:green:pwr/brightness

就会让绿灯熄灭了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK