泰山派设备控制(RGB)
泰山派设备系统控制(RGB)
1、进入设备系统
cd /sys/class

2、进入RGB灯子系统
cd /sys/class/leds/
罗列可操作的设备,可以看到三个设备,“rgb-led-b”,“rgb-led-g”,“rgb-led-r”,分别对应RGB的蓝,绿,红。

3、我们对其单一色灯进行操作
cd rgb-led-b
4、ls罗列出可操作的参数

交给AI解释一下:

查看亮度参数
cat brightness

brightness的值为255,此时RGB的蓝灯是亮的,很自然的猜测赋值0,可以使灯熄灭
5、我们通过赋值参数使蓝灯熄灭
echo 0 >brightness

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

让AI翻译得知

执行文件为ARM aarch64位elf链接文件
查看系统位数,为64位
uname -m

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

浙公网安备 33010602011771号