【新手入门】树莓派Raspberry学习笔记5 控制板载LED灯

树莓派Raspberry Pi3B+学习笔记5

很多教程讲的都是利用GPIO口控制外设,这里讲一讲怎么控制raspberry 3B+的两个板载LED灯PWR和ACT

一、树莓派的两个板载LED

树莓派有两个板载LED,分别是PWR LED和ACT LED,用来指示树莓派的工作状态。PWR LED为led1,ACT LED为led2,我们可以用如下方法进行控制:

1、GPIO控制

将板载LED转为GPIO模式,之后通过控制GPIO口的输出来控制灯的亮灭(我没有找到GPIO口编号…就没有用这种方式了)

2、LX终端控制

在这里插入图片描述

在LX终端上输入命令语句进行控制。用户pi是没有权限去修改灯的状态的,故将LED设置为GPIO模式后,可以使用管道“|”加上tee(从标准输入读取写入标准输出和文件),给tee命令提权(sudo),由此写入brightness文件,控制指示灯的亮灭。控制命令如下:

将PWR LED设置为GPIO模式 (默认不亮)

echo gpio | sudo tee /sys/class/leds/led1/trigger # 这时候LED设置为GPIO模式了

启动 (1)/关闭(0) PWR LED

echo 1 | sudo tee /sys/class/leds/led1/brightness # 灯亮
echo 0 | sudo tee /sys/class/leds/led1/brightness # 灯灭

将PWR LED设置回检测电源连接的模式(初始模式)

echo input | sudo tee /sys/class/leds/led1/trigger # 最后调回此模式,作为指示灯

将ACT LED设置为GPIO模式

echo gpio | sudo tee /sys/class/leds/led1/trigger

启动 (1)/关闭(0) ACT LED

echo 1 | sudo tee /sys/class/leds/led0/brightness # 灯亮
echo 0 | sudo tee /sys/class/leds/led0/brightness # 灯灭

将ACT LED设置回初始模式

echo cpu0 | sudo tee /sys/class/leds/led0/trigger # 最后调回此模式,作为指示灯

3、python控制(略有问题…)

在python上写代码控制LED灯(以PWR LED为例):
!!!
!!!!!!先贴代码,后说问题,看完代码后一定一定先往后看!!!!!!!
!!!

from time import sleep
led = open('/sys/class/leds/led1/brightness', 'w')  //打开控制亮灭的文件brightness; w指write,写入文件
while True:
    led.write('0')#turn off
    sleep(0.5)
    led.write('1')#turn on
    sleep(0.5)

①在LX终端上将LED设置为GPIO模式:echo gpio | sudo tee /sys/class/leds/led1/trigger
②树莓派上默认运行的pi用户是没有权限打开brightness这个文件的,直接运行程序会报错permission denied。我解决这个问题的方法是开放了brightness的权限… 后面一篇学习笔记说到如何修改树莓派里linux系统的文件权限
③取得权限后就可以在循环里写入值来控制LED的亮灭啦,然后我遇到了问题… 下面说一下…
(1) turn off是没有问题的:我们可以现在LX终端上点亮PWR LED,之后在python中通过led.write(‘0’)将brightness文件改为0,此时PWR LED会熄灭;
(2) turn on会报错:运行led.write(‘1’)时会出现OSError: [Errno 34] Numerical result out of range的错误,暂时还不知道怎么解决(扶额
在线求一个解决方法2333

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值