python – 独立于其他命令每5分钟运行一部分代码
发布时间:2020-12-20 11:53:36 所属栏目:Python 来源:网络整理
导读:我想打开,保持打开状态6秒钟,每5分钟关闭一个继电器,其余代码正常运行. 例如: GPIO.output(18,1)sleep(6)GPIO.output(18,0)sleep(300) 但没有其他程序堆栈在此延迟.我的Python代码是: import RPi.GPIO as GPIOfrom time import sleepGPIO.setmode(GPIO.BOA
我想打开,保持打开状态6秒钟,每5分钟关闭一个继电器,其余代码正常运行.
例如: GPIO.output(18,1) sleep(6) GPIO.output(18,0) sleep(300) 但没有其他程序堆栈在此延迟.我的Python代码是: import RPi.GPIO as GPIO from time import sleep GPIO.setmode(GPIO.BOARD) GPIO.setup(13,GPIO.IN,GPIO.PUD_UP) GPIO.setup(7,GPIO.OUT) GPIO.setup(37,GPIO.OUT) Hologram = '/home/pi/Hologram/Hologram.mp4' from subprocess import Popen firstTimeOpen=0 while True: doorIsOpen = GPIO.input(13) if doorIsOpen==0 and firstTimeOpen == 0: firstTimeOpen=1 GPIO.output(7,0) GPIO.output(37,0) sleep(0.5) if doorIsOpen==1 and firstTimeOpen == 1: GPIO.output(7,1) GPIO.output(37,1) omxp = Popen(['omxplayer',Hologram]) sleep(87) GPIO.output(7,0) GPIO.output(37,0) firstTimeOpen=0 sleep(0.5) 解决方法
线程提供了一种方便的方法.我通常创建一个threading.Thread子类,其run方法是要在单独的线程中运行的代码.所以你会想要这样的东西:
class BackgroundRunner(threading.thread): def run(self): while True: GPIO.output(18,1) sleep(6) GPIO.output(18,0) sleep(300) 然后,在开始运行主代码之前,请使用 bg_runner = BackgroundRunner() bg_runner.start() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |