2017-02-09 51 views
1

我在这里有此代码。它所做的只是当我按下一个按下的按钮时,它会每0.3秒打印一次“按下按钮”。我试过了所有的东西,而且我无法弄清楚我的生活如何使它按钮在True和False或0,1等之间切换变量......我真的很感谢一些帮助。由于如何使用Python中的按钮编写可切换变量代码

import RPi.GPIO as GPIO 
import time 


GPIO.setmode(GPIO.BCM) 
GPIO.setup(18, GPIO.IN,pull_up_down=GPIO.PUD_UP) 


while True: 
    inputValue = GPIO.input(18) 
    if (inputValue == False): 
     print("Button press ") 
    time.sleep(0.3) 

而这正好是这样的:

https://www.youtube.com/watch?v=PH3hNLXxNeE

+0

为什么你给'robotics'添加标签? – Arman

+0

与电子和编程有关... @arman – Caspar

回答

0

你想知道按钮的状态是否已经改变。

你需要保持状态的跟踪,当你从GPIO一个新的值进行比较。

latest_state = None 

while True: 
    inputValue = GPIO.input(18) 
    if inputValue != latest_state: 
     latest_state = inputValue 
     if latest_state: 
      print("Button pressed") 
     else: 
      print("Button depressed") 
    time.sleep(0.3) 
+0

这很好。谢谢。 – Caspar

-1
>>> x = True 
>>> x 
True 

>>> x = not x 
>>> x 
False 

>>> x = not x 
>>> x 
True 

只要按下按钮,你可以设置你使用的布尔变量(inputValue?)等于not [variable]什么。我不太明白你在代码中做什么,但是这是一些伪代码:

Boolean switch = False 
if button is pressed: 
    switch = not switch 
+0

对不起,我不明白你在提议什么。 – Caspar

+0

'布尔开关= False'无效Python –

+0

正如我所说的,它不是Python代码,只是伪代码。我不知道如何使用Python库OP如何使用条件化的'if按钮'使用 – JGut

相关问题