2016-09-05 2 views
0

Мне нужна помощь. Мне нужна моя малина Pi, чтобы включить желтый светодиод и красный светодиод. Затем, когда нажата желтая кнопка, мне нужно, чтобы желтый светодиод начал мигать навсегда, а красный светодиод останется включенным.Включите 2 светодиода, затем нажмите один раз на кнопку

Вот код, который у меня есть, но он работает только частично. Он включает красный светодиод, но желтый светодиод выключен. (Я думал, что, установив GPIO.output (17, GPIO.HIGH), это приведет к включению желтого светодиода, как и для красного светодиода, но это не так.)

Нажатие желтой кнопки запускает Желтый светодиод мигает навсегда, что является правильным поведением, но мне нужно, чтобы оба светодиода были включены, а затем желтый, чтобы навсегда нажимать кнопку нажима.

Что я делаю неправильно? Благодаря!

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) 

ответ

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) 
+0

ОК, что работает! Спасибо огромное! Теперь для второй части проекта у меня есть другой сценарий, который я хочу объединить с этим, потому что он использует ту же физическую кнопку (желтая кнопка). Я попробовал просто слить два кода, без лишних вещей, но сценарий не запускается при перезагрузке, поэтому я что-то прикрутил. – clarkdv

+0

Мне нужно было поменять Pin 24 на PullUP, чтобы соответствовать коду, в который я сливаюсь, и кнопка уже подключена, поэтому я обнаружил, что могу просто добавить «нет», чтобы сделать его активным LOW, например «if не GPIO.input (24): « Я сделал, и ваши изменения все еще работают отлично. – clarkdv

+0

Это должно быть добавлено: 'code' импорта ОС Защиту ShutdownDELAY (канал): os.system ("Sudo отключение -h + 1") GPIO.add_event_detect (24, GPIO.FALLING, обратный вызов = ShutdownDELAY, bouncetime = 2000) 'code' – clarkdv