2017-12-13 2 views
0

GPIO 버튼을 Raspberry Pi 3의 23 번 핀에 설정 했으므로 다른 파이썬 스크립트를 실행하기 위해 버튼을 누르면 GPIO 버튼이 나타납니다. 초기 프로그램을 실행하면 "Button Pressed"가 인쇄되지만 두 번째 프로그램은 실행되지 않습니다. (프로그램에서 권한이 설정되었는지 확인했습니다.) 도움을 주셔서 대단히 감사합니다!GPIO 버튼을 눌러 파이썬 3 프로그램 실행

#!/usr/bin/env python 
    import RPi.GPIO as GPIO 
    import time 
    import subprocess 

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

    while True: 
     input_state = GPIO.input(23) 
     if input_state == False: 
      print('Button Pressed') 
      subprocess.call('/home/pi/Downloads/PuttingItAllTogether.py', shell=True) 
      time.sleep(0.2) 
+0

는 "버튼을 누르면"다음이 스크립트를 실행해야한다고 인쇄 있다면. '/ home/pi/Downloads/PuttingItAllTogether.py' 스크립트가 출력을 생성하는지 확신합니까? 스크립트의 종료 상태를 확인 했습니까 (이것은'subprocess.call'의 반환 값입니까?)? – larsks

+0

@larsks 도움에 감사드립니다. 나는 프로그래밍에 새로운 있습니다. 스크립트의 종료 상태를 어떻게 확인합니까? 파이썬에서 직접 /home/pi/Downloads/PuttingItAllTogether.py를 실행할 수 있습니다. 진심으로 당신의 도움에 감사드립니다. –

+0

내가 말했듯이, 그것은'subprocess.call'에 대한 호출의 반환 값입니다. 이것을 변수에 저장하고'returnval = subprocess.call (...)'다음에'print' 문 다음에 그것을 출력하십시오. – larsks

답변

0

"os"라이브러리를 사용하지 않고 "시스템"을 사용할 수 있습니까?

#!/usr/bin/env python 
import RPi.GPIO as GPIO 
import time 
import os 

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

while True: 
    input_state = GPIO.input(23) 
    if input_state == False: 
     print('Button Pressed') 
     os.system('/home/pi/Downloads/PuttingItAllTogether.py') 
     time.sleep(0.2) 

사용 구문 :

import os 
os.system('shell command to execute') 
관련 문제