pythonwhiletrue中不能使用else吗_Python脚本将if/else嵌套在while True中的if下:关于Raspberry Pi...

Python是我第一次与编程语言交互,我昨天开始学习。

我试图通过一个覆盆子Pi和GPIO引脚来控制led。

我已经连接了开关,并且有一段代码可以打开或关闭4个LED。

我有一个第五个开关,一次打开或关闭所有4个LED,这取决于一个未布线引脚的状态。在

每个LED的代码如下所示:import RPi.GPIO as GPIO

import time

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)

GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_UP)

GPIO.setup(4,GPIO.OUT)

GPIO.output(4,0)

GPIO.setup(18,GPIO.OUT)

GPIO.output(18,0)

while True:

input_state = GPIO.input(10)

if input_state == False:

GPIO.output(4, not GPIO.input(4))

time.sleep(0.1)

GPIO.output(18, GPIO.input(4))

time.sleep(0.4)

其中针脚10是连接到我的开关的输入,4是打开并为LED供电的针脚,针脚18是我用来在另一个开关的同时打开/关闭所有LED的针脚。我有这个脚本的4个版本,每个LED有1个版本,只改变了使用的引脚。在

同时打开/关闭所有管脚的代码如下所示:

^{pr2}$

这些代码非常有效。我把它们都设置为在启动时作为后台进程启动。在

我想用插脚18打开一个指示灯LED,如果四个LED中的任何一个都打开,它就会亮起;如果任何一个LED都关闭了,它就会保持亮起,除非所有4个LED都关闭。使用“全部开/关”按钮可以很好地工作。当我使用单个LED按钮关闭单个LED时,问题就出现了。在当前设置中,只要我关掉任何一个LED引脚18都是关闭的。在

我正在尝试找到一个代码解决方案来解决这个问题,这样当4个LED中的任何一个都亮起时,针脚18(指示灯LED)就会亮起,而只有当所有4个LED都熄灭时,针脚18(指示灯LED)才会熄灭。在

我在想一系列嵌套的if/else:conditions,但是我有限的知识阻碍了我的成功。在

我尝试过的代码示例如下:import RPi.GPIO as GPIO

import time

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)

GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_UP)

GPIO.setup(4,GPIO.OUT)

GPIO.output(4,0)

GPIO.setup(18,GPIO.OUT)

GPIO.output(18,0)

while True:

input_state = GPIO.input(10)

if input_state == False:

if GPIO.output(17) == True:

GPIO.output(4, not GPIO.input(4))

else:

if GPIO.output(22) == True:

GPIO.output(4, not GPIO.input(4))

else:

if GPIO.output(27) == True:

GPIO.output(4, not GPIO.input(4))

else:

GPIO.output(4, not GPIO.input(4))

time.sleep(0.1)

GPIO.output(18, GPIO.input(4))

time.sleep(0.4)

这将产生一个错误:Traceback (most recent call last):

File "pin10test.py", line 20, in

if GPIO.output(17) == True:

TypeError: function takes exactly 2 arguments (1 given)

我的目的是,当检测到按钮按下时,它将:If pin 17 is on, toggle pin 4. If not go to next check.

If pin 22 is on, toggle pin 4. If not go to next check.

If pin 27 is on, toggle pin 4. If not go to final else:

toggle pin 4, sleep 0.1, set pin 18 to whatever pin 4 was just set to, sleep 0.4.

然后我将这段脚本调整到每个按钮的脚本中。在

这样,只有当所有引脚都关闭时,引脚18才会将状态更改为关闭。在

任何帮助,使这个脚本正确的感谢。

任何关于如何改善这一点的想法或建议也将受到赞赏。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值