2017-02-27 47 views
0

我创建了一个带有覆盆子pi的水位指示器的项目。所以当我把电线放入水中时,指示灯会自动点亮。水位指示器 - Rasp Pi

我的问题是我想让第二根导线接触水时关闭第一个LED。

这是样品图片:

Click here for the image

这里是我的示例代码

while True: 
    GPIO.output(led8output, 0) 
    GPIO.output(led10output, 0) 

    if GPIO.input(led8input) == 1: 
    GPIO.output(led8output, 1) 

    if GPIO.input(led10input) == 1: 
    GPIO.output(led10output, 1) 
    GPIO.output(led8output, 0) #this code wont make the first led turn off. 

我甚至试过elif的,如果(GPIO.input(led10input)== 1 GPIO.input(led8input)== 1)都不起作用。请帮忙。谢谢

+0

我投票关闭这一问题作为题外话,因为它会得到更好的放在http://raspberrypi.stackexchange.com/ –

+0

不太清楚这是非常适合SO。但是,您的第一步应该是查看隔离(“if”外)的'GPIO.output(led8output,0)'是否实际关闭LED,然后检查第二根电线何时放入水中' GPIO.input(led10input)== 1'实际上是真的。其中之一将是原因 - 我们无法知道哪一个。 – SiHa

+0

我也试着让2个LED灯熄灭。我忘了添加这一行。但它也不起作用。 –

回答

0

试试这个:

GPIO.output(led8output, 0) 
GPIO.output(led10output, 0) 

while True: 
    if GPIO.input(led8input) == 1 and GPIO.input(led10input) == 0: 
    print "1st led has been turned on" 
    GPIO.output(led8output, 1) 

    if GPIO.input(led10input) == 1 and GPIO.input(led8input) == 1: 
    print "Both leds have been turned on therefore turning 1st led off" 
    GPIO.output(led10output, 1) 
    GPIO.output(led8output, 0)