使用 shell 控制 Orange Pi 的发光二极管

发布于 2023-02-14 20:59:45 字数 1598 浏览 63 评论 0

本文以安装了 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

就会让绿灯熄灭了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清风不识月

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文