泰山派设备控制(RGB)

泰山派设备系统控制(RGB)

1、进入设备系统

cd /sys/class

image-20241223215933261

2、进入RGB灯子系统

cd /sys/class/leds/

罗列可操作的设备,可以看到三个设备,“rgb-led-b”,“rgb-led-g”,“rgb-led-r”,分别对应RGB的蓝,绿,红。

image-20241223220037404

3、我们对其单一色灯进行操作

cd rgb-led-b

4、ls罗列出可操作的参数

image-20241223220251613

交给AI解释一下:

image-20241223220538313

查看亮度参数

cat brightness 

image-20241223220431761

brightness的值为255,此时RGB的蓝灯是亮的,很自然的猜测赋值0,可以使灯熄灭

5、我们通过赋值参数使蓝灯熄灭

echo 0 >brightness

image-20241223220739194

ps:使用vim编辑赋值也可以

观察现象,蓝灯成功熄灭,

echo 255 >brightness

重新赋值255,则重新点亮

6、编写shell脚本执行

亮蓝灯脚本:

vim led_b_on.sh

shell脚本中写入

cd /sys/class/leds/rgb-led-b
echo 255 >brightness

灭蓝灯脚本:

vim led_b_off.sh

shell脚本中写入

cd /sys/class/leds/rgb-led-b
echo 0 >brightness

赋权

sudo chmod 777 led_b_on.sh
sudo chmod 777 led_b_off.sh

执行亮灯

./led_b_on.sh

执行灭灯

./led_b_off.sh

7、使用 c语言调用shell命令控制RGB灯

使用system 函数来完成。格式:system(要执行的命令)

编写闪灯代码led.c

vim led.c
#include <stdio.h>

int main(void)
{
    while(1)
    {
        system("echo 255 > /sys/class/leds/rgb-led-b/brightness");//同时打开RGB红,绿,蓝灯,显白光
        system("echo 255 > /sys/class/leds/rgb-led-g/brightness");
        system("echo 255 > /sys/class/leds/rgb-led-r/brightness");
        sleep(5);
        system("echo 0 > /sys/class/leds/rgb-led-b/brightness")关闭所以灯
        system("echo 0 > /sys/class/leds/rgb-led-g/brightness");
        system("echo 0 > /sys/class/leds/rgb-led-r/brightness");
        sleep(5);
    }
    return 0;
}

8、编译、赋权,运行

gcc led.c -o led_out

chmod 777 led_out

./led_out

9、查看执行文件的类型

file led_out

image-20241225203030863

让AI翻译得知

image-20241225203435187

执行文件为ARM aarch64位elf链接文件

查看系统位数,为64位

uname -m

image-20241225204118621

只有在可执行链接文件和执行系统位数,架构相同的情况下才可执行。

posted @   沁拒离  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示