打开2个LED,然后按下按钮,永远闪烁一个

时间:2016-09-05 02:54:50

标签: python button raspberry-pi gpio led

我需要帮助。我需要我的Raspberry Pi打开黄色LED和红色LED。然后,当按下黄色按钮时,我需要黄色LED开始永远闪烁,并且红色LED保持亮起。

这是我的代码,但它只是部分有效。它打开红色LED但黄色LED熄灭。 (我认为通过设置GPIO.output(17,GPIO.HIGH)可以打开黄色LED,就像红色LED一样,但它没有。)

按黄色按钮启动黄色LED指示灯将永久闪烁,这是正确的行为,但我需要两个LED指示灯亮起,然后黄色指示按钮按下时永远闪烁。

我做错了什么?谢谢!

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings (False)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)  #Yellow button
GPIO.setup(17, GPIO.OUT)    #Yellow LED
GPIO.setup(27, GPIO.OUT)    #Red LED
GPIO.output(17, GPIO.HIGH)  #Turn Yellow LED On
GPIO.output(27, GPIO.HIGH)  #Turn Red LED On


blinking = False
while True:
    if GPIO.input(24):
        blinking = True

    if blinking:
        GPIO.output(17, GPIO.HIGH)
        time.sleep(.2)
        GPIO.output(17, GPIO.LOW)
        time.sleep(.2)

    time.sleep(.1)

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings (False)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)  #Yellow button
GPIO.setup(17, GPIO.OUT)    #Yellow LED
GPIO.setup(27, GPIO.OUT)    #Red LED
GPIO.output(17, GPIO.HIGH)  #Turn Yellow LED On
GPIO.output(27, GPIO.HIGH)  #Turn Red LED On


blinking = False
while True:
    if GPIO.input( 24 ):
        blinking = True

    while blinking:
        GPIO.output(17, GPIO.HIGH)
        time.sleep(.2)
        GPIO.output(17, GPIO.LOW)
        time.sleep(.2)

        time.sleep(.1)